PSD29007-Engtelecom(2019-1) - Prof. Marcos Moecke

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Registro on-line das aulas

Unidade 1

Unidade 1

Aula 1 (13 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.
Aula 2 (15 fev)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
  • 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.
  • Leia sobre manchas solares para entender o que são os dados do segundo exemplo.
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.
Experimento 1.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 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')
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.


Aula 3 (20 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 4 (22 fev)
  • 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 5 (27 fev)
  • 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.
Sinal 1234567890*#
  • 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 6 (1 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.

TiposFiltrosHs.png

Proposta de exercício
  • Use os polinômios de Butterworth com ordens de 1 a 10 mostrados na tabela abaixo para obter os filtros .
n Fatores Polinomiais de
1
2
3
4
5
6
7
8
9
10
  • Escolha uma ordem n (entre 5 e 10)
  • Plote a resposta em frequência em escala log da amplitude (em dB) e da fase (em rad/pi).
  • Qual é o ganho do filtro na banda passante?
  • Qual é a frequência de corte (-3dB) do filtro.
  • Qual é o salto de de fase que ocorre em algumas frequências?
  • Qual é o fator de atenuação em dB/decada após a frequência de corte?
  • Faça o diagrama de polos e zeros desse filtro.
  • Procure observar o que ocorre com a posição dos polos do filtro.
  • Calcule o valor do módulo dos pólos.
Aula 7, 8 (8, 13 mar)
  • Projeto de filtros analógicos passa baixas (low pass - LP) do tipo Butterworth, considerando: é a frequência de passagem, é a atenuação em dB na frequência de passagem, é a frequência de stopband, é a atenuação em dB na frequência de stopband.

MascaraFiltroLP.png

  • Escalando as frequências em relação a , teremos que , e são as frequências de passagem e stopband do filtro protótipo , que tem ganho unitário e frequência de passagem 1.
  • Se considerarmos o caso particular em que na frequência de passagem o ganho (em escala linear) deve ser , que corresponde a um ganho (em escala log) , ou atenuação .
  • Considere que , teremos
  • Para projetar o filtro é necessário:
1) determinar a ordem do filtro:
2) obter os polos do filtro:
3) 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 fazendo a transformação de frequência


Para qualquer
  • Teremos
  • Para projetar o filtro é necessário:
1) determinar a ordem do filtro:
2) obter os polos do filtro:
3) obter a função de transferência:
, onde e .
NOTA: o valor também pode ser obtido a partir de , pois corresponde ao último termo do polinômio .
  • No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado fazendo a transformação de frequência


Aula 9 e 10 (15 e 20 mar)
  • Projeto de filtros analógicos do tipo Chebyshev I.
  • Polinômios de Chebyshev:

Os polinômios de Chebyshev de primeira ordem são definidos pela relação recursiva:

Os primeiros cinco polinômios de Chebyshev de primeira ordem são:

  • 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
  • Para obter a função de transferência:
, onde
onde
se n é par
se n é impar
é o último termo do denominador D(p)
  • Projeto de filtros analógicos do tipo Butterworth, Chebyshev I e II e Cauer (eliptico) usando funções do Matlab.
