Mudanças entre as edições de "PSD29007-Engtelecom(2018-1) - Prof. Marcos Moecke"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 998: Linha 998:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
 +
<!--
 
{{collapse top | expand = true | AE1 - Revisão de Sinais e Sistemas  (prazo e forma de entrega ver na plataforma AVA)}}
 
{{collapse top | expand = true | AE1 - Revisão de Sinais e Sistemas  (prazo e forma de entrega ver na plataforma AVA)}}
 
*Esta atividade poderá ser desenvolvida individualmente ou em duplas (de no máximo duas pessoas). No dia 9/03 os alunos deverão informar os nomes das duplas.  
 
*Esta atividade poderá ser desenvolvida individualmente ou em duplas (de no máximo duas pessoas). No dia 9/03 os alunos deverão informar os nomes das duplas.  
<!--
+
 
 
:* ATIVIDADE 1 - Experimento 1.2  
 
:* ATIVIDADE 1 - Experimento 1.2  
 
# Varie o valor da frequência de amostragem de 6 até 20 Hz e observe:
 
# Varie o valor da frequência de amostragem de 6 até 20 Hz e observe:
Linha 1 071: Linha 1 072:
 
|}
 
|}
 
</center>
 
</center>
-->
+
 
 
* Enviar o relatório (em pdf) incluindo as principais figuras obtidas e as respostas e conclusões na plataforma AVA.  
 
* Enviar o relatório (em pdf) incluindo as principais figuras obtidas e as respostas e conclusões na plataforma AVA.  
 
* Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a [https://www.sharelatex.com?r=205ee4bd&rm=d&rs=b Plataforma Sharelatex]. Utilize preferencialmente o [http://pt.sharelatex.com/project/5980bfd0b8ec417a1f5e71d8 modelo de artigo no padrão ABNT] em 1 coluna. Se quiser pode utilizar o publish do matlab mas entregue o documento em pdf, com as respostas solicitadas e as conclusões de cada Atividade.   
 
* Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a [https://www.sharelatex.com?r=205ee4bd&rm=d&rs=b Plataforma Sharelatex]. Utilize preferencialmente o [http://pt.sharelatex.com/project/5980bfd0b8ec417a1f5e71d8 modelo de artigo no padrão ABNT] em 1 coluna. Se quiser pode utilizar o publish do matlab mas entregue o documento em pdf, com as respostas solicitadas e as conclusões de cada Atividade.   
 
{{collapse bottom}}
 
{{collapse bottom}}
 +
-->
  
<!--
+
{{collapse top | expand=true | AE1 - Projeto de Filtros Digitais IIR (Entrega e prazos ver Moodle)}}
{{collapse top | AE2 - Projeto de Filtros Digitais IIR (Entrega e prazos ver Moodle)}}
+
Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais IIR: (a) projeto de um filtro protótipo analógico passa-baixas H(p); (b) transformação em frequência do filtro H(p) -> H(s), obtendo o filtro LP, HP, BP, BS, conforme o tipo de filtro desejado; (c) transformação do filtro analógico em filtro digital H(s) -> H(z) utilizando a transformação "Bilinear" ou pela transformação "Invariante ao Impulso".  Nesta avaliação é solicitado que cada equipe realize o projeto de 4 filtros, e trabalhos individuais serão 3 filtros.  Para todos os filtros considere como valores default fa = 8 kHz, Gp = 0 dB, Ap = 0.5 dB e As = 30 dB (exceto se indica outro valor na tabela abaixo. Os filtro BP deverão ter apenas o BP1 projetado conforme o procedimento completo, sendo que nos demais deverá ser aproveitado o filtro H(p) para obtê-los.
Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais IIR: (a) projeto de um filtro protótipo analógico passa-baixas H(p); (b) transformação em frequência do filtro H(p) -> H(s), obtendo o filtro LP, HP, BP, BS, conforme o tipo de filtro desejado; (c) transformação do filtro analógico em filtro digital H(s) -> H(z) utilizando a transformação "Bilinear" ou pela transformação "Invariante ao Impulso".  Nesta avaliação é solicitado que cada equipe realize o projeto de 5 filtros, e trabalhos individuais serão 4 filtros.  Para todos os filtros considere como valores default fa = 4 kHz, Gp = 0 dB, Ap = 1 dB e As = 40 dB (exceto se indica outro valor na tabela abaixo. Os filtro BP deverão ter apenas o BP1 projetado conforme o procedimento completo, sendo que nos demais deverá ser aproveitado o filtro H(p) para obtê-los.
 
  
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
Linha 1 086: Linha 1 087:
 
! scope="col" width=20% align="center"| Filtro 3
 
! scope="col" width=20% align="center"| Filtro 3
 
! scope="col" width=20% align="center"| Filtro 4
 
! scope="col" width=20% align="center"| Filtro 4
! scope="col" width=20% align="center"| Filtro 5
 
 
|-
 
|-
 
| Equipe 1  
 
| Equipe 1  
| LP - (f1 = 941 Hz; f2 = 1209 Hz, As = 20 dB, Butterworth)
+
| LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, Butterworth)
| HP - (f1 = 941 Hz; f2 = 1209 Hz, As = 30 dB, Chebychev 1)  
+
| HP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, Chebychev 1)  
 
| BP1 - (f1 = 627 Hz; f2 = 683 Hz, f3 = 711 Hz; f4 = 767 Hz, Elíptico )  
 
| BP1 - (f1 = 627 Hz; f2 = 683 Hz, f3 = 711 Hz; f4 = 767 Hz, Elíptico )  
| BP2 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico ) 
+
| BS1 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico  )  
| BP3 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico  )  
 
 
|-
 
