Вы находитесь на странице: 1из 25

UNIVERVERSIDADE FEDERAL DE UBERLNDIA

FACULDADE DE ENGENHARIA ELTRICA


PS-GRADUAO EM ENGENHARIA DE COMPUTAO
CONVNIO: UFU CEFET-SP
Nilton Costa Junior
costajr.nilton@cefetsp.br
www.costajr.pro.br

PROCESSAMENTO DIGITAL DE SINAIS

LISTA DE EXERCCIOS: 1
PROFESSOR: Dr. Dr. Ernane Antnio Alves Coelho.

So Paulo, 25/8/2007.

Pgina 1 de 25

Data de Entrega: 26/08/2007


Aluno: Nilton Costa Junior

Lista de Exerccios 1
Aplicaes em Processamento Digital de Sinais
Prof. Ernane Coelho

1. Conceitue os Filtros Digitais recursivos e no recursivos. Porque so


chamados de IIR e FIR, respectivamente? Para qual destes o princpio de
operao corresponde convoluo?
R: Os filtros digitais recursivos, ou do tipo IIR (Infinit Impulse Response), so
aqueles que possuem componentes de realimentao, produzindo um efeito
mais intenso na curva de atuao do filtro, e com isto, reduzindo a ordem do
filtro. Porm, devido as componentes de realimentao, os filtros IIR podem
se tornar instveis e at chegar oscilao natural se caso no for
corretamente calculado.
Os filtros IIR so usados quando a questo da linearidade de fase no um
pr-requisito, e suas principais caractersticas so:
Tem menos coeficientes;
Lbulos laterais menores;
Ocupa menor memria;
Menor esforo computacional.
J os filtros digitais no recursivos, ou do tipo FIR (Finit Impulse Response),
so aqueles que no possuem realimentao (recursividade), a resposta ao
impulso limitada e as sadas dependem apenas da entrada atual e das
anteriores, e com isto, a sua atuao mais suave quando comparados com
os filtros IIR.

Portanto, os filtros FIR precisam trabalhar com ordens elevadas para


obteno de curvas mais definidas, consumindo recursos de processamento
e reduzindo a freqncia mxima de atuao. Porm, os filtros FIR nunca
tendem a oscilar como acontece com os filtros IIR.
O princpio da convoluo se aplica em ambos os filtros, j que as amostras
discretizadas do sinal de entrada so convolidadas com os respectivos
coeficientes deslocados no tempo em ambos os filtros IIR e FIR.

Pgina 2 de 25

2. O que aliasing? Quais as implicaes da ausncia do filtro anti-aliasing


num sistema de aquisio?
R: Aliasing o nome que se d ao efeito decorrente de se amostrar de forma
insuficiente um sinal contnuo qualquer, assim o efeito indesejvel
ocasionado pela reamostragem de um sinal de alta frequncia em baixas
resolues. O Aliasing (disfarce) ou dobramento espectral, ocorre quando a
taxa de amostragem usada menor que a taxa de Nyquist do sinal que se
est analisando.
As implicaes da ausncia do filtro anti-aliasing so a gerao de
componentes indesejveis que se somam s componentes de mais baixa
freqncia, ocasionando deformaes na sada do filtro. Para se evitar que
isto ocorra necessrio a instalao de um filtro analgico passa baixas
antes do filtro digital, com freqncia de corte menor do que metade da
freqncia de Nyquist, ou seja: f(LPF anti-aliasing) = f(Nyquist)/2
3. No cdigo do exemplo do MatLab, altere o componente harmnico de 10
para 13 e execute novamente. O que aconteceu com a performance do filtro?
Como melhorar o desempenho da filtragem?
R: A performance do filtro piorou em relao ao componente da 10
harmnica devido a curva do filtro ser pior na 13 harmnica.
O desempenho do filtro pode melhorar alterando a freqncia de corte
passando de 100Hz para 300Hz, e com isso o desempenho do filtro melhora
na 13 harmnica. Uma outra possibilidade aumentar o valor da ordem do
filtro at obter o desempenho esperado.