%% 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 a 13 (22,27, 29 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]
  • 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)
  • Exemplo 5: Filtro rejeita-faixa ( = 53 Hz, = 58 Hz, = 62 Hz = 67 Hz, = 2 dB, = 25 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 14 e 15 (3 e 5 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
  • Obter o valor desse angulo predistorcido para compensar a distorção na frequência causada pela transformação bilinear , onde
  • 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
  • Realizar os projetos dos exemplos anteriores, considerando uma frequencia de amostragem de 8 kHz.
  • Ver pag. 219 a 229 de [2]
  • Ver pag. 403 a 415 e 434 a 435 de [1]
Aula 16 (10 abr)
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 .
fa = 200;
fN = fa/2;
wo = 60/fN;  bw = 10/fN;
[b,a] = iirnotch(wo,bw);
fvtool(b,a);
syms z;
N(z) = poly2sym(b,z);
D(z) = poly2sym(a,z);
H(z) = N(z)/D(z);
pretty(vpa(H(z),3))
fa = 8000;
fN = fa/2;
wo = 941/fN;  bw = 100/fN;
[b,a] = iirpeak(wo,bw);
fvtool(b,a);
syms z;
N(z) = poly2sym(b,z);
D(z) = poly2sym(a,z);
H(z) = N(z)/D(z);
pretty(vpa(H(z),3))
fa = 8000; fN = fa/2;
fo = 1000;  bw = 20/fN;
[b,a] = iircomb(fa/fo,bw,'peak');  % ou use a flag 'notch'
fvtool(b,a);
syms z;
N(z) = poly2sym(b,z);
D(z) = poly2sym(a,z);
H(z) = N(z)/D(z);
pretty(vpa(H(z),3))
Unidade 3

Unidade 3

Aula 17 (12 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)
  • Observar as propriedades dos FIR tipo 1, 2, 3 e 4. Observe a resposta de frequência, fase, atraso de grupo, coeficientes e diagrama de polos e zeros dos filtros abaixo.
N = 10;
bi = 2*(rand(1,N)-0.5)
%% Tipo I - LP, HP, BS, BP
b = [bi (2*rand(1,1)-0.5) flip(bi)];
...
%% Tipo II - LP, BP
% tem um zero em -1 
b = [bi  flip(bi)];
...

%% Tipo III - BP
% tem um zero em 1  e -1 
b = [bi  0 -flip(bi)];
...

%% Tipo IV - BP, HP
% tem um zero em 1   
b = [bi  -flip(bi)];
...

FIR tipo1.png
Figura 1 - Propriedades do filtro FIR de fase linear (Tipo 1)

Aula 16 e 17 (19 e 24 abr)
  • Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS
  • Passa-baixas (Low-pass)
  • Passa-altas (High-pass)
  • Passa-faixa (Band-pass)
  • Rejeita-banda (Band-stop)
  • Janela retangular, fenômeno de Gibbs
  • Uso de funções de janelamento temporal no projeto de filtros digitais.
  • Tipos de janelas temporais usadas no projeto de filtros digitais.
  • Retangular
  • Bartlett
  • Hanning
  • Hamming
  • Blackman
  • em todas as janelas quando
onde é para par e para impar
ver também apodization function
L = 64; 
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
Tabela 5.1
Janela
Retangular 13.3 20.33 0.92/M
Triangular 26.6 27.41
Bartlett 26.5 27.48
Hann 31.5 44.03 3.11/M
Bartlett-Hanning 35.9 40.77
Hamming 42.5 54.08 3.32/M
Bohman 46.0 51.84 7.01/M
Parzen 53.1 56.89
Blackman 58.1 75.25 5.56/M
Flat Top 88.0 106.3
Blackman-Harris 92.1 108.8
Nutfall 93.8 109.7
  • Dados acima obtidos para um filtro passa baixas de ordem N = 64 com
  • Projeto de filtro FIR utilizando janelas temporais fixas.
  • Exemplo de projeto
Projetar um filtro passa baixas usando uma janela temporal fixa (verificar a janela que atende a especificação)
wp = 0.2*pi; Ap = 0.2 dB; Gp = 0 dB
ws = 0.3*pi; As = 60 dB;
  • Informar qual o tipo de janela, a ordem obtida, e o valor de wc do projeto final
  • Exemplo de projeto
Projetar um filtro LP usando uma janela temporal fixa (hamming, bartlett-hanning, hanning).
wp = 0.4*pi; Ap = 1 dB; Gp = 0 dB
ws = 0.6*pi; As = 40 dB;
  • Comparar os 3 tipos de janela, a ordem obtida, e o valor de wc em cada projeto.
Use como uma estimativa inicial os valores da Tabela 5.1 pag. 268.
  • PASSO 1 - Escolher o tipo de janela de acordo com a atenuação do lóbulo lateral Asl e As.
  • PASSO 2 - Estimar a ordem N1 do filtro considerando os parâmetros Dw
  • PASSO 3 - Calcule os coeficientes clp do filtro LP , calcule os valores da janela w e obtenha a resposta ao impulso do filtro h = clp * w.
  • PASSO 4 - Ajuste o ganho do filtro para que a resposta na banda de passagem fique abaixo da especificação maxima.
  • PASSO 5 - Verifique o valor real de Dwr = wAs-wAp, e faça a correção da ordem do filtro em função do desvio constatado. N2 = N*Dwr/Dw.
  • PASSO 6 - Corrija o valor de projeto dos coeficientes Clp do filtro ideal, a janela e a resposta ao impulso.
  • Repita o PASSO 3 até 6, até obter um filtro que atenda as especificações de Dw.
  • PASSO 7 - Desloque a frequência de corte wc de modo a obter o valor correto de wp. wc2 = wp + (wp-wAp).
  • Projeto de filtro FIR.
  • Projete os dois filtros projetados anteriormente como IIR, utilizando 3 janelas diferentes. Compare os filtros obtidos com os filtros IIR.
N = <ordem>
h_fir = fir1(N,Wn,hamming(N+1));
[Hw,w] =freqz(h_fir);
plot(w/pi,20*log10(abs(Hw)))
title(['hamming N = ' num2str(N)])
%fvtool(h_fir,1)
  • Ver pag. 256 a 265 de [2]
  • Ver artigos:


Aula 19 a 21 (23 abr a 03 mai)
  • Filtros Digitais: Filtros FIR
  • Projeto de filtro FIR utilizando janelas temporais ajustáveis
L = 64; 
r = 60;    % Chebyshev e Tukey
alpha = 3; % Gauss
betha = 8; % Kaiser
nbar = 10; % Taylor
wvtool(kaiser(L,betha), chebwin(L,r), gausswin(L,alpha),tukeywin(L,r), taylorwin(L,nbar,-r));

Para a janela de Kaiser, a estimação do fator e da ordem do filtro são obtidos por:

onde é a atenuação do lóbulo lateral e é a largura da banda de transição em rad/amostra.

A janela de Kaiser é definida por:

onde : é a função de Bessel de ordem zero [1]

Utilizando o Matlab é possível estimar esses valores utilizando a função kaiserord. Exemplo da obtenção de um filtro passa baixa com , , atenuação de 40 dB na "stopband"

fsamp = 8000;
fcuts = [1000 1500];
mags = [1 0];
devs = [0.01 0.01];
[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);

Com os parâmetros é possível projetar o filtro usando a função fir1, que utiliza o método da janela para o projeto do filtro.

h_fir = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
[Hw,w] =freqz(h_fir);
plot(w*fsamp/2/pi,20*log10(abs(Hw)))
title(['Kaiser filter N = ' num2str(n)])
%fvtool(h_fir,1)
  • Ver as funções fir1, kaiserord do Matlab.
  • Ver pag. 266 a 273 de [2]
  • Uso das funções window e fir1 do Matlab para projeto de filtro FIR

%% Exemplo de Filtro wp1 = 0.1 \pi; ws1 = 0.2 \pi; ws2 = 0.6 \pi; wp2 = 0.8 \pi; Ap = 1 dB; Ar = 40 dB; </syntaxhighlight>

Aula 22 (08 mai)
  • Filtros Digitais: Filtros FIR
  • Projeto de filtro FIR
  • projetar os filtros usando: 1) Janela fixa 2) Janela ajustável 3) Parks-McClellan.
  • garantir que o filtro seja de menor ordem em cada caso, mas que esteja dentro das especificações.
  • se necessário ajustar os valores de fs, fp, Ap, As, e a ordem do filtro, indicando o critério utilizado para o ajuste.


