APS: Implementação de filtros digitais

Prof. Dr. Marcelo de Oliveira Rosa

30 de setembro de 2014

1 Introdução

Usando o dsPIC (parte do problema já foi estudada em microcontroladores) como base para programação e montagem, os alunos construirão um conjunto de quatro filtros digitais selecionáveis por DIP-SWITCH. O equipamento produzidos lerá constantemente uma porta de entrada, gerando um sinal de saída filtrado.

2 Projeto

O trabalho (em grupo de dois alunos) consiste em projetar e construir (em matriz de pontos) um equipamento para filtragem de sinais.

Preferencialmente adquirir um dos seguintes dsPICs:

   • DSPIC30F4013-30I/P
   • DSPIC33FJ128MC802-I/SP
   • DSPIC33FJ128GP802-I/SP
   • TI EK-TM4C123GXL*
   • TI EK-TM4C1294XL
   • TI LAUNCHXL-F28027

Preferencialmente recomendo o uso do TI EK-TM4C123GXL visto que é usado em outras disciplinas (Controle) no departamento (os equipamentos da TI já são na forma de kit, dispensando a montagem da placa, bem como a facilidade de alteração do código a ser executado pelo microcontrolador).

As versões DSPIC33 possuem conversor D/A, mas para padronizar, usaremos as suas funções PWM, conforme veremos abaixo.

As seguintes faixas fixas de freqüências serão usadas (sua escolha será na base primeiro que chegar, leva):

Grupo  Faixas (em frequência normalizada ω)
1  até 0.20 entre 0.20 e 0.6 entre 0.6 e 0.8 acima de 0.8
2  até 0.20 entre 0.20 e 0.5 entre 0.5 e 0.8 acima de 0.8
3  até 0.25 entre 0.25 e 0.5 entre 0.5 e 0.8 acima de 0.8
4  até 0.25 entre 0.25 e 0.5 entre 0.5 e 0.8 acima de 0.8
5  até 0.25 entre 0.25 e 0.5 entre 0.5 e 0.7 acima de 0.7
6  até 0.25 entre 0.25 e 0.5 entre 0.5 e 0.7 acima de 0.7
7  até 0.18 entre 0.18 e 0.4 entre 0.4 e 0.75 acima de 0.75
8  até 0.18 entre 0.18 e 0.4 entre 0.4 e 0.75 acima de 0.75

Tabela 1: Faixas de freqüência

Os seguintes tipos de filtros deverão ser escolhidos para cada uma das 4 faixas (de acordo com o grupo escolhido):

Grupo  Tipos de filtro
1  FIR  Chebyschev tipo 1 Chebyschev tipo 1  Butterworth
2  FIR  Chebyschev tipo 1 Chebyschev tipo 1  Butterworth
3  FIR  Butterworth  Butterworth  Chebyschev tipo 1
4  FIR  Butterworth  Butterworth  Chebyschev tipo 2
5  Butterworth  Chebyschev tipo 1 Chebyschev tipo 1  FIR
6  Butterworth  Chebyschev tipo 2 Chebyschev tipo 2  FIR
7  Chebyschev tipo 2 Chebyschev tipo 1  Butterworth  FIR
8  Chebyschev tipo 1 Chebyschev tipo 2  Butterworth  FIR

Tabela 2: Tipos de filtros

Note que as frequências de corte nos filtros são dadas em frequências normalizadas em relação a frequência de Nyquist do sistema. Essa depende da taxa de amostragem usada no conversor A/D do dsPIC. É necessário verificar essa taxa para poder realizar os cálculos, além de ser usada para programar a interrupção de tempo para leitura da porta de entrada do dsPIC.

O projeto de cada filtro pode ser realizado usando-se o MATLAB. Para evitar problemas numéricos, use filtros IIR com ordem N ≤ 6. Tal restrição não precisa ser imposta ao filtro FIR, que pode ser construído usando-se qualquer janela (deve-se apenas indicar que janela usou na descrição do projeto).

Para todos os filtros, a zona de transição fica a critério da equipe. A atenuação na zona de rejeição deve ser no mínimo de 15dB (caso isso implique em ordem N > 6 dos filtros IIR, restrinja a ordem, mesmo que a atenuação não seja mais de no mínimo 15dB).

3 Algoritmo

Uma vez definida as equações à diferenças dos filtros, elas serão implementadas em um algoritmo dentro do dsPIC.

A estrutura do algoritmo do dsPIC se assemelhará à:

1) a cada interrupção de tempo
1.1) leia a porta de entrada do dsPIC -> x_n
1.2) salve x_n no vetor x[]
1.3) de acordo com o filtro selecionado:

1.3.1) filtro x[] com filtro 1 -> y
1.3.2) filtro x[] com filtro 2 -> y
1.3.3) filtro x[] com filtro 3 -> y
1.3.4) filtro x[] com filtro 4 -> y
1.4) escreva y na porta de saída do dsPIC

Como o dsPIC não possui um conversor D/A, usaremos a saída PWM do mesmo, com um filtro passa-baixa analógico para obter o sinal de saída y.

Para facilitar, as equipes devem escrever o esqueleto do algoritmo (sem a operação de filtragem) usando interrupções no dsPIC. Uma vez que o algoritmo esteja funcionando, as equipes o concluem com a implementação dos filtros (itens 1.3.1 até 1.3.4 do algoritmo apresentado).

Note que a escolha do filltro é feita externamente através do DIP-SWITCH. Os alunos devem definir como as combinações do DIP-SWITCH definem qual filtro estará rodando.

4 Relatório

Na apresentação, os alunos devem apresentar (em arquivo digital, sem impressão em papel):

• Equações à diferença dos filtros

• Esquema de decisão sobre filtro selecionado

• Código-fonte completo da implementação

• O circuito funcionando

Os testes de funcionamento serão realizados com gerador de funções e osciloscópios digitais. A nota do trabalho será zero ou 10, ou seja, depende do circuito funcionar com sucesso.