Pgina 3 de 25

Freqncia de corte original 100Hz

Freqncia de corte proposta 200Hz


4. Considerando o cdigo desenvolvido no exemplo 3, implemente um filtro FIR
rejeita-faixa. Os detalhes de especificao do filtro ficam a critrio do
projetista.

Pgina 4 de 25

Pgina 5 de 25

A proposta foi de rejeitar a 5 harmnica (300Hz).


As freqncias adotadas foram:
Incio do corte freq. 100Hz
Banda rejeitante de 250 a 350Hz
Final do corte freq. 500Hz
5. Considerando o exemplo 1, implemente um filtro de mdia mvel de ordem
20. Aplique um sinal de teste e faa a FFT do sinal de entrada e sada do
filtro.
R: Conforme orientao, implementamos um filtro de mdia mvel de ordem
20 no MATLAB a partir do cdigo do exemplo 1, alterando a matriz dos
coeficientes b para que cada um dos 21 coeficientes fosse uma frao 1/21,
eliminando assim a primeira etapa do filtro. Segue abaixo o cdigo com as
modificaes e o grfico da resposta do filtro.
% EXEMPLO 1
% Projeto de um Filtro FIR passa-baixa
clear all
close all
N=20
b=1/21*ones(1,21)
[h,w] = freqz(b,1,512);
plot(w/pi,abs(h))
legend('curva real')
% *********************** teste do filtro *******************************
pontos=1024;
fs=5000;
%frequencia de amostragem
Ts=1/fs;
t=0;
w1=2*pi*60; %frequencia fundamental do sinal de entrada
for i=1:pontos,
y(i)=0.7*sin(w1*t)+ 0.2*sin(10*w1*t); %fundamental + 10 harmonico
tempo(i)=t;
t=t+Ts;
yo= 0;
if i < N+1
M = i;
else
M = N+1;
end
for k = 1:M,
yo = yo + b(k) * y(i-k+1);
end
yf(i)=yo;
end
%ou simplesmente aplica-se a funcao "filter" do MatLab:Y = FILTER(B,A,X)
%h=filter(b,1,y);
figure
plot(tempo,y,tempo,yf)
legend('fir in','fir out')

Pgina 6 de 25

Y = fft(y); % calcula fft da entrada


Yf= fft(yf); %calcula fft da saida
%segunda metade de y contem os complexos conjugados
Y_spec = abs(Y)/(pontos/2); % normaliza valor absoluto
Yf_spec = abs(Yf)/(pontos/2);
figure
subplot(2,1,1); %2graficos em 2linhas,1 coluna, primeiro o superior
freq = (0:199)/(pontos*Ts);
plot(freq,Y_spec(1:200));
grid on % desenha grid
xlabel('Frequencia (Hz)');
ylabel('Amplitude Y');
subplot(2,1,2); %seleciona plot para segundo grafico
plot(freq,Yf_spec(1:200));
grid on % desenha grid
xlabel('Frequencia (Hz)');
ylabel('Amplitude Yf');

6. Considere a funo de transferncia de um filtro passa baixa de segunda


ordem:

G (s) =

n2
s 2 + 2 n + n2

onde n a freqncia de corte e o fator de amortecimento. Especifique


um dado n, e taxa de amostragem e converta a funo do filtro do plano s
para o plano z (funo discreta). Escreva a respectiva equao de diferenas
para a implementao de tal filtro. Dica: utilize a funo c2dm ou c2d do
MatLab.

Pgina 7 de 25

R: Segue abaixo os passos executados no MATLAB para obteno dos