%% Projetar o filtro passa baixas 
fp = 1200 Hz;
fs = 1380 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
%% Projetar o filtro passa altas 
fs = 1200 Hz;
fp = 1380 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
Aula 23 (10 mai)
  • Projeto de filtro FIR
  • projetar os filtros usando: 1) Janela fixa 2) Janela ajustável 3) Parks-McClellan.
  • garantir que o filtro seja de menor ordem em cada caso, mas que esteja dentro das especificações.
  • se necessário ajustar os valores de fs, fp, Ap, As, e a ordem do filtro, indicando o critério utilizado para o ajuste.
%% Projetar o filtro passa faixa 
fs1 = 800 Hz;
fp1 = 900 Hz;
fp2 = 1000 Hz;
fs2 = 1300 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
%% Projetar o filtro rejeita faixa 
fp1 = 800 Hz;
fs1 = 900 Hz;
fs2 = 1000 Hz;
fp2 = 1300 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
Entrega do trabalho de projeto e análise de filtros digitais  (05 de junho de 2019, as 9:40)
Unidade 4

Unidade 4

Aula 24 (15 mai)
Paralisação pela Educação Pública Gratuita com Qualidade
Aula 25 (17 mai)
  • Realização de Filtros
  • Realização de filtros FIR: Forma Direta.
