Beruflich Dokumente
Kultur Dokumente
Professor: Aluno:
Sumrio
1. 2. 3. 4. Objetivo ................................................................................................................................. 3 Projeto do filtro digital FIR .................................................................................................... 3 Implementao do filtro no Code Composer Studio 3.1 ..................................................... 10 Concluso ............................................................................................................................ 12
1. Objetivo
O objetivo deste trabalho o projeto de um filtro digital do tipo FIR e sua implementao no Code Composer Studio 3.1 (CCS), que um ambiente de desenvlovimento integrado para DSPs da Texas Instruments. Como esta aplicao no DSP no contemplar uma aquisio de sinais externos, o software MATLAB ser utilizado para gerar os dados de entrada (uma onda distorcida) e o projeto do filtro digital. Estes devero ser aplicados ao CCS para implementao no DSP, visualizao dos resultados e validao da estratgia do filtro FIR.
1.5
0.5
-0.5
-1
-1.5
100
200
300
400
500
600
700
800
900
Depois de gerada a onda, os pontos so salvos em um arquivo denominado seno_float.dat para que este possa ser usado pelo Code Composer como dados de entrada.
%% grava arquivo para poder ser usado posteriormente no DSP (em float) fid = fopen('seno_float.dat','wt'); fprintf(fid,'1651 4 0 0 0 \n'); %imprime cabealho para o code composer fprintf(fid,'%d\n',x); fclose(fid);
Para dimensionar o filtro FIR pode-se utilizar vrios mtodos, porm nesta aplicao utilizaremos o aplicativo do MATLAB fdatool. Esta ferramenta amigvel, grfica e possui parmetros de entrada que so definidos pelo projetista. Estes dados foram definidos como a frequncia de amostragem fs = 10k, frequncia de banda passante Fpass = 60Hz, frequncia da banda de corte Fstop = 406Hz, amplitude passante em dB Apass = 1dB, e magnitude de corte Astop = 39dB.
O programa gerou um filtro FIR de ordem 40 e seus coeficientes so extrados para implementao do mesmo digitalmente. A alta ordem deste filtro devido proximidade das frequncias da banda passante e da banda de corte, o que exige uma atenuao expressiva do filtro para mitigar a primeira frequncia harmnica presente no sinal de entrada.
As figuras seguintes mostram que a atenuao nas frequncias de stima e nona harmnicas bem expressiva por elas se encontrarem no vale de atenuao do filtro. Esta caracterstica desejvel e fez parte do projeto de atuao do filtro.
A figura abaixo representa as curvas ideal e real do filtro FIR gerado. Observa-se que a curva real est bem prxima da ideal, o que representa uma ao desejada do filtro projetado.
1.4 curva ideal curva real
1.2
0.8
0.6
0.4
0.2
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Os coeficientes do filtro FIR de ordem 40 que ser utilizado foram alocados no vetor b de tamanho 41. Este vetor demonstrado abaixo:
b= [0.00826183661261409 0.00534677877169939 0.00875491763240740 0.0107569080283339 0.0152666657407029 0.0177233430165056 0.0228412709129467 0.0254259489084970 0.0303917980019217 0.0326819683536402 0.0366304144562180 0.0382113574859615 0.0404057736645068 0.0409680235716572 0.0409680235716572 0.0404057736645068 0.0382113574859615 0.0366304144562180 0.0326819683536402 0.0303917980019217 0.0254259489084970 0.0228412709129467 0.0177233430165056 0.0152666657407029 0.0107569080283339 0.00875491763240740 0.00534677877169939 0.00826183661261409]; 0.00694600461491117 0.0129381223708205 0.0202571135443323 0.0279553775221055 0.0347760573563094 0.0394809925112221 0.0411568320462748 0.0394809925112221 0.0347760573563094 0.0279553775221055 0.0202571135443323 0.0129381223708205 0.00694600461491117
Para realizar a implementao do filtro FIR projetado, foi utilizada a equao de diferenas com coeficientes constantes clssica dos sistemas discretos, sendo que o termo do filtro recursivo zero.
Onde b so os coeficientes do filtro projetado e X a entrada de dados em que o filtro ser aplicado. O filtro FIR ou filtro recursivo possui as caractersticas de estabilidade na sada se a entrada tambm for sempre estvel, exige maior peso computacional se comparado ao FIR e apresenta resposta finita, ou seja, um resultado ao impulso em tempo finito. Abaixo pode-se exemplificar o funcionamento de um filtro FIR de terceira ordem e sua resposta a um impulso:
Abaixo tem-se o cdigo feito no MATLAB responsvel pela ao do filtro no sinal de entrada, ou seja, aplicao da frmula do filtro FIR demonstrada anteriormente.
%N = (numero total de pontos da onda gerada) for i=1:N, yo= 0; if i < ordem+1 M = i; else M = ordem+1; end for k=1:M, yo = yo + b(k) * x(i-k+1); end yf(i)=yo; end
O resultado final foi satisfatrio, o qual o filtro mitigou as harmnicas, restando apenas um sinal de ordem fundamental 60Hz. Esta onda filtrada apresentou aspecto bem senoidal e com um pequeno defasamento ou atraso, sendo este intrnseco aos filtros digitais, devido elevada ordem do filtro proposto.
0.5
-0.5
-1
-1.5
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
Figura 9. Sinal da onda gerada (azul) com harmnicas e sinal de sada da onda filtrada (verde).
A figura abaixo demonstra o espectro em frequncia da onda gerada e tambm o espectro da onda filtrada. Pode-se observar que no primeiro quadro a onda apresenta a componente fundamental mais duas harmnicas, de stima (420 Hz) e nona (540 Hz) ordem. J o segundo quadro, este representando a onda filtrada, apresenta apenas a frequncia fundamental, o que demonstra que o filtro mitigou as harmnicas como esperado.
500
2000
2500
500
2000
2500
while(TRUE) { for (i=0; i<N; i++) { yo=0; if (i<ordem+1) { M = i; } else { M = ordem+1; } for (k=0; k<M; k++) { yo = yo + b [k] * in_onda[i-k]; } out_onda[i] = yo; } } }
Foram inseridos dois breakpoints no cdigo, sendo um no incio e outro no final do loop responsvel pela iterao do filtro, com o objetivo de encontrar o nmero de ciclos que o CCS leva para realizar uma iterao completa para calcular a onda de sada. O nmero de ciclos gastos para esta interao foi de 14.308 ciclos. O filtro realizou de forma satisfatria sua funo, o qual pode ser observado na figura abaixo, a qual uma visualizao grfica dos vetores de entrada e sada de dados. Observa-se que a entrada de dados (onda distorcida) foi carregada corretamente pelo programa e o filtro mitigou as harmnicas presentes, restando apenas a onda fundamental em 60Hz com um pequeno defasamento (vetor de dados de sada).
Figura 11. Onda distorcida e onda filtrada visualizada no Code Composer Studio 3.1.
4. Concluso
As metas deste trabalho foram cumpridas, podendo-se enumer-las abaixo: Gerao dos pontos de uma onda distorcida; Projeto do filtro FIR utilizando ferramentas no MATLAB para mitigar as harmnicas desejadas; Entendimento das operaes realizadas por um filtro digital recursivo seguindo a equao das diferenas; Teste do filtro digital projetado no MATLAB; Familiarizao com o ambiente e funcionamento do Code Composer Studio 3.1; Implementao do filtro digital no CCS 3.1; Validao dos resultados obtidos e avaliao da atuao do filtro;