|-
 
| Equipe 2
 
| Equipe 2
| LP - (f1 = 941 Hz; f2 = 1209 Hz, As = 25 dB, Chebychev 1)
+
| LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 25 dB, Chebychev 1)
| HP - (f1 = 941 Hz; f2 = 1209 Hz, As = 25 dB, Butterworth)
+
| HP - (f1 = 950 Hz; f2 = 1300 Hz,, As = 25 dB, Butterworth)
 
| BP1 - (f1 = 847 Hz; f2 = 922 Hz, f3 = 960 Hz; f4 = 1035 Hz, Chebychev 2 )  
 
| BP1 - (f1 = 847 Hz; f2 = 922 Hz, f3 = 960 Hz; f4 = 1035 Hz, Chebychev 2 )  
| BP2 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )
+
| BS1 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )
| BP3 - (f1 = 1470 Hz; f2 = 1600 Hz, f3 = 1666 Hz; f4 = 1796 Hz, Chebychev 2 ) 
 
 
|-
 
|-
 
| Equipe 3  
 
| Equipe 3  
| LP - (f1 = 941 Hz; f2 = 1209 Hz, As = 30 dB, Chebychev 1)
+
| LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 30 dB, Chebychev 1)
| HP - (f1 = 941 Hz; f2 = 1209 Hz, As = 20 dB, Butterworth)
+
| HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 20 dB, Butterworth)
| BP1 - (f1 = 767 Hz; f2 = 835 Hz, f3 = 869 Hz; f4 = 937 Hz, Elíptico  )  
+
| BS1- (f1 = 767 Hz; f2 = 835 Hz, f3 = 869 Hz; f4 = 937 Hz, Elíptico  )  
| BP2 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico  )  
+
| BP1 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico  )  
| BP3 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Elíptico  ) 
 
 
|-
 
|-
 
| Equipe 4  
 
| Equipe 4  
| LP - (f1 = 941 Hz; f2 = 1209 Hz, As = 25 dB, Butterworth)
+
| LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 25 dB, Butterworth)
| HP - (f1 = 941 Hz; f2 = 1209 Hz, As = 35 dB, Chebychev 1)
+
| HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 35 dB, Chebychev 1)
 
| BP1 - (f1 = 1088 Hz; f2 = 1185 Hz, f3 = 1233 Hz; f4 = 1330 Hz, Chebychev 2 )   
 
| BP1 - (f1 = 1088 Hz; f2 = 1185 Hz, f3 = 1233 Hz; f4 = 1330 Hz, Chebychev 2 )   
| BP2 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )  
+
| BS1 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )  
| BP3 - (f1 = 627 Hz; f2 = 683 Hz, f3 = 711 Hz; f4 = 767 Hz, Chebychev 2 ) 
 
 
|-
 
|-
 
| Equipe 5  
 
| Equipe 5  
| LP - (f1 = 941 Hz; f2 = 1209 Hz, As = 35 dB, Chebychev 1)
+
| LP - (f1 = 850 Hz; f2 = 1200 Hz, As = 35 dB, Chebychev 1)
| HP - (f1 = 941 Hz; f2 = 1209 Hz, As = 25 dB, Butterworth)
+
| HP - (f1 = 850 Hz; f2 = 1200 Hz, As = 25 dB, Butterworth)
 
| BP1 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico  )  
 
| BP1 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico  )  
| BP2 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico  )
+
| BS1 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico  )
 
|}
 
|}
  
Linha 1 127: Linha 1 123:
 
:: <math> f_N </math> - são as "N" frequência de especificação do filtro dadas em Hertz (kHz ou MHz);  f_a é a frequência de amostragem dos sinais e do sistema.
 
:: <math> f_N </math> - são as "N" frequência de especificação do filtro dadas em Hertz (kHz ou MHz);  f_a é a frequência de amostragem dos sinais e do sistema.
 
:: <math> f_p </math> - frequência de passagem; <math> f_r </math> - frequência de rejeição, <math> A_p </math> - Atenuação máxima na banda de passagem (dB), <math> A_r </math> - Atenuação mínima na banda de rejeição (dB), <math> G_p </math> - Ganho médio na banda de passagem (dB).
 