FIR FD MathWorks.png
Figura 1 - Realização de filtros FIR na Forma Direta
  • Realização de filtros FIR: Forma Transposta. A transposição consiste na inversão do fluxo de todos os sinais, substituição de nós de soma por derivações e as derivações por soma. A entrada e saída também devem ser invertidas. A realização da transposição não altera o sistema implementado.
FIR FDT MathWorks.png
Figura 2 - Realização de filtros FIR na Forma Transposta
FIR FDT2 MathWorks.png
Figura 3 - Realização de filtros FIR na Forma Transposta
  • Realização de filtros FIR de fase linear: simétrico tipo I e II e antissimétrico tipo III e IV.
FIR Sym2 MathWorks.png
Figura 4 - Realização de filtros FIR de fase linear Simétrico I
FIR Sym1 MathWorks.png
Figura 5 - Realização de filtros FIR de fase linear Simétrico II
FIR AntiSym3 MathWorks.png
Figura 6 - Realização de filtros FIR de fase linear Antisimétrico III
FIR AntiSym4 MathWorks.png
Figura 7 - Realização de filtros FIR de fase linear Antisimétrico IV
  • Realização de Filtros usando o comando realizemdl do MatLab
Fs = 30000;              % Sampling Frequency
Fpass = 12000;           % Passband Frequency
Fstop = 13000;           % Stopband Frequency
Dpass = 0.01;            % Passband Ripple
Dstop = 0.01;            % Stopband Attenuation
flag  = 'scale';         % Sampling Flag

% Calculate the order from the parameters using KAISERORD.
[N,Wn,BETA,TYPE] = kaiserord([Fpass Fstop]/(Fs/2), [1 0], [Dstop Dpass]);

% Calculate the coefficients using the FIR1 function.
b  = fir1(N, Wn, TYPE, kaiser(N+1, BETA), flag);

hFIR = dsp.FIRFilter;
hFIR.Numerator = b;

% Para definir diretamente os coeficientes
realizemdl(hFIR)

% Para definir os coeficientes através de uma matriz de entrada
realizemdl(hFIR,'MapCoeffsToPorts','on');
Aula 26 (22 mai)
  • Uso do Simulink
Aula 27 e 28 (24 e 29 mai)
  • Uso do Simulink
  • Uso do [4] para projeto de filtro IIR, FIR equiripple e FIR com janela.
  • Realizar a montagem do modelo indicado na figura abaixo e fazer a simulação, usar fa = 8000Hz.

SimulationFilterPSD1.png

DICAS:

  • Ative a visualização das dimensões das portas [Display > Signal & Ports > Signal Dimensions] ou [ALT]+D+S+D+[ENTER]
  • Ative a visualização do tipo de dados das portas [Display > Signal & Ports > Port Data Types] ou [ALT]+D+S+D+D+[ENTER]
  • Ative a visualização da cor para indicar os tempos de amostragem sinais [Display > Sample Time > Colors] ou [ALT]+D+T+C+[ENTER]
  • Fazer a análise no DT e DF para um ruido uniforme (-1 a 1)

DTnoiseFilterPSD1.png DFnoiseFilterPSD1.png

  • Fazer a análise no DT e DF para um sinal de chirp (0 a 4000Hz)

DTchirpFilterPSD1.png DFchirpFilterPSD1.png

Aula 29 (31 mai)
  • Diferença entre processamento por amostra e processamento por quadro (Sample- and Frame-Based Concepts).
  • Uso dos módulos buffer e unbuffer para converter entre fluxos de dados de diferentes taxas de frames, ou entre sample-based e frame-based.
  • Exemplos:

Para configurar o Simulink para sistemas discretos execute o comando dspstartup.m antes de abrir um novo modelo.

Aula 30 (5 jun)
  • Realização de filtros IIR de 2ª ordem: Forma Direta I e II, e Forma Transposta I e II.
  • Separando H(z) em dois blocos , e obtendo o sinal intermediário W(z) ou Y(z) dependendo da ordem dos blocos.
