A versão imprimível não é mais suportada e pode ter erros de renderização. Atualize os favoritos do seu navegador e use a função de impressão padrão do navegador.
Registro on-line das aulas
Unidade 1
- Aula 1 (6 fev)
- Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Variação do Experimento 1.2
|
%% Experimento 1.2
fs = 10; Ts = 1/fs; fase = 0;
time = 0:Ts:(1-Ts);
f1 = 3; f2 = 7;
s_1 = cos(2*pi*f1*time+fase);
s_2 = cos(2*pi*f2*time+fase);
fsa = 1000; 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')
Varie o valor da frequência de amostragem de 6 até 20 Hz e observe:
- Em qual frequência deixa de ocorrer recobrimento do sinal 2.
- O que ocorre quando a frequência é 6, 7, 14 Hz? Explique
- Qual deveria ser a frequência do sinal f_2 para que as amostras tomadas sejam coincidentes como o sinal f_1 para uma frequência de amostragem f_s? Reescreva a equação e verifique no Matlab.
|
- Aula 2 (10 fev)
- Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Variação do Experimento 2.2
|
%% 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')
- Verifique a diferença entre os tipos de plots comentados no código.
- substitua o denominador de H(z) por dois polos em [-0.8 -0.8].
- verifique o que ocorre se forem utilizados polos complexos conjugados [0.3-0.4i 0.3+0.4i 0.1]
- verifique o que ocorre se forem utilizados polos complexos não conjugados [0.3-0.4i 0.3+0.8i]
- verifique o que ocorre se os polos estiverem fora do circulo unitário [1.2 -0.2]. Interprete este resultado
|
- Aula 3 (13 fev)
- Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Unidade 2
- Aula 4 (20 fev)
- Filtros Digitais: Filtros IIR:
- Aproximação de magnitude de filtros analógicos: do tipo Butterworth.
- Ver pag. 186 a 193 de [2]
- Aula 5 (24 fev)
- Filtros Digitais: Filtros IIR:
- Projeto de filtros analógicos passa-baixas: do tipo Butterworth.
- Ver pag. 194 a 204 de [2]
- Aula 6 (27 fev)
- Filtros Digitais: Filtros IIR:
- Projeto de filtros analógicos passa-baixas: do tipo Chebyshev I.
- Ver pag. 204 a 208 de [2]
- Aula 7 (3 mar)
- Filtros Digitais: Filtros IIR:
-
- Funçãos para projeto do filtro final (analógico com 's'): besself, butter, cheby1, cheby2, ellip
- Funções de estimação da ordem do filtro: buttord, cheb1ord, cheb2ord, ellipord
- Funções para projeto do filtro protótipo analógico passa-baixas: besselap, buttap, cheb1ap, cheb2ap, ellipap
- Funções de transformação de frequencia: lp2bp, lp2bs, lp2hp, lp2lp
- Transformação de frequência de filtros analógicos
- (passa-baixas -> passa-baixas, passa-baixas -> passa-altas, passa-baixas -> passa-faixa, passa-baixas -> rejeita-faixa)
- Ver pag. 208 a 218 de [2]
- Aula 8 (6 mar)
- Filtros Digitais: Filtros IIR: transformações do tempo contínuo no tempo discreto
- Transformação invariante ao impulso (apenas para filtros com forte atenuação em frequência altas, ex: passa-baixas e passa-faixa)
- Transformação bilinear (para todos tipos de filtro)
- Ver em IIR Filter Design,
- Filter discretization functions: bilinear, impinvar
- Ver pag. 219 a 229 de [2]
- Ver pag. 403 a 415 e 434 a 435 de [1]
Unidade 3
- Aula 9 (10/mar)
- Filtros Digitais: Filtros FIR
- Filtros de fase linear: simétricos e antisimétricos
- Ver pag. 249 a 256de [2]
- Aula 10 (13/mar)
- Filtros Digitais: Filtros FIR
- Filtros de fase linear: propriedades
- Ver pag. 256 a 260 de [2]
- Aula 11 (17/mar)
- Filtros Digitais: Filtros FIR
- Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS
-
- Rejeita-banda (Band-stop)
- Janela retangular, fenômeno de Gibbs
- Aula 12 (18/mar)
- Filtros Digitais: Filtros FIR
- Uso de funções de janelamento temporal no projeto de filtros digitais.
- Tipos de janelas temporais usadas no projeto de filtros digitais.
-
-
-
-
-
L = 64;
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
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));
- Ver pag. 266 a 273 de [2]
- Aula 13 (24/mar)
- Filtros Digitais: Filtros FIR
- Projeto de filtro com splines.
- Passa-baixas (Low-pass)
- Aula 14 (25/mar)
- Filtros Digitais: Filtros FIR
- Filtro Equiripple com fase linear (Parks and McClellan)
- Uso das funções do Matlab para projeto de filtro equiripple firpmord e firpm.
- Projetar os seguintes filtros (frequencias em rad/s e rejeição em dB)
- Passa-faixa: wr1 = 0.2, wp1 = 0.4, wp2 = 0.6, wr2 = 0.75, rr = 40, rp = 0.2.
- Passa-faixa: wr1 = 0.2, wp1 = 0.4, wp2 = 0.6, wr2 = 0.7, rr = 40, rp = 0.2.
- Passa-baixas: wp = 0.4, wr = 0.7, rr = 40, rp = 0.2.
- Passa-altas: wp = 0.7, wr = 0.4, rr = 40, rp = 0.2.
- Estudar Practical Introduction to Digital Filter Design, Using FDATool
- Aula 15 (30/mar)
- Filtros Digitais: Filtros FIR
- Aula Prática: Uso do Fdatool para projeto de filtro IIR, FIR equiripple e FIR com janela.
Unidade 4
- Aula 16 (1/04)
- Aula 17 (7/04)
- Realização de Filtros IIR
- Bloco de IIR de 2ª ordem.
- Separando H(z) em dois blocos , e obtendo o sinal intermediário W(z)
- 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 :
- Com o ordenamento dos blocos e em ordem direta teremos a Forma Direta I:
- Com o ordenamento dos blocos e em ordem reversa teremos a Forma Direta II (Canônica):
- Realização de filtros IIR: Forma Direta I e II, Transposta, Cascata, Paralela
- Ver funções do Matlab: roots, poly, residuez, tf2zp, zp2tf, zp2sos, tf2sos, tf2latc.
- Implementar o exercício 6.3: Forma direta I, Forma direta II, Cascata.
- Implementar o exercício 6.13: Forma direta I, Cascata e Paralela.
- Ver pag. 313 a de 353 [2].
- Ver pag. 469 a 474 do Lathi [3]
- Aula 18 (08/04)
- Aula 19 (14/04)
- Aula 20 (15/04)
- Aula 21 (22/04)
- Projeto e realização de Filtros IIR x FIR
- Ver AE5 (Prazo de entrega 11/05/2015)
- Aula 22 (28 abr)
- Projeto de Filtros IIR x FIR
- Ver Atividade AE5.
- Aula 23 (29 abr)
- Atraso de grupo em filtros IIR e FIR no Matlab.
- Filtro com fase nula
- Aula 24 (5 mai)
- Projeto de filtros Passa-Tudo para equalizar a fase (atraso de grupo) de filtros IIR.
- Projetar filtros Passa-tudo que equalizam a fase na faixa de passagem do filtro
- Ver funções isallpass, iirgrpdelay, conv.
- Estudar os quatro exemplos de [1] pag.2-56 a 2-63.
- Obter o filtro cascata através da multiplicação dos polinômios do numerador e denominador.
- Ler: Lang, M.; Laakso, T.I., "Simple and robust method for the design of allpass filters using least-squares phase error criterion," Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on , vol.41, no.1, pp.40,48, Jan 1994
- Aula 25(6 mai)
- Filtros de fase mínima, fase máxima e mistos.
- Aula 26(12 mai)
-
- Implementação de um filtro equalizador do atraso de grupo para o projeto AE-5
Unidade 5
- Aula 27(13 mai)
-
- Aula 28(19 mai)
-
-
-
- Introduction: What Is Simulink? 4:42
- Constructing and Running a Simple Model 13:45
- Simulating a Model 10:10
- Working with MATLAB 9:12
- Creating Subsystems 6:46
- Aula 29, 30 (20 e 26 mai)
-
-
-
- Modeling Discrete Dynamical Systems 19:35
- Use Signal Processing Blockset 12:01
- dspstartup.m command
- Working with Signals in Simulink 9:59
- Aula 31 (27 mai)
-
- Visita aos equipamento da RNP na UFSC -> prof Sandro Lima.
- Aula 32 (2 jun)
-
-
-
- Applying a Filter 9:04
- Designing and Implementing a Filter 10:23
- Aula 33 (3 jun)
-
- Exemplos de uso do Simulink:
- Cancelamento de Ruido usando Filtragem adaptativa LMS.
SP_adaptiveFilt
- Remoção dos Lyrics de um arquivo de música com voz centrada em canal estéreo.
SP_lyricRemoval
- Conversão da taxa de amostragem de um sinal de audio.
dspaudiosrc
- Realizar Atividade de Avaliação AE7.
- Aula 34 e 35 (9 e 10 jun)
-
a = fi(-1, true, 8, 0)
a.bin
a = fi(-128, true, 8, 0)
a.bin
a = fi(127, true, 8, 0)
a.bin
- Ver também a função resize da ieee.numeric_std library.
function RESIZE (ARG: SIGNED; NEW_SIZE: NATURAL) return SIGNED;
-- Result: Resizes the SIGNED vector ARG to the specified size.
-- To create a larger vector, the new [leftmost] bit positions
-- are filled with the sign bit (ARG'LEFT). When truncating,
-- the sign bit is retained along with the rightmost part.
function RESIZE (ARG: UNSIGNED; NEW_SIZE: NATURAL) return UNSIGNED;
-- Result: Resizes the SIGNED vector ARG to the specified size.
-- To create a larger vector, the new [leftmost] bit positions
-- are filled with '0'. When truncating, the leftmost bits
-- are dropped.
- Aula 36 (16 jun)
-
- Simulação do projeto da aula anterior no ModelSim-ALTERA.
Procedimentos para a Simulação
|
Abra o ModelSim:
/opt/altera/13.0sp1/modelsim_ase/bin/vsim &
Troque a pasta de trabalho para a pasta onde o Matlab gerou os arquivos .vhd e .do [File > Change Directory] ou digite na janela tcl:
cd /tmp/mlhdlc_sfir/codegen/mlhdlc_sfir/hdlsrc
Execute o arquivo
do mlhdlc_sfir_fixpt_tb_compile.do
Edite o arquivo mlhdlc_sfir_fixpt_tb_sim.do, comentando as linhas que forçam a saida do Modelsim. Estas linhas foram criadas para a integração direta com o Matlab, mas ela não funciona com a versão do ModelSim que temos disponível.
edit mlhdlc_sfir_fixpt_tb_sim.do
#onerror {quit -f}
#onbreak {quit -f}
...
#quit -f
Agora execute o arquivo mlhdlc_sfir_fixpt_tb_sim.do, o qual irá adicionar os sinais a serem analisados na janela Wave e executará todos os comandos vhdl do arquivo *_tb.vhdl gerado pelo Matlab.
do mlhdlc_sfir_fixpt_tb_sim.do
Ao tinal da simulação a janela Transcript indicará se o teste passou:
# ** Note: **************TEST COMPLETED (PASSED)**************
# Time: 20030 ns Iteration: 1 Instance: /mlhdlc_sfir_fixpt_tb
ou se falhou:
# ** Note: **************TEST COMPLETED (FAILED)**************
# Time: 20030 ns Iteration: 1 Instance: /mlhdlc_sfir_fixpt_tb
Note ainda que os sinais de entrada (x_in), os sinais de saída (y_out e delayed_xout) e os dois sinais de referência gerados na simulação com o Matlab (y_out_ref e delayed_xout_ref) são mostrados como sequências de bits. Para melhorar a visualização mude o Formato desses sinais para analógico [Clique Direito do Mouse> Format > Analog (automatic)].
|
Problemas na integração Matlab - Modelsim
|
- Foram criados os seguintes arquivos em /usr/local/bin
sudo gedit quartus
- !/bin/bash
VERSAO="13.0sp1"
cd /opt/altera/${VERSAO}/quartus/bin
exec ./quartus
</syntaxhighlight>
sudo chmod +x quartus
sudo gedit quartus_sh
- !/bin/bash
VERSAO="13.0sp1"
cd /opt/altera/${VERSAO}/quartus/bin
exec ./quartus_sh
</syntaxhighlight>
sudo chmod +x quartus_h
sudo gedit vsim
- !/bin/bash
VERSAO="13.0sp1"
cd /opt/altera/${VERSAO}/modelsim_ase/bin
exec ./vsim
</syntaxhighlight>
sudo chmod +x vsim
- Porque o Matlab/Simulink não funcionam com o ModelSim-Altera?
- Launching ModelSim for cosimulation
Error using hdlsim/l_GetModelSimLibInfo (line 525)
Could not find ModelSim executable vsim. Make sure that ModelSim Linux 64-bit version is installed on this machine and its
executables are on the system path.
</syntaxhighlight>
- Resposta em: http://www.mathworks.com/help/releases/R2015a/hdlverifier/gs/supported-eda-tools.html.
- Solução: Instalar ModelSim SE 10.1c nas maquinas.
- Novo problema: O Software ModelSim SE é pago e não tem disponível para LINUX
|
-
- Simulink® Getting Started Guide.
- HDL Coder™ Getting Started Guide.
- Consultar outros documentos sobre o Simulink no site da Mathworks.
Unidade 6
- Aula 37 a 40 (17/06 a 30/06)
- Implementação de filtros em VHDL usando o HDL Coder para projeto e Modelsim para Simulação
- Os alunos trabalharam de forma individual na realização e implentação do filtro projeto anteriormente na atividade AE5.
- Ao final do projeto cada aluno deve apresentar:
- o arquivo de projeto do HDL Coder com os códigos ".m";
- o arquivos em VHDL do filtro e seu testbench;
- o arquivo ".do" para a simulação com Modelsim;
- um artigo técnico completando o artigo iniciado no item AE5.
Avaliações
- Entrega dos diversos trabalhos ao longo do semestre AE1 a AE4.
- Entrega do artigo sobre a atividade AE5 (27%)
- Projeto Final. O projeto é avaliado nos quesitos: 1) Implementação do Sistema, 2) Documentação, 3) Avaliação Global do aluno no projeto. (40% do conceito)
PARA ENTREGAR
JÁ ENCERRADAS
AE1 - Experimento 3.2 (Prazo de entrega 23/02/2015)
|
- Escreva um script com funções do Matlab para gerar as representações no domínio do tempo sinais da Figura 3.26 [1]. Use o subplot para inserir todas os sinais em uma única Figure do Matlab.
- Escreva um script com funções do Matlab para gerar as representações no domínio da frequência sinais da Figura 3.27 [1]. Use o subplot para inserir todas os sinais em uma única Figure do Matlab.
- Faça uma estimação melhor do espectro do sinal, segmentando o sinal x(n) e calculando a média dos espectros obtidos.
- É importante utilizar as escalas e legendas corretamente nos gráficos.
- Ver as funções do matlab legend, title, xlabel, ylabel.
- Escreva um pequeno relatório técnico mostrando os resultados obtidos e documentando o código escrito. Enviar para o meu email em formato pdf.
|
AE2 - Projeto de Filtro Analógicos (Prazo de entrega 09/03/2015)
|
- Projeto os seguintes filtros analógicos passa baixas que atenda as seguintes especificações (as atenuações são relativos ao ganho em f = 0 Hz):
- a) Frequência de passband f_p = 16 kHz. Frequência de rejeição (stopband) f_s = 60 kHz. Ganho de 10 dB em f = 0 Hz, atenuação de 3 dB em f_p e atenuação mínima de 35 dB em f_s, do tipo Butterworth.
- b) Frequência de passband f_p = 16 kHz. Frequência de rejeição (stopband) f_s = 60 kHz. Ganho de 10 dB em f = 0 Hz, atenuação de 0.25 dB em f_p e atenuação mínima de 35 dB em f_s, do tipo Butterworth
- c) Frequência de passband f_p = 16 kHz. Frequência de rejeição (stopband) f_s = 60 kHz. Ganho de 10 dB em f = 0 Hz, atenuação de 0.25 dB em f_p e atenuação mínima de 35 dB em f_s, do tipo Chebyshev I
- d) Frequência de passband f_p = 16 kHz. Frequência de rejeição (stopband) f_s = 60 kHz. Ganho de 10 dB em f = 0 Hz, atenuação de 0.25 dB em f_p e atenuação mínima de 35 dB em f_s, do tipo Chebyshev II
- O projeto de cada filtro deve apresentar o cálculo da ordem do filtro, dos polos do filtro, a equação de H(p), H(s), |H(jw)|^2, o ganho na frequência de rejeição (stopband) f_s.
- A resposta em frequência normalizada e real devem ser feitas usando o Matlab. Apresentar o gráfico do ganho em dB e da fase em cada caso com escalas corretas.
- Deve ser apresentado o diagrama dos pólos do filtro H(p) e H(s).
- Para fins de comparação dos filtros, os filtros de diferentes tipos devem ser sobrepostos nesses gráficos.
- Escreva um pequeno relatório técnico mostrando os resultados obtidos e documentando o código escrito. Enviar para o meu email em formato pdf com o Assunto: PSD29007 - Projeto de Filtro Butterworth.
|
AE3 - Projeto de Filtro Digitais IIR (Prazo de entrega 23/03/2015)
|
%% Variação do Experimento 6.1 - DINIZ
% Parâmetros do filtro digital passa-faixa
Ap = 0.5; % Atenuação máxima na banda de passagem
Ar = 65; % Atenuação mínima na banda de rejeição
Ws = 10000; Fs = Ws/(2*pi); Ts = 1/Fs; % Frequência de amostragem (Ws -> rad/s e Fs -> Hz), e período de amostragem
wr1 = 850; wr2 = 1150; % Frequências de rejeição (rad/s) normalizada em relação a Ws/2
wp1 = 980; wp2 =1020; % Frequências de passagem (rad/s) normalizada em relação a Ws/2
% Cálculo do filtro digital passa-faixa usando transformação bilinear
wnr1 = wr1/(Ws/2); wnr2 = wr2/(Ws/2); wr =[wnr1 wnr2];
wnp1 = wp1/(Ws/2); wnp2 =1020/(Ws/2); wp = [wnp1 wnp2];
[n wn] = ellipord(wp, wr, Ap, Ar);
[b a] = ellip(n,Ap,Ar,wp);
[H, w] = freqz(b,a,10000);
fi = 0; ff = Ws/2; % fi = 850*0.95; ff = 1150*1.05;
subplot(311); plot(w*Fs,abs(H)); grid on; xlim([fi,ff]);
subplot(312); plot(w*Fs,angle(H)); grid on; xlim([fi,ff]);
[gd,w] = grpdelay([b a], 10000);
subplot(313); plot(w*Fs,gd); grid on; xlim([fi,ff]);
figure; zplane([b,a]);
%% Análise do filtro usando um cosenso puro
t = 0:Ts:(1-Ts);
ti =0; tf= 1; % ti=0.5; tf=0.6;
w1 = 800;
x1 = cos(w1*t);
y1 = filter(b,a,x1);
figure; plot(t,x1,'k',t,y1,'b'); ylim([-1.5 1.5]), xlim([ti tf]);
- 1. Varie o valor da frequência do sinal x1 no mínimo entre 800 rad/s e 1300 rad/s e observe o ganho, a defasagem e o atraso de grupo. (DICA use o incremento de valores em seções de código do Matlab)
- O que é possível observar observando a escala de tempo de [0:1]? Explique
- O que muda se observarmos um segmento menor de tempo [0.5 a 0.6]? Explique
- 2. Projete um filtro para as mesmas especificações usando uma das seguintes aproximações (Butterworth, Chebyshev I, Chebyshev II).
- Como ficou a ordem dos filtros?
- Como ficou a resposta de ganho, fase e o atraso de grupo?
- Leia sobre o filtro Bessel e depois faça um filtro e analise o resultado. Qual foi a principal diferença? (opcional)
- 3. Escolha o tipo de aproximação que preferir e projete um filtro passa-baixas nas frequências wp2 =1020 rad/s e wr2 = 1150 rad/s. Analise o filtro obtido.
- 4. Escolha o tipo de aproximação que preferir e projete um filtro passa-altas nas frequências wp1 = 980 rad/s e wr1 = 850 rad/s. Analise o filtro obtido.
- 5. Escolha o tipo de aproximação que preferir e projete um filtro rejeita-faixa wp1 = 850 rad/s; wr1 = 980 rad/s; wr2 = 1020 rad/s ; wp2 = 1150 rad/s. Analise o filtro obtido.
- 6. Escreva um relatório técnico mostrando os resultados obtidos e documentando o código escrito. Enviar para o meu email em formato pdf com o Assunto: PSD29007 - Projeto de Filtro Digital IIR. Não é necessário fazer a revisão teórico do assunto (visto em aula). Foquem apenas na descrição dos filtros projetados, nos resultados e sua análise. Cada figura/gráfico deve ter uma legenda e ser mencionado no texto.
|
AE4 - Projeto de Filtro Digitais FIR - parte 1 (Prazo de entrega 30/03/2015)
|
- 1. Projeto um filtro FIR com fase linear com ordem de 7 com as características abaixo:
Aluno
|
Tipo de filtro
|
Especificações
|
DANILO BEDAQUE |
Passa-altas |
wp = 0,8
|
ELTON FERREIRA BROERING |
Passa-faixa |
wp1 = 0,3; wp2 = 0,5
|
ERNANI RODRIGUES DE S.THIAGO |
Passa-faixa |
wp1 = 0,1; wp2 = 0,2
|
JEAN MICHEL DE SOUZA SANT ANA |
Passa-altas |
wp = 0,4
|
LEONAN DA SILVA SARAIVA |
Passa-baixas |
wp = 0,2
|
THIAGO HENRIQUE BONOTTO DA SILVA |
Passa-baixas |
wp = 0,4
|
THIAGO WERNER |
Rejeita-faixa |
wp1 = 0,2; wp2 = 0,3
|
- 2. Projete o filtro usando as janelas do tipo Retangular, Hanning, Hamming e Blackmann.
- O cálculo dos coeficientes da série de Fourier e amostras da janela e os coeficientes do filtro devem ser feitas de modo explicito, indicando as equações utilizadas.
- 3. Projete o filtro usando outras 2 janelas a sua livre escolha entre as implementadas por funções do Matlab.
- Neste caso utilize a função adequada do Matlab para o cálculo das amostras da janela.
- 4. Apresente de modo gráfico o diagrama de zeros do filtro, a resposta em frequência do filtro (ganho), atraso de grupo e a resposta ao impulso do filtro.
- Os ganhos devem ser apresentados em um gráfico único para permitir a comparação.
- 5. Realize a medida em dB da atenuação na frequências de passagem, o valor do ripple (ondulação) máximo na banda de passagem, a atenuação do primeiro lóbulo lateral e a frequência na qual o filtro atinge pela primeira vez essa mesma atenuação.
- 6. Escreva um relatório técnico mostrando os resultados obtidos e documentando o código escrito. Enviar para o meu email em formato pdf com o Assunto: PSD29007 - Projeto de Filtro Digital FIR - parte 1. Não é necessário fazer a revisão teórico do assunto (visto em aula). Foquem apenas na descrição dos filtros projetados, nos resultados e sua análise. Cada figura/gráfico deve ter uma legenda e ser mencionado no texto.
|
AE5 - Projeto de Filtro Digitais FIR x IIR (Prazo de entrega 15/05/2015)
|
- 1. Objetivo projetar filtros que tem a a mesma especificação de magnitude usando diferentes tipos de filtro digital, sendo um do tipo IIR e outro do tipo FIR. Estabelecer uma comparação entre esses filtros e escrever um artigo mostrando as vantagens do filtro escolhido sobre o outro.
- 2. É permitido (incentivado) o uso de ferramentas como o FDAtool para o projeto do filtro.
- 3. Cada aluno deverá realizar o projeto de um filtro (LP ou HP) e um filtro (BP ou BS), com as especificações abaixo:
Aluno
|
Especificações do filtro 1
|
Especificações do filtro 2
|
DANILO BEDAQUE
|
LP; fs = 100kHz; fp = 20kHz; fr = 28kHz; Ap = 0.5 dB; Ar = 60 dB; H = 0 dB
|
BP; fs = 44kHz; fr1 = 8kHz; fp1 = 12kHz; fp2 = 15kHz; fr2 = 18kHz; Ar1 = 50; Ap = 1.5 dB; Ar2 = 70 dB; H = +10 dB
|
ELTON FERREIRA BROERING
|
HP; fs = 100kHz; fp = 40kHz; fr = 34kHz; Ap = 0.3 dB; Ar = 60 dB; H = 0 dB
|
BS; fs = 44kHz; fp1 = 8kHz; fr1 = 12kHz; fr2 = 15kHz; fp2 = 18kHz; Ap1 = 0.1; Ar = 60 dB; Ap2 = 0.1 dB; H = +3 dB
|
ERNANI RODRIGUES DE S.THIAGO
|
LP; fs = 100kHz; fp = 10kHz; fr = 15kHz; Ap = 0.5 dB; Ar = 40 dB; H = 0 dB
|
BS; fs = 100kHz; fp1 = 8kHz; fr1 = 12kHz; fr2 = 15kHz; fp2 = 18kHz; Ap1 = 0.3; Ar = 40 dB; Ap2 = 0.3 dB; H = -3 dB
|
JEAN MICHEL DE SOUZA SANT'ANA
|
HP; fs = 100kHz; fp = 18kHz; fr = 10kHz; Ap = 0.3 dB; Ar = 70 dB; H = 0 dB
|
BP; fs = 100kHz; fr1 = 5kHz; fp1 = 13kHz; fp2 = 15kHz; fr2 = 20kHz; Ar1 = 60; Ap = 1.5 dB; Ar2 = 50 dB; H = +5 dB
|
LEONAN DA SILVA SARAIVA
|
LP; fs = 44kHz; fp = 10kHz; fr = 13kHz; Ap = 0.5 dB; Ar = 60 dB; H = 0 dB
|
BP; fs = 100kHz; fr1 = 5kHz; fp1 = 30kHz; fp2 = 37kHz; fr2 = 45kHz; Ar1 = 70; Ap = 1.5 dB; Ar2 = 50 dB; H = -10 dB
|
THIAGO HENRIQUE BONOTTO DA SILVA
|
HP; fs = 44kHz; fp = 18kHz; fr = 15kHz; Ap = 0.3 dB; Ar = 70 dB; H = 0 dB
|
BS; fs = 100kHz; fp1 = 4kHz; fr1 = 7kHz; fr2 = 8kHz; fp2 = 15kHz; Ap1 = 0.3; Ar = 40 dB; Ap2 = 0.3 dB; H = +6 dB
|
THIAGO WERNER
|
LP; fs = 44kHz; fp = 8kHz; fr = 10kHz; Ap = 0.5 dB; Ar = 40 dB; H = 0 dB
|
BS; fs = 100kHz; fp1 = 23kHz; fr1 = 26kHz; fr2 = 27kHz; fp2 = 34kHz; Ap1 = 0.3; Ar = 40 dB; Ap2 = 0.3 dB; H = -6 dB
|
- onde: LP = passa-baixas; HP = passa-altas; BP = passa-faixa; BS - rejeita-faixa; fa = frequência de amostragem; fp = frequência de passagem; fr = frequência de rejeição; Ap = atenuação máxima na passagem; Ar = atenuação mínima na rejeição; H = Ganho na banda de passagem.
- 4. A primeira etapa do projeto deve ser feita utilizando precisão infinita.
- 5. A segunda etapa do projeto será com precisão finita, devendo o aluno buscar minimizar a área necessária, considerando tanto a ordem do filtro, como o número de bits necessário. Para fins de simplificação, considere que a área de hardware (AHw) necessária corresponde a:
- 6. Escreva um artigo mostrando os resultados obtidos e documentando o código escrito. Enviar para o meu email em formato pdf com o Assunto: PSD29007 - Projeto de Filtro Digitais FIR x IIR. É necessário fazer a revisão teórica dos filtros. Foquem apenas na descrição dos filtros projetados, nos resultados e sua análise. Cada figura/gráfico deve ter uma legenda e ser mencionado no texto. É necessário ter referências bibliográficas.
- Resultados que devem ser avaliados:
- Comparação dos filtro FIR com IIR
- Estabilidade, ordem, resposta de frequência, atraso de grupo dos filtros utilizando precisão infinita
- Estabilidade, ordem, resposta de frequência, atraso de grupo, área de hardware estimada, número de bits, número de somadores, multiplicadores e atrasos dos filtros utilizando precisão finita.
|
PROJETO FINAL - Implementação de Filtros em VHDL (Prazo de entrega 06/07/2015)
|
- Cada aluno deverá implementar em VHDL realizar um filtro (LP ou HP) e um filtro (BP ou BS), conforme projetado em AE5. Um dos filtros deverá ser IIR e o outro FIR.
- Na realização do filtro utilize os coeficientes quantizados.
- Deverá ser feita a simulação no ModelSim-Altera usando um arquivo de testbench.
- Após a verificação o filtro deverá ser implementado em um kit de FPGA a ser designado pelo professor. (opções DE2-115, Mercurio, DE0-Nano).
- Utilizar como base o artigo gerado na AE5 para incluir os novos resultados obtidos após os testes no hardware.
- Enviar os arquivos do projeto com o testbench em arquivo .zip junto com o novo relatório para o meu email com o Assunto: PSD29007 - Implementação de Filtros em VHDL.
|
ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO
AL1 - Resposta em frequência a partir da posição dos pólos-zeros
|
- Estudar a Seção 5.6 pag. 485 a 488 do livro do Lathi [3].
- Use as funções zplane, pz2tf, freqz para realizar o estudo.
|
AL2 - Resposta em frequência em Sistemas de Tempo Discreto
|
- Estudar a Seção 5.5 pag. 474 a 475 do livro do Lathi [3].
|
AL3 - Desempenho do código de uma FFT
|
- Estudar o Exemplo M9.2 pag. 778 a 779 do livro do Lathi [3].
N = 10000;
%% tamanho do vetor de 1015 -> 5 x 7 x 29
N0 = 1015;
y1 = rand(N0,1);
tic; for k = 1:N; Y1 = fft(y1)/N0; end; toc
%% tamanho do vetor de 1019 -> primo
N_0 = 1019;
y2 = [y1; zeros(N_0-N0,1)];
tic; for k = 1:N; Y2 = fft(y2)/N_0; end; toc
%% tamanho do vetor de 1024 -> 2^10
N_0 = 1024;
y3 = [y1; zeros(N_0-N0,1)];
tic; for k = 1:N; Y3 = fft(y3)/1024; end; toc
|
AL4 - Atraso de grupo em filtros IIR e FIR no Matlab
|
- O atraso de grupo de um filtro é a medida da atraso médio do filtro em função da frequência do sinal de entrada. Ele é obtido pela primeira derivada da resposta de fase do filtro. Se a resposta em frequencia é , então o atraso de grupo é:
- onde é a fase de .
- A Distorção de fase nula
- A função de transferência do filtro é igual a magnitude ao quadrada da função de transferência original do filtro H1.
- A ordem do filtro é o dobro da ordem do filtro H1.
- Exemplo de aplicação a filtragem de um sinal ECG com ruído.
%% Carregando um sinal de ECG com ruído com duração de 4 segundos.
load noisyecg.mat
x = noisyECG_withTrend;
fa = 500; %% 2000 amostras em 4 segundos => 500 amostras por segundo.
t = [0:length(x)-1]*1/fa;
plot(t,x);
%% Projetando um filtro passa-baixa tipo IIR butter com f_passagem = 0.15 rad/s
d = designfilt('lowpassiir', ...
'PassbandFrequency',0.15,'StopbandFrequency',0.2, ...
'PassbandRipple',1,'StopbandAttenuation',60, ...
'DesignMethod','butter');
freqz(d)
%% Filtro de x revertido x e somando com x filtrado. OFF LINE
y = flip(filter(d,flip(filter(d,x))));
y1 = filter(d,x);
figure(2);
subplot(2,1,1)
plot(t, [y y1])
title('Filtered Waveforms')
legend('Zero-phase Filtering','Conventional Filtering')
subplot(2,1,2)
plot(t, [x y])
title('Original Waveform')
legend('noisy ecg ','fitered ecg')
- Verifique também o resultado da filtragem usando um filtro IIR (ellip, cheby1 ou cheby2) e filtros FIR (equiripple e de janela)
%% Projetando um filtro passa-baixa tipo FIR equiripple com f_passagem = 0.15 rad/s
d = designfilt('lowpassfir', ...
'PassbandFrequency',0.15,'StopbandFrequency',0.2, ...
'PassbandRipple',1,'StopbandAttenuation',60, ...
'DesignMethod','equiripple');
y = flip(filter(d,flip(filter(d,x))));
- Note que nos filtros FIR de fase linear o procedimento mais simples é adiantar o sinal de acordo com o atraso de grupo (metade da ordem do filtro), devendo-se tomar cuidado para arredondar a meia amostra nos filtros de ordem impar.
y1 = filter(d,x);
gd = grpdelay(d);
gd1 = ceil(gd(1));
y = [y1(gd1:end); zeros(gd1-1, 1)];
O cálculo do atraso de grupo pode ser realizado utilizando a função grpdelay ou diretamente pela definição da derivada do ângulo em relação a frequência:
%% Calculo do atraso de grupo
% Método 1 - uso da função grpdelay
[z,p,k] = butter(30,0.2);
sos = zp2sos(z,p,k);
[gd,w]=grpdelay(sos,128);
figure(1)
plot(w/pi,gd),grid on;
% Método 2 - derivada obtida por aproximação discreta
% calculo a cada par de pontos (w2-w1)/delta_w
[h,w] = freqz(sos);
a = unwrap(angle(h));
hold on; plot(w/pi,a,'g');
delta_w = pi/length(a);
plot(w(1:end-1)/pi+delta_w/2,-(a(2:end)-a(1:end-1))/delta_w,'r');
|
Referências Bibliográficas
- ↑ 1,0 1,1 1,2 1,3 1,4 1,5 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,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 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,0 3,1 3,2 3,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