:: <math> f_p </math> - frequência de passagem; <math> f_r </math> - frequência de rejeição, <math> A_p </math> - Atenuação máxima na banda de passagem (dB), <math> A_r </math> - Atenuação mínima na banda de rejeição (dB), <math> G_p </math> - Ganho médio na banda de passagem (dB).
:*Os filtros LP e HP devem ser realizados utilizando a aproximação de Butterworth ou Chebyshev tipo 1 (devendo ser todos os calculados efetuados a partir das equações), enquanto os filtros BP devem ser realizados utilizando a aproximação de Chebyshev tipo 2 ou Euler (podendo ser calculada a função H(p) a partir das funções do Matlab.  
+
:*Os filtros LP e HP devem ser realizados utilizando a aproximação de Butterworth ou Chebyshev tipo 1 (devendo ser todos os calculados efetuados a partir das equações), enquanto os filtros BP e BS devem ser realizados utilizando a aproximação de Chebyshev tipo 2 ou Euler (podendo ser calculada a função H(p) a partir das funções do Matlab.  
:* A tabela acima indica o tipo de filtro que cada equipe deve utilizar
+
:* A tabela acima indica o tipo de filtro que cada equipe deve utilizar.
 
:* Para ambos filtros deve indicada a ordem do filtro, o valor de polos e zeros, e as equações de H(p), H(s), H(z).
 
:* Para ambos filtros deve indicada a ordem do filtro, o valor de polos e zeros, e as equações de H(p), H(s), H(z).
 
:* Deve ser apresentado de forma gráfica a resposta em frequência dos filtros (ganho em dB e fase) dos filtros (a) protótipo H(p), (b) Filtro analógico H(s)  e Filtro digital H(z).  Para mostrar que os filtros atendem a especificação utilize uma mascara com as especificações.
 
:* Deve ser apresentado de forma gráfica a resposta em frequência dos filtros (ganho em dB e fase) dos filtros (a) protótipo H(p), (b) Filtro analógico H(s)  e Filtro digital H(z).  Para mostrar que os filtros atendem a especificação utilize uma mascara com as especificações.
Linha 1 139: Linha 1 135:
 
:* Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma [http://moodlenovo.sj.ifsc.edu.br/mod/assign/view.php?id=2431 Moodle].
 
:* Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma [http://moodlenovo.sj.ifsc.edu.br/mod/assign/view.php?id=2431 Moodle].
 
{{collapse bottom}}
 
{{collapse bottom}}
 
+
<!--
 
{{collapse top  | AE3 - Projeto de Filtros Digitais FIR (Entrega e prazos ver Moodle)}}
 
{{collapse top  | AE3 - Projeto de Filtros Digitais FIR (Entrega e prazos ver Moodle)}}
 
Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais FIR: (a) Projeto de filtros com Janela Fixas (filtro LP) e Ajustáveis filtro HP); (b) Projeto de filtros com o algoritmo de Parks-McCleallan (Filtros BP);  Nesta avaliação é solicitado que cada equipe realize os mesmos filtros projeto de filtros da atividade AE2.  
 
Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais FIR: (a) Projeto de filtros com Janela Fixas (filtro LP) e Ajustáveis filtro HP); (b) Projeto de filtros com o algoritmo de Parks-McCleallan (Filtros BP);  Nesta avaliação é solicitado que cada equipe realize os mesmos filtros projeto de filtros da atividade AE2.  

Edição das 23h41min de 23 de abril de 2018

Registro on-line das aulas

Unidade 1

Unidade 1

Aula 1 (16 fev)
Aula 2 (20 fev)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
  • Explorar a interface do Matlab.
  • Funções de visualização das variáveis no workspace.
  • Execução de instruções passo a passo.
  • Escrita de script .m
  • Uso da execução das seções de um script.
  • Incremento de valor e execução.
EXEMPLOS:
  • Leia com atenção e execute o exemplo (Moving-Avarage Filter) na página de help da função filter.
  • Leia com atenção o help Using FFT, abra o script clicando no botão [Open this Example]. Execute o script seção após seção. Note o uso da fft para determinar a frequência das manchas solares.
  • Para melhorar o desempenho no Matlab recomendo que leiam a pagina do Help, . Também gostaria de lembra-los que a tecla F9 executa o código destacado no Help. Programação com scripts .m.
DICAS:
  • No help on-line da Matworks, usando o botão [Try This Example > Try in your browser], permite executar o código no próprio browser sem ter nenhuma instalação do Matlab. Para verificar que o código realmente é executado mude a amplitude do ruído randômico para 0.1 ou 0.5, insira o comando close all antes da primeira linha, e execute todo o código [Run All]
  • No help do Matlab, usando o botão [Open this Example], é possível executar o código seção a seção.
  • Leia sobre manchas solares para entender o que são os dados do segundo exemplo.
Aula 3 (23 fev)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Sinais no dominio do tempo e dominio da frequencia. Uso da função fft
Exemplo de uso da FFT
%% Signal in Time Domain 
% Use Fourier transforms to find the frequency components of a signal buried in noise.
% Specify the parameters of a signal with a sampling frequency of 1 kHz and a signal duration of 1.5 seconds
Fs = 1000;            % Sampling frequency                    
T = 1/Fs;             % Sampling period       
L = 1500;             % Length of signal
t = (0:L-1)*T;        % Time vector

% Form a signal containing a 50 Hz sinusoid of amplitude 0.7 and a 120 Hz sinusoid of amplitude 1.
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);

% Corrupt the signal with zero-mean white noise with a variance of 4.
X = S + 2*randn(size(t));

% Plot the noisy signal in the time domain. It is difficult to identify the frequency components by looking at the signal X(t).
subplot(211);
plot(1000*t(1:200),X(1:200))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('t (milliseconds)')
ylabel('X(t)')

%% Signal in Frequency Domain
% Compute the Fourier transform of the signal.
Y = fft(X);

% Compute the two-sided spectrum P2. Then compute the single-sided spectrum P1 based on P2 and the even-valued signal length L.
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

% Define the frequency domain f and plot the single-sided amplitude spectrum P1. 
% The amplitudes are not exactly at 0.7 and 1, as expected, because of the added noise. 
% On average, longer signals produce better frequency approximations.
f = Fs*(0:(L/2))/L;
subplot(212);
plot(f,P1)
ylim([0 1.05]) 
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')

% Now, take the Fourier transform of the original, uncorrupted signal and retrieve the exact amplitudes, 0.7 and 1.0.
Y = fft(S);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

plot(f,P1) 
title('Single-Sided Amplitude Spectrum of S(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
  • Amostragem de Sinais (Experimento 1.2)
  • Relembrar teorema da amostragem. Efeito da amostragem abaixo da frequência de Nyquist. Aliasing.
  • Notar que as amostras de um sinal (3 Hz) e um sinal (7 Hz) são idênticas quando amostrado com um sinal de 10 Hz.
%  Exemplos e Experimentos baseados no livro:
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
%% Experimento 1.2
fs = 10; % frequencia (Hz) de amostragem dos sinais
Ts = 1/fs; fase = 0;
time = 0:Ts:(1-Ts);
f1 = 3; % frequencia (Hz) do sinal s_1
f2 = 7; % frequencia (Hz) do sinal s_2
s_1 = cos(2*pi*f1*time+fase);
s_2 = cos(2*pi*f2*time+fase);
fsa = 1000; % frequência auxiliar de amostragem usada apenas para representação dos sinais originais
Tsa = 1/fsa;
time_aux = 0:Tsa:(1-Tsa);
figure(1);
stem(time,s_1,'ob');
hold on;
plot(time_aux, cos(2*pi*f1*time_aux+fase),'--k');
stem(time,s_2,'+r');
plot(time_aux, cos(2*pi*f2*time_aux+fase),'--m');
hold off;
legend('s_1 discreto','s_1 contínuo','s_2 discreto','s_2 contínuo')
Aula 4 (27 fev)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Variação do Experimento 2.2
%  Exemplos e Experimentos baseados no livro:
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
%% Experimento 2.2
% Resposta em frequencia usando a função freqz
N = 1;
num = [1 0 0 0];
den = poly([0.8 0.2])
%den = [1 0.6 -0.16];
% modo 1
%[H,w]=freqz(num,den,[0:pi/100:N*pi-pi/100]);
%plot(w/pi, abs(H));
% modo 2
%[H,w]=freqz(num,den);
%plot(w/pi, abs(H));
% modo 3
%[H,w]=freqz(num, den, 'whole');
%plot(w/pi, abs(H));
% modo 4
freqz(num, den, 'whole');
figure(2);
zplane(num,den);

%% Resposta em frequencia substituindo z -> e^(jw)
syms z
Hf(z) = symfun(z^2/(z-0.2)/(z+0.8),z);
pretty(Hf)
latex(Hf)
N = 1;
w = [0:pi/100:N*pi-pi/100];
plot(w/pi,abs(Hf(exp(1i*w))))
%title(['$' latex(Hf) '$'],'interpreter','latex')
text(0.2,2,['H(z) = ' '$$' latex(Hf) '$$'],'interpreter','latex')
xlabel(['w/' '$$' '\pi' '$$'],'interpreter','latex')
  1. Verifique a diferença entre os tipos de plots comentados no código.
  2. substitua o denominador de H(z) por dois polos em [-0.8 -0.8].
  3. verifique o que ocorre se forem utilizados polos complexos conjugados [0.3-0.4i 0.3+0.4i 0.1]
  4. verifique o que ocorre se forem utilizados polos complexos não conjugados [0.3-0.4i 0.3+0.8i]
  5. verifique o que ocorre se os polos estiverem fora do circulo unitário [1.2 -0.2]. Interprete este resultado
Aula 5 (2 mar)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
%% Experimento 2.3 - Filtros Digitais
% Exemplos e Experimentos baseados no livro:
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
% FILE: Exp2_3.m
 
%% 1º filtro
p1 = 0.9*exp(1j*pi/4);
Z = [1 -1 ]'; P = [p1 p1']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
 
%% 2º filtro
z1 = exp(1j*pi/8);
z2 = exp(1j*3*pi/8);
p1 = 0.9*exp(1j*pi/4);
Z = [1 -1 z1 z1' z2 z2']';
P = [p1 p1' p1 p1' p1 p1']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
 
%% 3º filtro
z1 = exp(1j*pi/8);
z2 = exp(1j*3*pi/8);
p1 = 0.99*exp(1j*pi/4);
p2 = 0.9*exp(1j*pi/4 - 1j*pi/30);
p3 = 0.9*exp(1j*pi/4 + 1j*pi/30);
Z = [1 -1 z1 z1' z2 z2']';
P = [p1 p1' p2 p2' p3 p3']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
  • Diferentes formas de realizar a filtragem de Sinais (
  • convolução (conv(x,h)),
  • filtragem no domínio do tempo (y = a1.x(n)+ a2.x(n-1)+ .. ak.x(n-k));
  • no domínio da frequência (y = ifft(fft(x)fft(h))
Variação do Experimento 3.1
%% Variação do Experimento 3.1 do livro:
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
% FILE: Ex3_1.m
% Exemplificando as possiveis formas de realizar a filtragem de um sinal x(n)

clc; clear all; close all;
%% Definindo valores iniciais
Nh = 10; Nx = 20;
%Nh = 400; Nx = 10000;
x = ones(1,Nx);
% A resposta ao inpulso de um sistema h(n) 
% no filtro FIR aos coeficientes b(n) = h(n) 
h = [1:Nh]; b = h;
%% Filtrando o sinal e medindo tempos

% Filtragem utilizando a convolução
% NOTE: length(y) = length(x) + length(h) -1
tic;  % iniciar a contagem do tempo
y1 = conv(x,h); 
t(1) = toc; % terminar acontagem e mostrar tempo no console

% filtragem utilizando a equação recursiva
% NOTE: length(y) = length(x)
tic;
y2 = filter(b,1,x);
t(2) = toc;

% filtragem utilizando a equação recursiva
% aumentando o tamanho de x para que length(y3) = length(y1)
x3 = [x zeros(1,length(h)-1)];
tic;
y3 = filter(h,1,x3); 
t(3) = toc;

length_y = length(x) + length(h) - 1;

% filtragem utilizando a FFT
% a y = IFFT(FFT(x)*FFT(h))
tic;
X = fft(x,length_y);
H = fft(h,length_y);
Y4 = X.*H;
y4 = ifft(Y4);
t(4) = toc;

% filtragem utilizando a função fftfilt
% a y = IFFT(FFT(x)*FFT(h))

tic
y5 = fftfilt(h,x3);
t(5) = toc;

disp('Comprimento do vetor de saída length(y)')
disp(['    ' num2str([length(y1) length(y2) length(y3) length(y4) length(y5)])])
disp('Tempo usado na filtragem em micro segundos')
disp(['    ' num2str(t*1e6) ' us'])

%%  Plotando o gráfico
subplot(411);stem(y1);
hold on;
stem(y2,'xr');
stem(y3,'+m');
legend('y1', 'y2', 'y3')
hold off
subplot(412);stem(y1, 'ob');legend('y1')
subplot(413);stem(y2, 'xr'); hold on; stem(zeros(size(y1)),'.w');hold off; legend('y2')
subplot(414);stem(y3, '+m');legend('y3')
  • Notar a diferença de tempo de processamento entre os processos de filtragem.
  • A situação pode ser muito diferente conforme muda o tamanho do sinal e ordem do filtro (h(n)).
Aula 6 (6 mar)
  • Exercício - Sinal DTMF com ruído
  • Verifique se o Matlab está reproduzindo corretamente o som.
%% Carregando o som
clear, close, clc
load handel;

%% Reproduzindo o som 
sound(y,Fs)
 
% Reproduzindo o som 
%soundsc(y,Fs)
 
% Reproduzindo o som 
%player = audioplayer(y, Fs);
%play(player);
  • Usando o Matlab (ou Audacity) para gerar um sinal DTMF correspondente a um número N e adicionar um ruido ao sinal. Opcionalmente utilize um sinal DTMF gravado
  • Utilizar uma frequência de amostragem de 8000Hz de fazer a duração do sinal igual a 2 segundos.
  • Para adicionar o ruído utilize a função y = awgn(x,snr), ou y = x + nivel*randn(n).
  • Observe este sinal no domínio do tempo (DT) e domínio da frequência (DF).
%% Carregando o som
clear, close, clc
[y,Fs] = audioread('DTMF_8kHz.ogg');

%% Reproduzindo o som 
sound(y,Fs)

%% Visualizando o som no DT
time = [0:length(y)-1]'/Fs;
plot(time',y'); xlabel('segundos');
xlim([0 time(end)]), ylim([-1 1]);

%% Visualizando o som no DF
Nfreq = length(y);
freq = linspace(0,2*pi,Nfreq)'*Fs/pi/2;
Y = fft(y,Nfreq)/Nfreq;
plot(freq,abs(Y)); xlabel('Hertz');
xlim([0 Fs/2]);
  • Utilizar no Audacity um sinal DTMF ("1234567890") com fa= 8kHz
  • Visualizar no domínio do tempo e frequência.
  • Realizar a filtragem passa-baixas com fc = 1066 Hz, (selecionar a maior atenuação permitida)
  • Realizar a filtragem passa-faixa com f0 = 770 Hz e B = 70Hz (selecionar a maior ordem permitida)
  • Repetir o procedimento anterior para um sinal de ruído branco.
  • Consulte a documentação do Matlab sobre
     fft, ifft, fftshift, randn
    
  • Consulte a documentação do Matlab sobre
     plot, grid, subplot, hold, xlabel, ylabel, title, legend, xlim, ylim, log10, log
    
  • Consulte a documentação do Matlab sobre text, zp2tf, tf2zp, fftfilt, awgn
  • Ver pag. 141 a 145 e 230 a 235 de [1]
Unidade 2

Unidade 2

Aula 7 a 9 (9, 13 e 16 mar)
  • Filtros Analógicos:
  • Função de transferência
  • Resposta em frequência: para obter a resposta em frequência é necessário avaliar
  • O projeto de filtros analógicos é realizado em 2 etapas:
  1. projeto de um filtro passa baixas (LP) protótipo normalizado com frequência de passagem
  2. transformação em frequência para o tipo de filtro (LP, HP, BP ou BS)
  • Análise básica de filtros analógicos com Matlab.
Dado um sistema linear invariante no tempo, representado pela função de transferência , obter a resposta de frequência do sistema (Magnitude e Fase).
b = [1 1];
a = [1 1 5];
[z1,p1,k]=tf2zp(b,a)
z2 = roots(b);
p2 = roots(a);
zplane(b,a);
%%
freqs(b,a);
%%
syms s  w
H(s) = (s+1)/(s^2 + s + 5);
pretty(H(1j*w))
latex(H(1j*w))
%%
ws = logspace(-2, 1, 1000);
h = H(1j*ws);
subplot(211)
semilogx(ws,abs(h)); grid on;
subplot(212)
semilogx(ws,angle(h)/pi*180); grid on;
  • Projeto de filtros analógicos do tipo Butterworth
  • A aproximação de magnitude de filtros analógicos pode ser realizado usando as aproximações de Butterworth, Chebyshev (tipo 1 ou 2) e Cauer.
  • Projeto de filtros analógicos do tipo Butterworth, considerando: é a frequência de passagem do filtro LP, é a atenuação em dB na frequência de passagem, é a frequência de stopband do filtro, é a atenuação em dB na frequência de stopband, , , são as frequências de passagem e stopband do filtro protótipo.
  • É necessário determinar a ordem do filtro:
  • Em seguida obter os polos do filtro:
  • Em seguida é necessário obter a função de transferência:
, onde
  • No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado
  • Projeto de filtros analógicos do tipo Butterworth, considerando: é a frequência de passagem do filtro LP, é a atenuação em dB na frequência de passagem, é a frequência de stopband do filtro, é a atenuação em dB na frequência de stopband, , , são as frequências de passagem e stopband do filtro protótipo.
  • É necessário determinar a ordem do filtro:
  • Em seguida obter os polos do filtro:
  • Em seguida é necessário obter a função de transferência:
, onde e .
  • No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado
  • Ver pag. 186 a 204 de [2]
%Butterworth lowpass Responses (db)
w = 0.1:0.01:10;
H=inline('10*log10(1./(1+w.^(2*n)))','w','n');
for k = 1:1:10
    semilogx(w,H(w,k)); hold on; 
end
grid on
 
%Butterworth lowpass Responses (linear)
w = 0.1:0.01:2;
H=inline('1./(1+w.^(2*n))','w','n');
for k = 1:1:10
    plot(w,H(w,k)); hold on; 
end
grid on
Aula 10 (20 mar)
  • Projeto de filtros analógicos do tipo Chebyshev I.
  • Determine a ordem mínima necessária considerando: é a frequência de passagem do filtro LP, é a atenuação em dB na frequência de passagem, é a frequência de stopband do filtro, é a atenuação em dB na frequência de stopband, , , são as frequências de passagem e stopband do filtro protótipo.
  • Em seguida obter os polos do filtro:
, onde
  • Exemplos de projeto de filtro passa-baixas com frequência de passagem de 16000 rad/s com atenuação máxima de 0.3 dB, frequência de rejeição de 20000 rad/s com atenuação mínima de 20 dB; e ganho em DC de 3 dB.
%% Projeto de filtro passa-baixas usando funções do Matlab  
%% Especificações do filtro 
Wp =16000; Ws = 20000; Ap = 0.3; As = 20; G0= 3;
% Para analisar o filtro projetado, use fvtool(b,a) para observar plano s, resposta em magnitude, fase e atraso de grupo
 
%% Butterworth
[n,Wn] = buttord(Wp, Ws, Ap, As,'s')
[b,a] = butter(n,Wn, 's');

%% Chebyshev I
n = cheb1ord(Wp, Ws, Ap, As,'s')
[b,a] = cheby1(n,Ap, Wp, 's');

%% Chebyshev II
n = cheb2ord(Wp, Ws, Ap, As,'s')
[b,a] = cheby2(n,As, Ws, 's');

%% Elliptic - Cauer
[n, Wn] = ellipord(Wp, Ws, Ap, As,'s')
[b,a] = ellip(n,Ap,As, Wn, 's');
  • Ver pag. 204 a 208 de [2]
Aula 11 (27 mar)
  • Filtros Analógicos:
  • Transformações de frequência de filtros analógicos
  • passa-baixas () -> passa-baixas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-altas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
  • passa-baixas () -> rejeita-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
  • Ver pag. 208 a 218 de [2]
Aula 12 (03 abr)
  • Exemplos de Filtros Analógicos:
  • Exemplo 1: Filtro passa-baixas ( = 941Hz, = 1209 Hz, = 1 dB, = 20 dB)
  • Exemplo 2: Filtro passa-altas ( = 1209 Hz, = 941Hz, = 1 dB, = 20 dB)
  • Exemplo 3: Filtro passa-faixa ( = 811 Hz, = 895,5 Hz = 770 Hz, = 941 Hz, = 1 dB, = 30 dB)
NOTA:
  • No calculo do filtro lembre-se de usar as frequências angulares para , , , .
  • onde () é a frequência de passagem em Hz (rad/s), () é a frequência de rejeição em Hz (rad/s), () é a frequência central em Hz (rad/s), () é a largura de banda em Hz (rad/s).
  • Confira os projetos dos filtros plotando as respostas em frequência dos filtros protótipo H(p) e filtro final H(s) de cada um dos exemplos.
Aula 13 e 14 (06 e 10 abr)
  • Filtros Digitais: Filtros IIR: transformações do tempo contínuo no tempo discreto
  • Transformação invariante ao impulso (pode ser usada apenas para filtros com forte atenuação em frequência altas, ex: passa-baixas e passa-faixa)
  • Transformação bilinear (pode ser usada para todos tipos de filtro)
  • Obter a especificação do filtro em angulo entre 0 e 1, onde 1 corresponde a metade da frequência de amostragem (fa/2)
  • Obter o valor desse angulo predistorcido para compensar a distorção na frequencia causada pela transformação bilinear.
Falhou ao verificar gramática (erro de sintaxe): {\displaystyle \lambda= 2 tan (\frac{\theta \pi}{2}) \} , onde Falhou ao verificar gramática (erro de sintaxe): {\displaystyle \theta = \frac{f}{fa/2} \}
  • passa-baixas () -> passa-baixas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-altas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
  • passa-baixas () -> rejeita-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
  • Ver pag. 219 a 229 de [2]
  • Ver pag. 403 a 415 e 434 a 435 de [1]
Aula 16 (14 Set)
  • Filtros Digitais: Filtros IIR: Uso do Matlab.
O projeto dos filtros digitais IIR baseados na transformada bilinear no Matlab é realizada em dois passos: (1) Determinação da ordem do filtro; (2) Determinação dos coeficientes do numerador e denominador de .
Unidade 3

Unidade 3

Aula 17 (17 abr)
  • Filtros Digitais: Filtros FIR
  • Filtros de fase linear: simétricos e antisimétricos (Tipo 1, 2, 3 e 4)
  • Filtros de fase linear: propriedades (respostas em frequência possíveis, distribuição dos zeros em simetria quadrantal)

Avaliações

  • Entrega dos diversas Atividades Extraclasse ao longo do semestre.
  • Entrega do Projeto Final. O projeto é avaliado nos quesitos:
1) Implementação do Sistema,
2) Documentação,
3) Avaliação Global do aluno no projeto.
  • Entrega dos Atividades Extraclasse ao longo do semestre AE1 a AE(N). A entrega, detalhes e prazos de cada AE serão indicados na plataforma Moodle
Atividades Relâmpago (prazo e forma de entrega ver na plataforma AVA)


AE1 - Projeto de Filtros Digitais IIR (Entrega e prazos ver Moodle)

Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais IIR: (a) projeto de um filtro protótipo analógico passa-baixas H(p); (b) transformação em frequência do filtro H(p) -> H(s), obtendo o filtro LP, HP, BP, BS, conforme o tipo de filtro desejado; (c) transformação do filtro analógico em filtro digital H(s) -> H(z) utilizando a transformação "Bilinear" ou pela transformação "Invariante ao Impulso". Nesta avaliação é solicitado que cada equipe realize o projeto de 4 filtros, e trabalhos individuais serão 3 filtros. Para todos os filtros considere como valores default fa = 8 kHz, Gp = 0 dB, Ap = 0.5 dB e As = 30 dB (exceto se indica outro valor na tabela abaixo. Os filtro BP deverão ter apenas o BP1 projetado conforme o procedimento completo, sendo que nos demais deverá ser aproveitado o filtro H(p) para obtê-los.

Equipe Filtro 1 Filtro 2 Filtro 3 Filtro 4
Equipe 1 LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, Butterworth) HP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, Chebychev 1) BP1 - (f1 = 627 Hz; f2 = 683 Hz, f3 = 711 Hz; f4 = 767 Hz, Elíptico ) BS1 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico )
Equipe 2 LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 25 dB, Chebychev 1) HP - (f1 = 950 Hz; f2 = 1300 Hz,, As = 25 dB, Butterworth) BP1 - (f1 = 847 Hz; f2 = 922 Hz, f3 = 960 Hz; f4 = 1035 Hz, Chebychev 2 ) BS1 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )
Equipe 3 LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 30 dB, Chebychev 1) HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 20 dB, Butterworth) BS1- (f1 = 767 Hz; f2 = 835 Hz, f3 = 869 Hz; f4 = 937 Hz, Elíptico ) BP1 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico )
Equipe 4 LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 25 dB, Butterworth) HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 35 dB, Chebychev 1) BP1 - (f1 = 1088 Hz; f2 = 1185 Hz, f3 = 1233 Hz; f4 = 1330 Hz, Chebychev 2 ) BS1 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )
Equipe 5 LP - (f1 = 850 Hz; f2 = 1200 Hz, As = 35 dB, Chebychev 1) HP - (f1 = 850 Hz; f2 = 1200 Hz, As = 25 dB, Butterworth) BP1 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico ) BS1 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico )
onde:
LP (Low Pass)- Passa Baixa, HP (High Pass)- Passa Altas, BP (Band Pass)- Passa Faixa, BS (Band Stop)- Rejeita Faixa
- são as "N" frequência de especificação do filtro dadas em Hertz (kHz ou MHz); f_a é a frequência de amostragem dos sinais e do sistema.
- frequência de passagem; - frequência de rejeição, - Atenuação máxima na banda de passagem (dB), - Atenuação mínima na banda de rejeição (dB), - Ganho médio na banda de passagem (dB).
  • Os filtros LP e HP devem ser realizados utilizando a aproximação de Butterworth ou Chebyshev tipo 1 (devendo ser todos os calculados efetuados a partir das equações), enquanto os filtros BP e BS devem ser realizados utilizando a aproximação de Chebyshev tipo 2 ou Euler (podendo ser calculada a função H(p) a partir das funções do Matlab.
  • A tabela acima indica o tipo de filtro que cada equipe deve utilizar.
  • Para ambos filtros deve indicada a ordem do filtro, o valor de polos e zeros, e as equações de H(p), H(s), H(z).
  • Deve ser apresentado de forma gráfica a resposta em frequência dos filtros (ganho em dB e fase) dos filtros (a) protótipo H(p), (b) Filtro analógico H(s) e Filtro digital H(z). Para mostrar que os filtros atendem a especificação utilize uma mascara com as especificações.
  • No caso do filtro H(z) também deve ser mostrado o atraso de grupo (ver função grpdelay do Matlab)
  • Apresente o diagrama dos pólos e zeros dos filtros H(p), H(s) e H(z)
  • Utilize a mesma escala em dB para os 3 gráficos de cada filtro. Nas abcissas utilize uma escala em Hz (kHz ou MHz). Utilize uma mascara com cor diferenciada para indicar claramente a especificação do filtro, e crie um segundo gráfico mostrando claramente a banda de passagem conforme ilustrado nas figuras abaixo:

Resposta em frequência - Ganho em dB Detalhe da banda de passagem da resposta em frequência - Ganho em dB

  • Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Não é necessário apresentar a teoria utilizado para o projeto, mas todos os cálculos e metodologia utilizada devem estar documentados.
  • Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma Moodle.

Referências Bibliográficas

  1. 1,0 1,1 1,2 1,3 DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235
  2. 2,0 2,1 2,2 2,3 SHENOI, B. A. Introduction to Digital Signal Processing and Filter Design. 1.ed. New Jersey: John Wiley-Interscience, 2006. 440 p. ISBN 978-0471464822


Curso de Engenharia de Telecomunicações