H1 H2 MathWorks.png
Figura 7 - Separação do filtro IIR H(z) em H1(z) e H2(z)
Com o ordenamento dos blocos e em ordem direta teremos a Forma Direta I:
Podemos obter a realização de na forma direta.
Para obter a realização de , é necessário reescrever a saída em função de e das saídas anteriores e :
IIR FD1 MathWorks.png
Figura 8 - Realização de filtros IIR na Forma Direta I
Com o ordenamento dos blocos e em ordem reversa teremos a Forma Direta II:
IIR FD2a MathWorks.png
Figura 9 - Realização de filtros IIR na Forma Direta II
Considerando que os sinais no centro são idênticos podemos simplificar e obter a Forma Direta II (Canônica):
IIR FD2b MathWorks.png
Figura 10 - Realização de filtros IIR na Forma Direta II Canônica
Considerando as regras de transposição podemos obter a forma transposta I e II. A transposição consiste na inversão do fluxo de todos os sinais, substituição de nós de soma por derivações e as derivações por soma. A entrada e saída também devem ser invertidas. A realização da transposição não altera o sistema implementado.
IIR FT1 MathWorks.png
Figura 11 - Realização de filtros IIR na Forma Transposta I
IIR FT2 MathWorks.png
Figura 12 - Realização de filtros IIR na Forma Transposta II
  • Realização de filtros IIR de ordem maior que 2: Forma Direta I e II, Transposta I e II, Cascata, Paralela
  • Os filtros IIR de ordem superior a 2 podem ser implementados nas FD I ou II e na FT I ou II. No entanto nessa configuração tendem a ficar instáveis ao terem os coeficientes quantizados, e também terem uma significativa alteração da resposta em frequência. Para reduzir esses problemas uma possível solução é a decomposição em filtros de 2ª ordem para serem associados na forma em Cascata ou Paralela.
Aula 31 (7 jun)
  • Filtros Digitais: Ferramentas do Matlab para projeto
  • Realização de filtros FIR: Cascata, Polifase
  • Vantagens do uso de filtro Polifase:
1) Quando o sinal será subamostrado (downsampling) de "D" amostras após a filtragem, a complexidade da implementação é reduzida de "D" vezes, pois apenas uma das "fases" precisa ser implementada.
2) Para reduzir o harware a ser implementado, é possível implementar apenas uma das "fases" do filtro e trocar "D" vezes os coeficientes.


Aula 32 (12 jun)
  • Filtros Digitais: Quantização
Ver Use Filter Designer with DSP System Toolbox Software
x=-0.2;
% Word length = 8, fraction length = 7
q=quantizer([8,7]);
xq=quantize(q,x);
binxq=num2bin(q,xq)
% Word length = 16, fraction length = 15
q1=quantizer([16 15]); 
xq1 = quantize(q1,x);
binxq1=num2bin(q1,xq1)
  • Sobre ponto flutuante [7]


Aula 33 (19 jun)
  • Utilizando um filtro projetado na AP1, faça a realização desse filtro quantizando-o com o menor número de bits, que preserve a especificação do mesmo. Se necessário o projeto inicial pode ser modificado inserindo ganhos de guarda na passagem, na rejeição, e também uma banda de guarda na especificação inicial das frequências de passagem e rejeição.
  • Verifique qual dos filtros IIR ou FIR resulta na menor área para a sua realização.
  • Considere que para o número de elementos lógicos utilizados para:
Multiplicador => M x 2 x B
Somador => S x B
Atrasos => A x B
onde M é o número de multiplicadores, S o número de somadores, A o número de atrasos e B o número de bits em ponto fixo (após a quantização)
  • Após a realização do filtro, exporte o modelo do filtro para o Simulink.
Unidade 5 - PROJETO FINAL

Unidade 5 - PROJETO FINAL

ATUAL

Aula 37 (28 jun)
  • Uso do HDL Coder
  • Exemplo simples.
  • Inicialmente construa a biblioteca de blocos suportados pelo HDLcoder
hdllib  Show Blocks Supported for HDL Code Generation
  • Construa o modelo mostrado na figura abaixo. (sugestão de frequência do sinal de 100Hz, e frequência de amostragem deve ser de 1000Hz)

