PROJETO DE FILTROS DIGITAIS E SIMULAÇÕES NO MATLAB
-
Upload
ciro-marcus -
Category
Education
-
view
338 -
download
12
Transcript of PROJETO DE FILTROS DIGITAIS E SIMULAÇÕES NO MATLAB
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ENGENHARIA ELETRÔNICA E DE TELECOMUNICAÇÕES
Telecomunicação XIV: Processamento de sinais
PROJETO DE FILTROS DIGITAIS
E
SIMULAÇÕES NO MATLAB
Ciro Marcus
1
Hermano Felipe
Nilci laine de Macedo
Rodrigo Carmo
Belo Horizonte
2010
Ciro Marcus
Hermano Felipe
Nilci laine de Macedo
Rodrigo Carmo
Trabalho Final
Simulações Utilizando o MatLab - T4
2
Trabalho apresentado ao Curso de
Engenharia Eletrônica e de
Telecomunicações da Pontifícia
Universidade Católica de Minas
Gerais como requisito parcial de
avaliação da disciplina
Telecomunicação XIV Processamento
de sinais.
Orientadora: Maria Luiza
3
PARTE I
PROJETO DE FILTROS DIGITAIS
4
1. OBJETIVO
Projetos de filtros digitais não-recursivos, análise da resposta em freqüência e operação dos filtros através do programa MatLab.`
Projeto do Filtro Digital Não-Recursivo
Projeto, propriamente dito, de 2 filtros, um passa-baixas e outro passa-altas de freqüência de corte 9KHz, 91 elementos, ganho unitário na faixa de passagem, com janela retangular. Escolha a taxa de amostragem; justifique sua escolha.
Análise da Resposta em Frequência ( Diagramas de Módulo e Fase)
Traçar os gráficos da resposta em freqüência, módulo e fase, dos 2 filtros projetados indicando a freqüência de corte e ganho da faixa de passagem.
Análise de Operação:
Faça a excitação dos filtros através de um sinal multisenoidal composto por senóides de frequência pertencente e maior e/ou menor que a faixa de passagem dos filtros especificados. O sinal aplicado aos dois filtros deve ser o mesmo. Mostre graficamente os efeitos da filtragem analisando os espectros de frequência dos sinais de entrada e saída. Interprete o resultado.
5
2. DESENVOLVIMENTO
Freqüência de amostragem:
De acordo com o teorema de Nyquist, a freqüência de amostragem tem que ser igual ou maior a duas vezes a maior freqüência de corte para que o sinal possa ser reconstituído com o mínimo de perda.
Utilizando o MATLAB para projetar o filtro Passa-alta.
%*************************************************************************% Engenharia Eletrônica e de Telecomunicação% % Trabalho Final - Simulações Utilizando o MatLab - T1%% Disciplina: Processamento de Sinais % Profa. Maria Luisa Grossi Vieira Santos %% Nomes: Ciro Marcus% Hermano Felipe% Nilcilaine Macedo% Rodrigo Carmo% % Dados: Filtro Passa-Alta% Frequencia de corte = 9kHz% 91 elementos % Ganho unitário na faixa de passagem% Janela retangular%************************************************************************* close all;clear all;clc; %Frequencia de corte filtro passa alta%Wn = 9000/(45000/2)= 0,4 Wn = [0.4]; % Vetor com Freq. corte inferior/superiorN = 91; % Elementos do filtroWs = 45000; % Frequencia de amostragem % De acordo com o teorema de Nyquist, a frequencia de % amostragem tem que ser igual ou maior a duas vezes a % maior frequencia de corte para que o sinal possa ser % reconstituído com o mínimo de perda. % Resposta janela retangularJanela_retangular = fir1((N-1),Wn,'high',rectwin(N)); %Calculos para Resposta em Freqüência %RETANGULAR[Hr,wr] = freqz(Janela_retangular,1);%Gráficos modulo/fase para janela retangularfigure(2);subplot(2,1,1);%Gráfico de modulo Db x Hz
6
plot(wr*Ws/(2*pi),20*log10(abs(Hr)));grid minor;title('Filtro Janela Retangular - Resposta em Frequência');xlabel('Hertz');ylabel('(dB)'); %Gráfico de fase graus x Hzsubplot(2,1,2);plot(wr*Ws/(2*pi),angle(Hr)*180/pi);grid minor;xlabel('Hertz'); ylabel('Fase (graus)'); %Análise de Operação:%Sinal MultiSenoidal % Conversão do tempo discreto para intervalo de amostras (sinais discretos) %Frequências para as senóides freq1=1000;freq2=3000;freq3=6000;freq4=9000; %frequencia de corte do filtrofreq5=12000;freq6=15000;freq7=18000; %Base de tempo para os sinais senoidais t = (1:800)/Ws; %Sinais Senoidais Individuaissin1 = sin(2*pi*freq1*t);sin2 = sin(2*pi*freq2*t);sin3 = sin(2*pi*freq3*t);sin4 = sin(2*pi*freq4*t);sin5 = sin(2*pi*freq5*t);sin6 = sin(2*pi*freq6*t);sin7 = sin(2*pi*freq7*t); figure(1)plot(t,sin1,'c',t,sin2,'m',t,sin3,'y',t,sin4,'k',t,sin5,'r',t,sin6,'g',t,sin7,'b');title('Sinais gerados por várias senóides')grid on; %Geração dos Sinal Multisenoidal através da soma das várias senóidesMultiSenoidal=sin1+sin2+sin3+sin4+sin5+sin6+sin7; % Filtragem dos sinais % MultiSenoidalal Filtrado: janela retangularMFJR = filter( Janela_retangular,1,MultiSenoidal ); % Resposta Temporalt=((1:800)/Ws)*1000; % Delta T em milisegundosfigure(3);subplot(2,1,1);plot(t,MultiSenoidal);grid on;title('Sinal MultiSenoidal - Resposta Temporal');subplot(2,1,2);
7
plot(t,MFJR); grid on;title('Janela Retangular do Sinal filtrado'); %Resposta em Freqüência% Modulo da transformada de Fourier para sinais %Modulo da transformada de Fourier%Para o sinal MultiSenoidalMTFSM = abs(fft(MultiSenoidal)); %OriginalMTFSMFR = abs(fft(MFJR)); %Janela Retangular %Intervalo de Freqüências para metade dos 800 pontosf = Ws*(0:399)/800; figure(4);subplot(2,1,1);plot(f,MTFSM(1:400)); grid minor;title('Sinal Multisenoidal - Resposta em Freqüência');subplot(2,1,2);plot(f,MTFSMFR(1:400)); grid minor;title('Janela Retangular do Sinal filtrado');
8
GRÁFICO 1
Resposta freqüência de um filtro com janela retangular.
Fig.1
9
Frequencia de corte = 9kHz
Ganho = 0dB
GRÁFICO 2
Senoides utilizadas para geração do sinal multisenoidal à ser aplicado nos filtros.
Fig.2Resposta temporal de um sinal multisenoidal.
Fig.3
10
GRÁFICO 3
Gráfico de filtragem do sinal multisenoidal aplicado no filtro Passa-Alta:
Fig.4De acordo com o primeiro gráfico, tivemos aplicado na entrada do filtro 7 sinais com
freqüências distintas sendo elas 1kHz, 3kHz, 6kHz, 9kHz, 12kHz, 15kHz e 18kHz.No segundo gráfico podemos observar o resultado após a atuação do filtro passa-alta,
apenas as freqüências maiores que os 9kHz ainda estão presentes no sinal.
11
Utilizando o MATLAB para projetar o filtro Passa-baixa.
%*************************************************************************% Engenharia Eletrônica e de Telecomunicação% % Trabalho Final - Simulações Utilizando o MatLab - T1%% Disciplina: Processamento de Sinais % Profa. Maria Luisa Grossi Vieira Santos %% Nomes: Ciro Marcus% Hermano Felipe% Nilcilaine Macedo% Rodrigo Carmo% % Dados: Filtro Passa-Baixa% Frequencia de corte = 9kHz% 91 elementos % Ganho unitário na faixa de passagem% Janela retangular%************************************************************************* close all;clear all;clc; %Frequencia de corte filtro passa baixa%Wn = 9000/(45000/2)= 0,4 Wn = [0.4]; % Vetor com Freq. corte inferior/superiorN = 91; % Elementos do filtroWs = 45000; % Frequencia de amostragem % De acordo com o teorema de Nyquist, a frequencia de % amostragem tem que ser igual ou maior a duas vezes a % maior frequencia de corte para que o sinal possa ser % reconstituído com o mínimo de perda. % Resposta janela retangularJanela_retangular = fir1((N-1),Wn,'low',rectwin(N)); %Calculos para Resposta em Freqüência %RETANGULAR[Hr,wr] = freqz(Janela_retangular,1);%Gráficos modulo/fase para janela retangularfigure(2);subplot(2,1,1);%Gráfico de modulo Db x Hzplot(wr*Ws/(2*pi),20*log10(abs(Hr)));grid minor;title('Filtro Janela Retangular - Resposta em Frequência');xlabel('Hertz');ylabel('(dB)'); %Gráfico de fase graus x Hzsubplot(2,1,2);plot(wr*Ws/(2*pi),angle(Hr)*180/pi);grid minor;xlabel('Hertz'); ylabel('Fase (graus)');
12
%Análise de Operação:%Sinal MultiSenoidal % Conversão do tempo discreto para intervalo de amostras (sinais discretos) %Frequências para as senóides freq1=1000;freq2=3000;freq3=6000;freq4=9000; %frequencia de corte do filtrofreq5=12000;freq6=15000;freq7=18000; %Base de tempo para os sinais senoidais t = (1:800)/Ws; %Sinais Senoidais Individuaissin1 = sin(2*pi*freq1*t);sin2 = sin(2*pi*freq2*t);sin3 = sin(2*pi*freq3*t);sin4 = sin(2*pi*freq4*t);sin5 = sin(2*pi*freq5*t);sin6 = sin(2*pi*freq6*t);sin7 = sin(2*pi*freq7*t); figure(1)plot(t,sin1,'c',t,sin2,'m',t,sin3,'y',t,sin4,'k',t,sin5,'r',t,sin6,'g',t,sin7,'b');title('Sinais gerados por várias senóides')grid on; %Geração dos Sinal Multisenoidal através da soma das várias senóidesMultiSenoidal=sin1+sin2+sin3+sin4+sin5+sin6+sin7; % Filtragem dos sinais % MultiSenoidalal Filtrado: janela retangularMFJR = filter( Janela_retangular,1,MultiSenoidal ); % Resposta Temporalt=((1:800)/Ws)*1000; % Delta T em milisegundosfigure(3);subplot(2,1,1);plot(t,MultiSenoidal);grid on;title('Sinal MultiSenoidal - Resposta Temporal');subplot(2,1,2);plot(t,MFJR); grid on;title('Janela Retangular do Sinal filtrado'); %Resposta em Freqüência% Modulo da transformada de Fourier para sinais %Modulo da transformada de Fourier%Para o sinal MultiSenoidalMTFSM = abs(fft(MultiSenoidal)); %OriginalMTFSMFR = abs(fft(MFJR)); %Janela Retangular
13
%Intervalo de Freqüências para metade dos 800 pontosf = Ws*(0:399)/800; figure(4);subplot(2,1,1);plot(f,MTFSM(1:400)); grid minor;title('Sinal Multisenoidal - Resposta em Freqüência');subplot(2,1,2);plot(f,MTFSMFR(1:400)); grid minor;title('Janela Retangular do Sinal filtrado');
14
GRÁFICO 1
Resposta freqüência de um filtro passa baixa com janela retangular.
Fig.5
15
Frequencia de corte = 9kHz
Ganho = 0dB
GRÁFICO 2
Sinal multisenoidal aplicada no filtro.
Fig.6Resposta temporal do sinal multisenoidal aplicado e resposta temporal de um filtro passa baixa.
Fig.7
16
GRÁFICO 3
Gráfico de filtragem do sinal multisenoidal aplicado no filtro Passa-Alta:
Fig.8De acordo com o primeiro gráfico, tivemos aplicado na entrada do filtro 7 sinais com
freqüências distintas sendo elas 1kHz, 3kHz, 6kHz, 9kHz, 12kHz, 15kHz e 18kHz.No segundo gráfico podemos observar o resultado após a atuação do filtro passa-
baixa, apenas as freqüências menores que os 9kHz ainda estão presentes no sinal.
17
Analise os fi l tros projetados em relação à estabil idade. Interprete.
Como vantagens, os filtros FIR possuem resposta de fase linear e estabilidade, portanto, fazendo uma análise gráfica da resposta temporal da saída do sinal multisenoidal aplicado aos filtros, percebemos que a resposta fica restrita a apenas valores finitos, não tendendo em nenhum momento a valores infinitos o que nos comprova a estabilidade dos filtros projetados.
FIG.9
18
Amplitude constante.
CONCLUSÃO
O projeto do filtro digital não recursivo apresentados neste trabalho, e sua
simulação, nos facilitou o entendimento de um filtro passa-baixa e passa-alta, como
podemos ver no diagrama de espectro de freqüências onde simulamos freqüências
abaixo da freqüência de corte, e freqüências acima, para tanto, no filtro passa
baixa, o sinal multisenoidal aplicado, apenas as freqüências acima da freqüência de
corte não passaram, ou tiveram suas freqüências atenuadas em 20Db/Dec,
podendo ser atenuadas com valores até maiores como por exemplo 40Db/Dec,
dependendo dos pólos inseridos no filtro. A mesma idéia aconteceu para o filtro
passa-alta.
O uso de filtro digitais ajuda no ganho da qualidade da informação, já que o
mesmo poderá eliminar ruídos indesejados e também faixas do sinal original.
O Matlab foi um ferramenta e software utilizada no desenvolvimento de
projetos de filtro digitais com uma programação intermediária, e conseguimos obter
resultados satisfatórios afim de comprovar na teoria o funcionamento dos filtros
digitais.
19
PARTE II
SIMULAÇÕES NO MATLAB
20
1ª Questão: Determine se cada um dos sinais discretos, a seguir, é ou não periódico. Calcule o período fundamental, se aplicável, e plote dois períodos de cada sinal, utilizando a função "stem" do MatLab.
Para sen ou cos
Para ou
a) ( )
+=
482
1
ππnsennx
Para K = 1 o período fundamental será de N = 8
b) ( )
+=
65cos2
ππnnx
Para K = 1 o período fundamental será de N = 10
c) ( ) )n(xnx)n(x 21 +=
Devido a soma dos sinais e o período fundamental de será um valor de amostra comum entre ambos, ou seja N = 40 amostras.
21
MatLab:
clc;clear all;close all;
'Questão 1_a'n=-10:1:40;x1=sin(((pi/8)*n)+pi/4).^2;subplot(3,1,1);stem(n,x1);grid on;
'Questão 1_b'n=-10:1:40;x2=cos(((pi/5)*n)+pi/6);subplot(3,1,2);stem(n,x2)grid on;
'Questão 1_c'n=-10:1:40;x3=x1+x2;subplot(3,1,3);stem(n,x3);grid on;
Gráficos obtidos:
Fig.10
22
2ª Questão: Considere o sinal descrito por ))13()1(()( −−−= nununnz .a) Plote este sinal versus o tempo;b) Decomponha este sinal em seus componentes par e ímpar e plote cada uma das partes em
função do tempo;c) Reconstrua o sinal original a partir de seus componentes par e ímpar, plotando o resultado.
MatLab:
clc;clear all;close all; % 2)QUESTAO%=========================================%a)%criando a função degrauu = inline('t >= 0');%cria um vetor com 21 pontos entre 0 e 20n = linspace(0, 20, 21);% %criando a função z(n)z=n.*(u(n-1)-u(n-13));figurestem(n,z)title('Letra a') grid on%=========================================%b)%sinal par - o vetor z foi invertido, e somado ao sinal z já existente e%tudo foi dividido por 2 z_par = [fliplr(z) z(2:length(z))]./2;n_aux = [(-1).*fliplr(n) n(2:length(n))] figurestem(n_aux,z_par)title('Letra b - sinal par');grid on% %Sinal Ímparr=> juntamos o sinal z, com o resultado da funcao fliplr(z)%com amplitude invertida e dividimos tudo por 2z_impar = [-1.*fliplr(z) z(2:length(z))]./2;figurestem(n_aux,z_impar)title('Letra b - sinal impar');grid on%=========================================%c)%Recompondo o sinal=>somamos o sinal par com o sinal ímparz_recomp = z_impar + z_par;figurestem(n_aux, z_recomp)title('Letra c - sinal recomposto');grid on
23
Gráficos obtidos:
Gráfico 1
Fig.11Gráfico 2
Fig.12
24
Gráfico 3
Fig.13
Gráfico 4
Fig.14
25
3ª Questão: Utilizando a função "conv" do MatLab, obtenha a saída do sistema que tem como resposta ao impulso ( ) { })11()2(9,0)( −−−= nununh n , quando em sua entrada for aplicado o sinal { })15()(2)( −−= nununx . Plote em um mesmo gráfico (utilizando as funções "subplot" e "stem") x(n) e h(n), de forma que os sinais possam ser completamente visualizados. Plotar a saída y(n).
MatLab:
clc;clear all;close all; % 3)QUESTAO%========================================= %criando a função degrauu = inline('t >= 0');n = linspace(-40, 40, 81);%=========================================%criando a funcao h(n)h=((0.9).^n).*(u(n-2)-u(n-11));figuresubplot(2,1,1)stem(n,h)title('RESPOSTA AO IMPULSO h(n)');axis ([-5 15 -0.5 1])grid on%=========================================%criando a funcao x(n)x= 2*(u(n)-u(n-15));subplot(2,1,2)stem(n,x)title('SINAL APLICADO x(n)');axis ([-5 19 -0.5 2.5])grid on%========================================= %fazendo a convolução de h(n) e x(n) e jogando o resultado em y(n)y = conv(h,x); % o vetor resultado da funcao conv tem o TAMANHO DO VETOR H + TAMANHO DO% VETOR X -1%entao o eixo n tem que ir de -(TAMANHO DO VETOR H + TAMANHO DO VETOR X)/2%ate (TAMANHO DO VETOR H + TAMANHO DO VETOR X)/2 -1 n = linspace(-1*(length(h)+length(x))/2, ((length(h)+length(x))/2)-1, length(h)+length(x)-1);figurestem(n,y)title('SAÍDA DO SISTEMA y(n)');axis ([-5 30 -5 12])grid on
26
Gráficos obtidos:
Gráfico 1
Fig.15
Gráfico 2 - Saída y(n)
Fig.16
27
4ª Questão: Utilize o comando "residuez" do MatLab para fazer a expansão em frações parciais da função de transferência abaixo. Em seguida, obtenha a resposta ao impulso do sistema. Analise se o sistema é causal e/ou estável, justifique suas respostas.
( )2
1z
5.0²2
3³
2
1
2
3²³
>++
+++=
zzz
zzzzH
MatLab:
clc;clear all;close all; num=[1 1 3/2 1/2];den=[1 3/2 1/2]; [R,P,K]=residuez(num, den)z=tf('s');tf=(z^3+z^2+(3/2)*z+(1/2))/(z^3+(3/2)*z^2+(1/2)*z);[y,t]=impulse(tf);impulse(tf)figurestem(t,y)axis([-2 10 -2 2])grid on
Expansão em frações parciais:
Resultado da função residuez
R =
2 -1
P =
-1.0000 -0.5000
K =
0 1
Segundo o HELP DO MATLAB
28
B(z) r(1) r(n) ---- = ------------ +... ------------ + k(1) + k(2)z^(-1) ... A(z) 1-p(1)z^(-1) 1-p(n)z^(-1)
Logo:
B(z) 2 (-1) 1 ---- = ------------ + ----------------- + ---------------- A(z) 1-(-1)z^(-1) 1-(-0.5) z^2
O sistema composto pela função de transferência ( )2
1z
5.0²2
3³
2
1
2
3²³
>++
+++=
zzz
zzzzH é
causal, pois é um sistema unilateral direito e não exclui o infinito e é um sistema estável, uma vez que a circunferência unitária está contida na região de convergência.
Gráficos obtidos:
Gráfico 1 - Resposta ao impulso
Fig17
29
Gráfico 2 - Resposta ao impulso com função STEM
Fig.18
30
Referências Bibliográficas:
• DINIZ, P.S.R & outros: Processamento Digital de Sinais - Projeto e Análise de Sistemas; Bookman; 2004.
• S. HAYKIN & B. V. VEEN: Sinais e Sistemas; Bookman; 2001.• S. D. STEARNS & R. A. DAVID: Signal Processing Algorithms in MatLab; 1996.• PROAKIS, J.G. & MANOLAKIS: D.G.: Digital Signal Processing - Principles, Algorithms and
Applications; McMillan Publishing Co., 1992.
31
32