parmetros do filtro IIR a partir de sua funo de transferncia
wn: No nosso exemplo foi utilizada a freqncia de corte de 30Hz, desse
modo teremos a freqncia angular de:
>> wn = 2 * pi *30
wn =
188.4956
ts: Fizemos a freqncia de amostragem de 2500Hz e portanto teremos uma
taxa de amostragem de:
>>Ts = 1/2500
Ts =
4.0000e-004 s
Obteno dos coeficientes da transformada de Laplace a partir da funo de
transferncia, utilizando a funo tf() e fazendo = 0.7:
>> g=tf(wn^2,[1 2*0.7*wn wn^2])
Transfer function:
3.553e004
------------------------s^2 + 263.9 s + 3.553e004
Transformao da funo de transferncia de Laplace para parmetros Z
(discretizao da funo):
>> h = c2d(g, Ts, 'zoh')
Transfer function:
0.002744 z + 0.002649
---------------------------z^2 - 1.894 z + 0.8998
Sampling time: 0.0004
>>
A partir dos parmetros obtidos, passamos para a implementao do algoritmo
escrevendo a equao de diferenas que ser implementada no MATLAB:
y(k)= 0.002744*x(k-1) + 0.002649*x(k-2) + 1.894*y(k-1) - 0.8998*y(k-2)
Onde n = 188.4956 rd/s (corresponde a 30Hz) e fs = 2500Hz
7. Gere um sinal com uma composio harmnica especfica para teste do filtro
da questo 6 desenhe a respectiva forma de onda de sada do filtro utilizando
o MatLab.

Pgina 8 de 25

Por exemplo, se a freqncia de corte for 100Hz, para verificar a operao do


filtro, injete componentes abaixo de 100Hz e em torno de 1 dcada acima. As
baixas passaro e as altas sero atenuadas em torno de 100 vezes.
R: Com o filtro implementado no MATLAB, conforme segue o cdigo abaixo,
geramos um sinal de teste de 300Hz correspondente a 10 harmnica da
freqncia de corte (fc=30Hz) e verificamos no grfico os nveis dos sinais de
entrada e sada do filtro, que pela sua natureza de filtro passa baixa de 2 ordem
que tem uma taxa de atenuao de 40dB/dec, deveria atenuar este sinal de
teste em 40dB. Constatamos que isto ocorreu de fato, conforme podemos ver no
grfico e pelo clculo da atenuao em decibis dos valores obtidos.
% EXERCICIO 7
% Projeto de um Filtro para a questo 6
clear all
close all
wn=2*pi*30;
fs=2500;
Ts=1/fs;

%frequencia fundamental do sinal de entrada

g=tf(wn^2,[1 2*0.7*wn wn^2]);


h=c2d(g,Ts,'zoh');
% *********************** teste do filtro *******************************
pontos=1024;
t=0;
y(1)=0;
y(2)=0;
x(1)=0;
tempo(1)=0;
for i=2:pontos,
x(i)=0.8*sin(wn*t)+ 0.2*sin(10*wn*t); %fundamental + 10 harmonico
tempo(i)=t;
t=t+Ts;
y(i+1)= 0.002744*x(i) + 0.002649*x(i-1) + 1.894*y(i) - 0.8998*y(i-1);
end
yk=y(1:1024)
figure
plot(tempo,x,tempo,yk)
legend('sinalENT','sinalSAI')

Pgina 9 de 25

X = fft(x); % calcula fft da entrada


Y = fft(yk); %calcula fft da saida
%segunda metade de y contem os complexos conjugados
X_spec = abs(X)/(pontos/2); % normaliza valor absoluto
Y_spec = abs(Y)/(pontos/2);
figure
subplot(2,1,1);
freq = (0:199)/(pontos*Ts);
plot(freq,X_spec(1:200));
grid on % desenha grid
xlabel('Frequencia (Hz)');
ylabel('Amplitude X');
subplot(2,1,2); %seleciona plot para segundo grafico
plot(freq,Y_spec(1:200));
grid on % desenha grid
xlabel('Frequencia (Hz)');
ylabel('Amplitude Y');

Atenuao do filtro: G = 20log (0.002019 / 0.1949) = -39.69dB