Teste sin HDLcoder.png

  • coloque o modelo em um subsistema e conecte a saída a um Time Scope

Subsistema teste sin HDLcoder.png

  • Salve o modelo como teste_sin_HDLcoder, e em seguida faça o ajuste automático das configurações usando o comando.
hdlsetup('teste_sin_HDLcoder')
  • Execute o HDLcoder
  • Siga o fluxo do HDLcoder passo a passo e corrija eventuais problemas conforme indicado nas mensagens de ERRO.
  • Será necessário mudar o tipo de dado do bloco seno e constante para fix(16).
  • Após ter concluído com sucesso o fluxo de codificação HDL, vá até a pasta onde os arquivos VHDL foram gerados e observe que devem ser sido gerados os seguintes arquivos (Subsystem_tb_pkg.vhd Subsystem_tb.vhd Subsystem.vhd) na pasta
cd  hdl_prj/hdlsrc/teste_sin_HDLcoder
ls *.vhd

  • Use o ModelSim para compilar os arquivos e em seguida simular
vsim &
  • No ModelSim execute os seguintes arquivos .do:
Subsystem_compile.do
Subsystem_tb_compile.do
Subsystem_tb_sim.do
  • Observe que o sinal gerado pelo código VHDL é igual ao sinal calculado pelo Simulink.

Teste sin ModelSim.png

  • Observe que no arquivo de testbench, existe uma instrução de ASSERT conferindo se os dois sinais são iguais:
IF Out1_testFailure = '0' THEN
 ASSERT FALSE
 REPORT "**************TEST COMPLETED (PASSED)**************"
 SEVERITY NOTE;
ELSE
 ASSERT FALSE
 REPORT "**************TEST COMPLETED (FAILED)**************"
 SEVERITY NOTE;
END IF;
  • Exemplo mais complexo
  • Abra o modelo
sfir_fixed
  • ajuste as configurações
hdlsetup('sfir_fixed')


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
AP1 - Projeto de Filtros Digitais IIR e FIR (Entrega e prazos ver Moodle)

Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais IIR e FIR:

  • No caso dos filtros IIR, a metodologia envolve a realização de: (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".
  • No caso dos filtros FIR, são solicitadas três técnicas diferentes de projeto de filtro: (a) com janelas fixas, (b) com janela ajustáveis; (b) com o algoritmo de Parks-McCleallan (PM);
ESPECIFICAÇÕES
  • Nesta avaliação é solicitado que cada equipe projeto os mesmos filtros usando um modelo IIR e também FIR. Os detalhes de cada filtro são indicados na tabela abaixo. Para todos os filtros é importante considerar a frequência de amostragem do sinal a ser processado pelo filtro.
 Todas equipes tem filtros com As = 20, 30, 40, e Ap = 0.5, 1. 2
Equipe Filtro 1 Filtro 2 Filtro 3 Filtro 4
Equipe 1 (ALLEX e DOUGLAS) LP - (fa = 2000 Hz, f1 = 500 Hz; f2 = 800 Hz, Ap = 1 dB, As = 30 dB, GdB = 0 dB) HP - (fa = 2000 Hz, f1 = 500 Hz; f2 = 800 Hz, Ap = 2 dB, As = 20 dB, GdB = 10 dB) BP - (fa = 2000 Hz, f1 = 600 Hz; f2 = 750 Hz, f3 = 800 Hz; f4 = 950 Hz, Ap = 0.5 dB, As = 40 dB, GdB = 0 dB) BS - (fa = 4000 Hz, f1 = 1200 Hz; f2 = 1250 Hz, f3 = 1300 Hz; f4 = 1400 Hz, Ap = 0.5 dB, As = 60 dB, GdB = 0 dB)
Equipe 2 (AMELIZA e MARCONE) LP - (fa = 4000 Hz, f1 = 1000 Hz; f2 = 1300 Hz, Ap = 2 dB, As = 30 dB, GdB = 5 dB) HP - (fa = 4000 Hz, f1 = 1000 Hz; f2 = 1300 Hz, Ap = 0.5 dB, As = 40 dB, GdB = 0 dB) BP - (fa = 4000 Hz, f1 = 1000 Hz; f2 = 1200 Hz, f3 = 1250 Hz; f4 = 1300 Hz, Ap = 1 dB, As = 20 dB, GdB = 0 dB) BS - (fa = 6000 Hz, f1 = 1200 Hz; f2 = 1250 Hz, f3 = 1300 Hz; f4 = 1400 Hz, Ap = 0.5 dB, As = 60 dB, GdB = 0 dB)
Equipe 3 (ANDREY e VINICIUS) LP - (fa = 10000 Hz, f1 = 2800 Hz; f2 = 3200 Hz, Ap = 1 dB, As = 40 dB, GdB = 0 dB) HP - (fa = 10000 Hz, f1 = 2800 Hz; f2 = 3200 Hz, Ap = 0.5 dB, As = 20 dB, GdB = 0 dB) BP - (fa = 10000 Hz, f1 = 3000 Hz; f2 = 3200 Hz, f3 = 3400 Hz; f4 = 3500 Hz, Ap = 2 dB, As = 30 dB, GdB = -10 dB) BS - (fa = 8000 Hz, f1 = 1200 Hz; f2 = 1250 Hz, f3 = 1300 Hz; f4 = 1400 Hz, Ap = 0.5 dB, As = 60 dB, GdB = 0 dB)
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);
- 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).

Alguns detalhes sobre o projeto dos filtros para cada equipe.

Equipe Filtro 1 Filtro 2 Filtro 3 Filtro 4
Equipe 1 IIR - Chebyshev I, FIR - Janela Fixa IIR - Butterworth, FIR - Janela Ajustável IIR - Eliptico, FIR - PM IIR - Chebyshev II, FIR - PM
Equipe 2 IIR - Butterworth, FIR - Janela Ajustável IIR - Chebyshev II, FIR - Janela Fixa IIR - Eliptico, FIR - PM IIR - Chebyshev I, FIR - PM
Equipe 3 IIR - Eliptico, FIR - Janela Fixa IIR - Butterworth, FIR - Janela Ajustável IIR - Chebyshev II, FIR - PM IIR - Chebyshev I, FIR - PM
  • Os filtros IIR do tipo Butterworth devem ser todos os calculados efetuados a partir das equações, enquanto os demais filtros IIR podem ser projetados obtendo a função H(p) diretamente com funções do Matlab.
  • O filtro FIR de janela fixa ou ajustável podem ter a janela calculada diretamente usando funções do Matlab. Nos dois casos é necessário calcular os valores dos coeficientes da série de Fourier.
  • No caso das janelas fixas, utilize a janela mais adequada para a especificação do filtro (que resulta na menor ordem).
  • No caso das janelas ajustáveis, podem ser utilizadas kaiser, chebyshev, gauss, tukey, ou taylor.
  • O filtro FIR BP deve ser projetado usando o algoritmo de Parks-McCleallan.
  • Em todos os filtros busque obter a menor ordem que possibilite ter uma resposta de frequência que atende a sua especificação.
  • Se achar necessário utilize o FVTOOL e o FDAtool para a análise dos filtros.
ENTREGAS
  • Deverá ser feita um quadro comparativo dos filtros FIR x IIR indicando no mínimo a ordem dos filtros.
  • A resposta em frequência dos filtros IIR e FIR do mesmo tipo (ganho em dB e fase) deverá ser mostrada em um mesmo gráfico.
  • 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

  • Também deverá ser mostrado o atraso de grupo dos filtros (ver função grpdelay do Matlab)
  • O diagrama dos pólos e zeros dos filtros
  • Utilize escala em dB para as respostas em frequência.
  • Tanto no resposta em frequência como no atraso de grupo use nas abcissas utilize uma escala em Hz (kHz ou MHz) adequada ao seu caso.
  • 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.
  • Compare os vários aspectos diferentes dos filtros e faça uma análise sobre as diferenças entre os IIR e FIR.
  • Envie o relatório em pdf e os arquivos ".m" usando a 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 2,4 2,5 2,6 2,7 2,8 SHENOI, B. A. Introduction to Digital Signal Processing and Filter Design. 1.ed. New Jersey: John Wiley-Interscience, 2006. 440 p. ISBN 978-0471464822
  3. LATHI, Bhagwandas P. Sinais e Sistemas Lineares. 2. ed. Porto Alegre: Artmed-Bookman, 2007. 856 p. ISBN 978-8560031139


Curso de Engenharia de Telecomunicações