Foi desenvolvida uma aplicao do filtro IIF passa baixa em PICC e realizado
testes no PROTEUS. Segue abaixo o cdigo do filtro:
Pgina 10 de 25

/*
Universidade Federal de Uberlandia
Faculdade de Engenharia Eletrica
Pos-Graduacao em Engenharia da Computacao
Prof.: Dr. Ernane Antnio Alves Coelho
CEFET / UNED CUBATAO
Alunos: Nilton Costa Junior
ATIVIDADE 1 - EXERCICIO 7
// DESENVOLVIMENTO DO FILTRO:
2

^2

Coeficientes obtidos no MATLAB a funo: G=wn /(S + 2**wn + wn )


Parametros utilizados no calculo:
wn = 60Hz
fs = 2500Hz
Ts = 1/2500Hz
Coeficientes obtidos:
B(Z) Real
Q14/ufix(8)
1
0.01059
174
2
0.00987
162
A(Z)
1
2

Real
1.789
-0.8097

Q7/ufix(8)
229
-104

Funo de transferencia em parametros "z":


Transfer function:
0.01059 z + 0.00987
---------------------z^2 - 1.789 z + 0.8097
Equacao de diferenas:
y(z)=0.01059*x(z-1) + 0.00987*x(z-2) + 1.789*y(z-1) - 0.8097*y(z-2)
*/
// Programa do fitro passa baixa tipo "IIR" de 2a ordem
#include "AD_inter.h"
#include <STDLIB.H>

Pgina 11 de 25

#BYTE portd = 0x08


void main()
{
setup_adc_ports(AN0_AN1_AN2_AN4_VSS_VREF); //Define 4 ch A0 A1
A2 A4,VRef+=A3
setup_adc(ADC_CLOCK_DIV_32); // Para MCU em 20MHz clock/32
Tad=1.6us
set_adc_channel(0);
//seleciona canal 0
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_32);//timer0, clk interno
5Mhz/32=156kHz
set_timer0(194);
// 256-(156kHz/2.5kHz)=256-62=194 : fs=2.5KHz
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
set_tris_b(0x00 );
set_tris_d(0x00 );

// bits Port B are output (1-in/0-out)

enable_interrupts(INT_TIMER0); //habilita interrupcao do timer 0


enable_interrupts(GLOBAL); //habilita flag geral de interrupcao
for(;;);
}
#int_timer0
void timerzero(void)
{
static int8 x[3];//array das variaveis de entrada "x"
static int8 y[3];//array das variaveis de saida "y"
const int8 b[2]={174,162}; //exceto b[2]=Q14/ufix(8)
const int8 a[2]={229,104}; //exceto a[2]=Q7/ufix(8)
set_timer0(194);

// reinicia contagem do timer

bit_set(portd,0); // inicio da medida de tempo de processamento


x[2]=x[1];

// deslocamento no tempo de x

Pgina 12 de 25

x[1]=x[0];
x[0]=read_adc();

// leitura atual do sinal de entrada

y[0]=0;
// zeramento da saida atual
y[0]=
(((int16)b[0]*x[1])>>14); //calculo dos fatores do filtro
y[0]= y[0]+(((int16)b[1]*x[2])>>14);
y[0]= y[0]+(((int16)a[0]*y[1])>>7);
y[0]= y[0]-(((int16)a[1]*y[2])>>7);
output_b(y[0]);
y[2]=y[1];
y[1]=y[0];

//saida do filtro
// deslocamento no tempo de y

bit_clear(portd,0); //fim da medida de tempo de processamento


}
8. O filtro digital correspondente a funo no plano z obtida na questo 6 IIR
ou FIR?
R: O filtro digital do exerccio 6 IIR, pois existem coeficientes B e A e
realimentao do sinal de sada (recursividade).
9. Implemente um cdigo em linguagem C para o exerccio 4. Utilizando um
compilador/simulador ( 8051 Intel, PIC, ARM, MSP430), verifique o tempo de
execuo do cdigo em questo para avaliar o impacto na definio da taxa
de amostragem. Sua implementao foi em ponto flutuante ou ponto fixo?
Qual a diferena?
Este exerccio na verdade para vcs perceberem a diferena entre ponto-fixo
e ponto flutuante. A implementao em ponto flutuante muito mais fcil.
Coeficientes e variveis em "float" permitem a multiplicao sem saturao ou
perda de resoluo e sem, principalmente, a necessidade de interferncia do
programador para a correo de representao.
Em termos prticos, seria simplesmente traduzir o cdigo do comando "for" do
exemplo1 em Matlab para Linguagem C, o qual implementa a equao que gera
o filtro digital. O problema que tal cdigo em float executado numa CPU pontofixo extremamente lento. possvel a gente rodar no sistema do Proteus, mas
numa freqncia muito baixa.
O exerccio 2 (segunda atividade) corresponde implementao do exemplo 1
em ponto fixo no 16F877 para rodar no sistema Proteus. Em ponto - fixo, com
coeficientes e variveis em 8-bits, possvel executar em 1kHz no 16F877 com
20Mhz de clock.

Pgina 13 de 25

Pensem a respeito e sbado a gente fecha questo neste tpico. Na medida


em que vcs se aprofundam no problema, percebem as dificuldades e aproveitam
melhor as discusses de possveis solues.
Resoluo:
// DESENVOLVIMENTO DO FILTRO:
/*
1) Dados do FILTRO REJEITA FAIXA (FRF) FIR do exercicio 4 da lista 1:
Ordem do filtro FRF: N = 20
Freq. de amostragem: fs = 5000Hz
Freq. de Nyquist:
fny= 2500Hz
Freq. mxima in:
fmax= 1250Hz
Freq. de corte inicial: fci= 100Hz
Banda de rejeicao:
Brej= de 250Hz a 350Hz.
Freq. de corte final: fcf= 500Hz
Coeficientes "b(z)":
Coeficientes obtidos atravs do MATLAB com a funcao "b = firpm(N,f,a)"
tendo: N=20
f = [0 0.04 0.1 0.14 0.2 1]
a = [1 1 0 0 1 1]
B(Z)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Real
0,0372
0,1067
0,0426
0,0682
0,045
0,0254
-0,0069
-0,0396
-0,0694
-0,0897
0,903
-0,0897
-0,0694
-0,0396
-0,0069
0,0254
0,045
0,0682
0,0426
0,1067
0,0372

Q10/ufix(8) Q9/ufix(8) Q8/ufix(8)


38
19
10
109
55
27
44
22
11
70
35
17
46
23
12
26
13
7
-7
-4
-2
-41
-20
-10
-71
-36
-18
-92
-46
-23
925
462
231
-92
-46
-23
-71
-36
-18
-41
-20
-10
-7
-4
-2
26
13
7
46
23
12
70
35
17
44
22
11
109
55
27
38
19
10

Pgina 14 de 25

A proposta inicial de transformarmos os coeficientes de ponto flutuante


para ponto fixo sem sinal, utilizando a base de 8 bits.
Como existem coeficientes negativos, os seus valores sero calculados em
modulo e no final do calculo, o sinal ser reposto simplificando o calculo do
filtro.
Podemos observar tambm que a converso dos coeficientes de ponto
flutuante para ponto fixo na base 8 bits somente ser possvel em Q8/ufix(8)
para todos os coeficientes, pois nas notaes Q9/ufix(8) e Q10/ufix(8), o
coeficiente B[11] extrapola a base 8.
Porm, na notao Q8/ufix(8) todos os componentes, exceto B(11), tero
valores reduzidos, prejudicado a preciso da converso se caso usssemos
Q8/ufix(8) para todos os coeficientes.
A soluo encontrada foi de usarmos a converso em Q9/ufix(8) para todos
os coeficientes B(Z), exceto B(11), que ser convertido para ponto fixo com
Q8/ufix(8).
Desse modo, conseguimos conciliar uma relativa preciso com uma maior
velocidade de processamento.
Devido limitao de velocidade de processamento do PIC 16F877 ser de
5 MIPS, utilizaremos uma freqncia de amostragem de 1KHz, obtendo uma
freqncia mxima de entrada de 250Hz.
Abaixo seguem os dados do filtro recalculados:
Ordem do filtro FRF: N = 20
Freq. de amostragem: fs = 1000Hz
Freq. de Nyquist:
fny= 500Hz
Freq. mxima in:
fmax= 250Hz
Freq. de corte inicial: fci= 20Hz
Banda de rejeicao:
Brej= de 50Hz a 70Hz.
Freq. de corte final: fcf= 100Hz
Coeficientes "b(z)": Q9/Ufix(8). obs: somente b(11) usa Q8/Ufix(8)!
PARAMETROS PRTICOS OBTIDOS NO SIMULADOR PROTEUS:
Tempo de processamento:
Tmin=905us
Frequencia mxima possvel:
fmax=1105Hz
*/
// Programa do fitro refeita faixa tipo "FIR"

Pgina 15 de 25

#include "AD_inter.h"
#include <STDLIB.H>
#BYTE portd = 0x08
void main()
{
setup_adc_ports(AN0_AN1_AN2_AN4_VSS_VREF); //Define 4 ch A0 A1
A2 A4,VRef+=A3
setup_adc(ADC_CLOCK_DIV_32); // Para MCU em 20MHz clock/32
Tad=1.6us
set_adc_channel(0);
//seleciona canal 0
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_32);//timer0, clk interno
5Mhz/32=156kHz
set_timer0(100);
// 256-(156kHz/1kHz)=256-156=100 : fs=1KHz
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
set_tris_b(0x00 );
set_tris_d(0x00 );

// bits Port B are output (1-in/0-out)

enable_interrupts(INT_TIMER0); //habilita interrupcao do timer 0


enable_interrupts(GLOBAL); //habilita flag geral de interrupcao
for(;;);
}
#int_timer0
void timerzero(void)
{
static int8 x[21];//matriz das variaveis de entrada "x"
int8 y=0;

//variaveis de saida "y"

const int8 b[21]={19,55,22,35,23,13,4, //coeficientes "b[k]" em


20,36,46,231,46,36,
//notacao Q9/ufix(8)
20,4,13,23,35,22,55,19}; //exceto b[11]=Q8/ufix(8)

Pgina 16 de 25

set_timer0(100);

// reinicia contagem do timer

bit_set(portd,0); // inicio da medida de tempo de processamento


x[20]=x[19];
x[19]=x[18];
x[18]=x[17];
x[17]=x[16];
x[16]=x[15];
x[15]=x[14];
x[14]=x[13];
x[13]=x[12];
x[12]=x[11];
x[11]=x[10];
x[10]=x[9];
x[9]=x[8];
x[8]=x[7];
x[7]=x[6];
x[6]=x[5];
x[5]=x[4];
x[4]=x[3];
x[3]=x[2];
x[2]=x[1];
x[1]=x[0];

// deslocamento no tempo das amostras


// do sinal de entrada
//...
//...
//...
//...
//...
//...
//...
//...
// deslocamento no tempo das amostras
// do sinal de entrada
//...
//...
//...
//...
//...
//...
//...
//...

x[0]=read_adc();

// leitura atual do sinal de entrada

y= ((int16)b[0]*x[0])>>9; //produto das componentes do sinal de entrada


y= y+((int16)b[1]*x[1]>>9); //"x", discretizados no tempo, pelos
y= y+((int16)b[2]*x[2]>>9); //respectivos coeficientes do filtro "bx"
y= y+((int16)b[3]*x[3]>>9); //em ponto fixo. Correcao do resultado
y= y+((int16)b[4]*x[4]>>9); //obtido para a base "Q0" (>>7) e acumulacao
y= y+((int16)b[5]*x[5]>>9); //do resultado na variavel de saida "y".
y= y-((int16)b[6]*x[6]>>9); //(-)reposicao do sinal
y= y-((int16)b[7]*x[7]>>9); //(-)reposicao do sinal
y= y-((int16)b[8]*x[8]>>9); //(-)reposicao do sinal
y= y-((int16)b[9]*x[9]>>9); //(-)reposicao do sinal
y= y+((int16)b[10]*x[10]>>8);// coeficiente em Q8/ufix(8)
y= y-((int16)b[11]*x[11]>>9);//(-)reposicao do sinal
y= y-((int16)b[12]*x[12]>>9);//(-)reposicao do sinal
y= y-((int16)b[13]*x[13]>>9);//(-)reposicao do sinal
y= y-((int16)b[14]*x[14]>>9);//(-)reposicao do sinal
y= y+((int16)b[15]*x[15]>>9);//
y= y+((int16)b[16]*x[16]>>9);//

Pgina 17 de 25

y= y+((int16)b[17]*x[17]>>9);//
y= y+((int16)b[18]*x[18]>>9);//
y= y+((int16)b[19]*x[19]>>9);//
y= y+((int16)b[20]*x[20]>>9);//
output_b(y);
bit_clear(portd,0);

//saida do filtro
//fim da medida de tempo de processamento

Segue abaixo o esquema da aplicao do filtro realizada no Proteus e


o levantamento da curva de sada do filtro realizada a partir de
gerao de sinais senoidais discretos de freqncias compreendidas
na faixa de atuao do filtro

Figura1: Esquema eltrico do filtro (sinal f=60Hz):

Pgina 18 de 25

Figura 2: tempo de amostragem=1ms; tempo de processamento=0,905ms

Figura 3: Sinal de entrada/sada: f=10Hz; vin=7,5V / vout=8,1V; G= +0,67dB

Pgina 19 de 25

Figura 4: Sinal de entrada/sada: f=20Hz; vin=7,5V / vout=6,4V; G= -1,39dB

Figura 5: Sinal de entrada/sada: f=30Hz; vin=7,5V / vout=4,25V; G= -4,93dB

Pgina 20 de 25

Figura 6: Sinal de entrada/sada: f=40Hz; vin=7,5V / vout=2,25V; G= -10,46dB

Figura 7: Sinal de entrada/sada: f=50Hz; vin=7,5V / vout=0,8V; G= -19,44dB

Pgina 21 de 25

Figura 8: Sinal de entrada/sada: f=60Hz; vin=7,5V / vout=0,4V; G= -25,46dB

Figura 9: Sinal de entrada/sada: f=70Hz; vin=7,5V / vout=1,25V; G= -15,56dB

Pgina 22 de 25

Figura 10: Sinal de entrada/sada: f=80Hz; vin=7,5V / vout=2,65V; G= -9,04dB

Figura 11: Sinal de entrada/sada: f=90Hz; vin=7,5V / vout=4,5V; G= -4,44dB

Pgina 23 de 25

Figura 12: Sinal de entrada/sada: f=100Hz; vin=7,5V / vout=6,7V; G= -0,98dB

Figura 13: Sinal de entrada/sada: f=110Hz; vin=7,5V / vout=7,8V; G=+0,34dB

Pgina 24 de 25

Figura 14: Sinal de entrada/sada: f=120Hz; vin=7,5V / vout=8,3V; G=+0,88dB

Figura 15: Curvas do filtro FIR - Rejeita Faixa:

FILTRO FIR - REJEITA FAIXA


15
10
5
GANHO

10

20

30

40

50

60

70

80

-5

90

100

110

120

Vin
Vout
Real(dB)
Ideal(dB)

-10
-15
-20
-25
-30
FREQUENCIA

Pgina 25 de 25

Вам также может понравиться