Mudanças entre as edições de "PSD-EngTel (página)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 53: Linha 53:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
;Aula 2 (10 fev):
+
 
 +
;[http://www.sj.ifsc.edu.br/index.php/component/content/article/776-2015-07-29-20-27-02 Suspensão do calendário acadêmico pela direção do Campus];
 +
 
 +
;Aula 2 (No retorno do calendário acadêmico)
 
*Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 
*Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 
:* Filtragem de Sinais (Experimentos 1.3, 2.1 e 2.2)
 
:* Filtragem de Sinais (Experimentos 1.3, 2.1 e 2.2)
Linha 101: Linha 104:
 
#verifique o que ocorre se os polos estiverem fora do circulo unitário  [1.2 -0.2].  Interprete este resultado   
 
#verifique o que ocorre se os polos estiverem fora do circulo unitário  [1.2 -0.2].  Interprete este resultado   
 
{{collapse bottom}}
 
{{collapse bottom}}
 
;Aula 3 (13 fev):
 
*Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 
:* Filtros Digitais (Experimento 2.3)
 
:* Filtragem de Sinais (Experimento 3.1)
 
:* Análise de Sinais (Experimento 3.2)
 
:* Uso das funções [http://www.mathworks.com/help/signal/ref/zp2tf.html zp2tf], [http://www.mathworks.com/help/signal/ref/tf2zp.html tf2zp], [http://www.mathworks.com/help/matlab/ref/fft.html fft], [http://www.mathworks.com/help/matlab/ref/ifft.html ifft], [http://www.mathworks.com/help/signal/ref/fftfilt.html fftfilt], [http://www.mathworks.com/help/matlab/ref/fftshift.html fftshift]
 
:*Ver pag. 141 a 145 e 230 a 235 de <ref name="DINIZ2014"/>
 
 
===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 <ref name="SHENOI2006"> SHENOI, B. A. '''Introduction to Digital Signal Processing and Filter Design'''. 1.ed. New Jersey: John Wiley-Interscience, 2006. 440 p. ISBN 978-0471464822 </ref>
 
 
;Aula 5 (24 fev):
 
*Filtros Digitais:  Filtros IIR:
 
:* Projeto de filtros analógicos passa-baixas: do tipo Butterworth.
 
:*Ver pag. 194 a 204 de <ref name="SHENOI2006"/>
 
 
;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 <ref name="SHENOI2006"/>
 
 
;Aula 7 (3 mar):
 
*Filtros Digitais:  Filtros IIR:
 
:* Projeto de filtros analógicos passa-baixas: do tipo Chebyshev II.
 
:* Uso das funções [http://www.mathworks.com/help/matlab/ref/semilogx.html semilogx], [http://www.mathworks.com/help/matlab/ref/semilogy.html semilogy],[http://www.mathworks.com/help/matlab/ref/logspace.html logspace], [http://www.mathworks.com/help/matlab/ref/linspace.html linspace].
 
:*Ver em [http://www.mathworks.com/help/signal/ug/iir-filter-design.html IIR Filter Design],
 
::*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 <ref name="SHENOI2006"/>
 
 
;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 [http://www.mathworks.com/help/signal/ug/iir-filter-design.html IIR Filter Design],
 
::*Filter discretization functions: bilinear, impinvar
 
:*Ver pag. 219 a 229 de <ref name="SHENOI2006"/>
 
:*Ver pag. 403 a 415 e 434 a 435 de <ref name="DINIZ2014"/>
 
 
===Unidade 3===
 
;Aula 9 (10/mar)
 
*Filtros Digitais: Filtros FIR
 
:*Filtros de fase linear: simétricos e antisimétricos
 
:*Ver pag. 249 a 256de <ref name="SHENOI2006"/>
 
 
;Aula 10 (13/mar)
 
*Filtros Digitais: Filtros FIR
 
:*Filtros de fase linear: propriedades
 
:*Ver pag. 256 a 260 de <ref name="SHENOI2006"/>
 
 
;Aula 11 (17/mar)
 
*Filtros Digitais: Filtros FIR
 
*Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS
 
:*Passa-baixas (''Low-pass'')
 
::<math>c_\text{LP}(n) = \left \{ \begin{matrix} \frac{\omega_c}{\pi}; & \qquad n = 0 \\ \frac {\sin (\omega_c n)}{\pi n}; & \qquad \left | n \right | > 0 \end{matrix}\right. </math>
 
:*Passa-altas (''High-pass'')
 
::<math>c_\text{HP}(n) = \left \{ \begin{matrix} 1-\frac{\omega_c}{\pi}; \qquad n = 0 \\ -\frac {\sin (\omega_c n)}{\pi n}; \qquad \left | n \right | > 0 \end{matrix}\right. </math>
 
:*Passa-faixa (''Band-pass'')
 
::<math>c_\text{BP}(n) = \left \{ \begin{matrix} \frac{\omega_{c2}-\omega_{c1}}{\pi}; \qquad n = 0 \\ \frac {\sin (\omega_{c2} n)- \sin (\omega_{c1} n)}{\pi n}; \qquad \left | n \right | > 0 \end{matrix}\right. </math>
 
:*Rejeita-banda (''Band-stop'')
 
::<math>c_\text{BS}(n) = \left \{ \begin{matrix} 1-\frac{\omega_{c2}-\omega_{c1}}{\pi}; \qquad n = 0 \\ -\frac {\sin (\omega_{c2} n)- \sin (\omega_{c1} n)}{\pi n}; \qquad \left | n \right | > 0 \end{matrix}\right. </math>
 
*Janela retangular, fenômeno de Gibbs
 
:*Estudar no Matlab as funções [http://www.mathworks.com/help/signal/ref/wintool.html wintool], [http://www.mathworks.com/help/signal/ref/wvtool.html vtool], [http://www.mathworks.com/help/signal/ref/window.html window]
 
:*Ver pag. 261 a 265de <ref name="SHENOI2006"/>
 
 
;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.
 
:*Retangular
 
::<math>w(n)=1; \qquad -M \le n \le M </math>
 
 
:*Bartlett
 
::<math>w(n)= 1 - \frac{\left | n \right |}{M+1}; \qquad -M \le n \le M  </math>
 
 
:*Hanning
 
::<math>w(n) = 0.5 + 0.5 \cos \left( \frac{2\pi n}{2M+1} \right),  -M \le n \le M</math>
 
 
:*Hamming
 
::<math>w(n) = 0.54 + 0.46 \cos\left(\frac{2\pi n}{2M+1}\right); \qquad -M \le n \le M</math>
 
 
:*Blackman
 
::<math>w(n) = 0.42 + 0.5 \cos\left(\frac{2\pi n}{2M+1}\right) + 0.08\cos\left(\frac{4\pi n}{2M+1}\right); \qquad -M \le n \le M</math>
 
* em todas as janelas <math>w\left ( n \right ) = 0 </math> quando <math> \left | n \right | \ge M</math>
 
<!--::onde <math>M </math>  é <math>N/2</math> para <math>N</math> par e <math>(N+1)/2</math> para <math>N</math> impar-->
 
*Projeto de filtro FIR utilizando janelas temporais
 
*Uso de janelas fixas no Matlab : [http://www.mathworks.com/help/signal/ref/rectwin.html rect], [http://www.mathworks.com/help/signal/ref/triang.html triang], [http://www.mathworks.com/help/signal/ref/bartlett.html bartlett], [http://www.mathworks.com/help/signal/ref/hann.html, hann], [http://www.mathworks.com/help/signal/ref/hamming.html, hamming], [http://www.mathworks.com/help/signal/ref/blackman.html blackman], [http://www.mathworks.com/help/signal/ref/blackmanharris.html blackmanharris], [http://www.mathworks.com/help/signal/ref/nuttallwin.html nuttall].
 
<syntaxhighlight lang=matlab>
 
L = 64;
 
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
 
</syntaxhighlight>
 
*Uso de janelas ajustáveis no Matlab: [http://www.mathworks.com/help/signal/ref/kaiser.html kaiser], [http://www.mathworks.com/help/signal/ref/chebwin.html chebyshev], [http://www.mathworks.com/help/signal/ref/gausswin.html gauss], [http://www.mathworks.com/help/signal/ref/tukeywin.html tukey], [http://www.mathworks.com/help/signal/ref/taylorwin.html taylor].
 
<syntaxhighlight lang=matlab>
 
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));
 
</syntaxhighlight>
 
:*Ver pag. 266 a 273 de <ref name="SHENOI2006"/>
 
 
;Aula 13 (24/mar)
 
*Filtros Digitais: Filtros FIR
 
:*Projeto de filtro com splines.
 
:*Passa-baixas (''Low-pass'')
 
::<math>c_\text{LP}(n) = \left \{ \begin{matrix} \frac{\omega_c}{\pi}; & \qquad n = 0 \\ \frac {\sin (\omega_c n)}{\pi n}; & \qquad \left | n \right | > 0 \end{matrix}\right. </math>
 
 
;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 [http://www.mathworks.com/help/signal/ref/firpmord.html firpmord] e [http://www.mathworks.com/help/signal/ref/firpm.html 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 [http://www.mathworks.com/help/signal/examples/practical-introduction-to-digital-filter-design.html?refresh=true Practical Introduction to Digital Filter Design], [http://www.mathworks.com/help/signal/ug/opening-fdatool.html 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)
 
*Realização de Filtros
 
:* Realização de filtros FIR: Forma Direta I, Transposta, Cascata, Polifase, filtros de fase linear simétrico e antissimétrico.
 
:* Estudar [http://www.mathworks.com/help/simulink/slref/discretefirfilter.html estrutura de filtros disrcetos FIR no Matlab].
 
:*Ver pag. 303 a 312 de <ref name="SHENOI2006"/>.
 
 
;Aula 17 (7/04)
 
*Realização de Filtros IIR
 
:* Bloco de IIR de 2ª ordem.
 
:<math> H(z) = \frac{Y(z)}{X(z)},    H(z) = \frac{b_0 z^2 + b_1 z^1 + b_2}{z^2 + a_1 z^1 + a_2},    H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2}}{1 + a_1 z^{-1} + a_2 z^{-2}} </math>
 
: Separando H(z) em dois blocos  <math>\ H(z) = H_1(z) H_2(z) </math>, e obtendo o sinal intermediário W(z)
 
:<math> H_1(z) = \frac{W(z)}{X(z)} = b_0 + b_1 z^{-1} + b_2 z^{-2} </math>
 
:<math> H_2(z) = \frac{Y(z)}{W(z)} = \frac{1}{1 + a_1 z^{-1} + a_2 z^{-2}} </math>
 
:Podemos obter a realização de <math>\ H_1(z) </math>  na forma direta.
 
:<math>\ W(z) = (b_0 + b_1 z^{-1} + b_2 z^{-2})X(z) </math>
 
:Para obter a realização de <math>\ H_2(z) </math> , é necessário reescrever a saída <math>\ Y(z) </math> em função de <math>\ W(z) </math> e das saídas anteriores <math>\ Y(z) z^{-1} </math> e <math>\ Y(z) z^{-2} </math>:
 
:<math>\ Y(z) = \frac{W(z)}{1 + a_1 z^{-1} + a_2 z^{-2}} </math>
 
:<math>\ Y(z)({1 + a_1 z^{-1} + a_2 z^{-2}}) = W(z) </math>
 
:<math>\ Y(z) = W(z) - a_1 Y(z) z^{-1} - a_2 Y(z) z^{-2} </math>
 
: Com o ordenamento dos blocos <math>\ H_1(z) </math> e <math>\ H_2(z) </math> em ordem direta teremos a Forma Direta I:
 
::[[Arquivo:IIR_FDI.svg|400px]]
 
: Com o ordenamento dos blocos <math>\ H_1(z) </math> e <math>\ H_2(z) </math> em ordem reversa teremos a Forma Direta II (Canônica):
 
::[[Arquivo:IIR_FDII.svg|400px]]
 
 
:* Realização de filtros IIR: Forma Direta I e II, Transposta, Cascata, Paralela
 
:* Ver funções do Matlab: [http://www.mathworks.com/help/matlab/ref/roots.html roots], [http://www.mathworks.com/help/matlab/ref/poly.html poly], [http://www.mathworks.com/help/signal/ref/residuez.html residuez], [http://www.mathworks.com/help/signal/ref/tf2zp.html tf2zp],  [http://www.mathworks.com/help/signal/ref/zp2tf.html zp2tf], [http://www.mathworks.com/help/signal/ref/zp2sos.html zp2sos], [http://www.mathworks.com/help/signal/ref/tf2sos.html tf2sos], [http://www.mathworks.com/help/signal/ref/tf2latc.html 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 <ref name="SHENOI2006"/>.
 
:*Ver pag. 469 a 474 do Lathi <ref name="Lathi2007"/>
 
 
;Aula 18 (08/04)
 
*Realização de Filtros
 
 
;Aula 19 (14/04)
 
*Realização de Filtros
 
 
;Aula 20 (15/04)
 
*Realização de Filtros
 
 
;Aula 21 (22/04)
 
*Projeto e realização de Filtros IIR x FIR
 
:*Ver AE5 (Prazo de entrega 11/05/2015)
 
<!--
 
:*Ler [http://www.mathworks.com/help/dsp/ug/digital-filter-design-block.html Digital Filter Design Block]
 
:*Ler [http://www.mathworks.com/help/dsp/ref/filterrealizationwizard.html Filter Realization Wizard]
 
:*Ler [http://www.mathworks.com/help/signal/ug/filtering-data-with-signal-processing-toolbox.html Filtering Data With Signal Processing Toolbox Software]
 
:*Ler [http://www.mathworks.com/help/dsp/ug/use-fdatool-with-dsp-system-toolbox-software.html Use FDATool with DSP System Toolbox Software]
 
:*Ler [http://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html Sample- and Frame-Based Concepts]
 
:*Ler [http://en.wikipedia.org/wiki/Double-precision_floating-point_format ponto flutuante de dubla precisão]
 
-->
 
 
;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
 
:* Ver atividade livre AL4.
 
 
;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 [http://www.mathworks.com/help/signal/ref/isallpass.html isallpass], [http://www.mathworks.com/help/dsp/ref/iirgrpdelay.html iirgrpdelay], [http://www.mathworks.com/help/matlab/ref/conv.html conv].
 
:* Estudar os quatro exemplos de [http://jp.mathworks.com/help/releases/R13sp2/pdf_doc/filterdesign/filterdesign.pdf] 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., [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=275662 "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.
 
:*Ver [http://en.wikipedia.org/wiki/Minimum_phase fase mínima],
 
 
;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):
 
:*Uso do Simulink
 
::* Uso dos blocos de simulação [http://www.mathworks.com/help/simulink/slref/sinewave.html sinewave], [http://www.mathworks.com/help/simulink/slref/floatingscope.html scope] e [http://www.mathworks.com/help/dsp/ref/spectrumanalyzer.html Spectrum Analyzer].
 
::* Outros blocos [http://www.mathworks.com/help/simulink/slref/mux.html mux], [http://www.mathworks.com/help/simulink/slref/demux.html demux], [http://www.mathworks.com/help/simulink/slref/add.html sum], [http://www.mathworks.com/help/simulink/slref/product.html product].
 
::* Exemplo: construção de um modulador AM.
 
 
;Aula 28(19 mai):
 
:*Uso do Simulink
 
::*[http://www.mathworks.com/academia/student_center/tutorials/slregister.html Interactive Simulink Tutorial]
 
:::*[http://www.mathworks.com/academia/student_center/tutorials/simulink/onramp/player.html Bases da modelagem gráfica com Simulink (45 minutos)]
 
::::    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
 
:::*É importante ler informações complementares sobre o [http://www.mathworks.com/help/simulink/gui/solver-pane.html Solver Pane], [http://www.mathworks.com/help/simbio/ug/simulating-models.html Model Simulation], [http://www.mathworks.com/help/simulink/ug/choosing-a-solver.html Choose a Solver]
 
 
;Aula 29, 30 (20 e 26 mai):
 
:*Uso do Simulink
 
::*[http://www.mathworks.com/academia/student_center/tutorials/slregister.html?refresh=true Interactive Simulink Tutorial]
 
:::*[http://www.mathworks.com/academia/student_center/tutorials/simulink/modeldynamic/player.html Usando o Simulink para modelagem de Sistemas Dinâmicos Discretos(60 minutos)]
 
::::    Modeling Discrete Dynamical Systems 19:35
 
::::    Use Signal Processing Blockset 12:01
 
::::: dspstartup.m command
 
::::    Working with Signals in Simulink 9:59
 
:::*É importante ler informações complementares sobre, [http://www.mathworks.com/help/simulink/sample-time.html Tempo de amostragem (Time Sample)], [http://www.mathworks.com/help/simulink/ug/how-to-view-sample-time-information.html View Sample Time Information], [http://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html Sample- and Frame-Based Concepts], [http://www.mathworks.com/help/simulink/slref/concatenate.html Vector Concatenate, Matrix Concatenate].
 
 
;Aula 31 (27 mai):
 
:*Visita aos equipamento da RNP na UFSC -> prof Sandro Lima.
 
 
;Aula 32 (2 jun):
 
:*Uso do Simulink
 
::*[http://www.mathworks.com/academia/student_center/tutorials/slregister.html?refresh=true Interactive Simulink Tutorial]
 
:::*[http://www.mathworks.com/academia/student_center/tutorials/simulink/modeldynamic/player.html Usando o Simulink para modelagem de Sistemas Dinâmicos Discretos(60 minutos)]
 
::::    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):
 
:*Uso do HDL Coder
 
::* [http://www.mathworks.com/help/hdlcoder/examples/getting-started-with-matlab-to-hdl-workflow.html Getting Started with MATLAB to HDL Workflow]
 
::* [http://www.mathworks.com/help/hdlcoder/examples/basic-hdl-code-generation-with-the-workflow-advisor.html Basic HDL Code Generation with the Workflow Advisor]
 
::* [https://www.mathworks.com/help/hdlcoder/examples/floating-point-to-fixed-point-conversion.html Floating-Point to Fixed-Point Conversion]
 
::* [https://www.mathworks.com/help/hdlverifier/ug/verify-hdl-model-with-matlab-testbench.html Verify HDL Model with MATLAB Testbench]
 
::* Ver também o uso da função [http://www.mathworks.com/help/fixedpoint/ref/fi.html fi] - Construct fixed-point numeric object
 
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.
 
<syntaxhighlight lang=vhdl>
 
  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.
 
</syntaxhighlight>
 
 
;Aula 36 (16 jun):
 
:*Uso do HDL Coder
 
::*Simulação do projeto da aula anterior no ModelSim-ALTERA.
 
{{collapse top |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)].
 
 
{{collapse bottom}}
 
 
 
{{collapse top |Problemas na integração Matlab - Modelsim}}
 
*Foram criados os seguintes arquivos em /usr/local/bin
 
sudo gedit quartus
 
<code>
 
#!/bin/bash
 
VERSAO="13.0sp1"
 
cd /opt/altera/${VERSAO}/quartus/bin
 
exec ./quartus
 
</syntaxhighlight>
 
sudo chmod +x quartus
 
 
sudo gedit quartus_sh
 
<code>
 
#!/bin/bash
 
VERSAO="13.0sp1"
 
cd /opt/altera/${VERSAO}/quartus/bin
 
exec ./quartus_sh
 
</syntaxhighlight>
 
sudo chmod +x quartus_h
 
 
sudo gedit vsim
 
<code>
 
#!/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? 
 
<code>
 
### 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
 
{{collapse bottom}}
 
 
 
<!--
 
:*Periodograma de um sinal [http://www.mathworks.com/help/daq/examples/performing-spectral-analysis-on-live-audio-data.html Performing Spectral Analysis on Live Audio Data].
 
dspstfft
 
:*Analise de espectro - Domínio do tempo [http://www.mathworks.com/help/dsp/ug/display-frequency-domain-data-in-spectrum-analyzer.html Display Frequency-Domain Data in Spectrum Analyzer]
 
ex_spectrumanalyzer_tut
 
-->
 
:*Referência:
 
::[http://www.mathworks.com/help/pdf_doc/simulink/sl_gs.pdf Simulink® Getting Started Guide]. 
 
::[http://cn.mathworks.com/help/pdf_doc/hdlcoder/hdlcoder_gs.pdf HDL Coder™ Getting Started Guide].
 
::Consultar outros documentos sobre o [http://www.mathworks.com/help/pdf_doc/simulink/ Simulink no site da Mathworks].
 
 
===Unidade 5===
 
;Aula 37 a 40 (17/06 a 30/06)
 
*Projeto Final
 
: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===
 
===Avaliações===
* Entrega dos diversos trabalhos ao longo do semestre AE1 a AE4.
+
* Entrega dos diversos trabalhos ao longo do semestre.
* 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.
* 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)
 
  
 
==Atividades extra==
 
==Atividades extra==

Edição das 11h30min de 30 de julho de 2015

MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES


Registro on-line das aulas

Unidade 1

Aula 1 (6 fev)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
  • Resposta de sistemas LTI (Experimento 1.1)
%  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.1
alpha = 1.15; N = 256;
x = [1 zeros(1,N)];
y = filter(1,[1 -1/alpha],x);
stem(y);
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:

  1. Em qual frequência deixa de ocorrer recobrimento do sinal 2.
  2. O que ocorre quando a frequência é 6, 7, 14 Hz? Explique
  3. 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.


Suspensão do calendário acadêmico pela direção do Campus;
Aula 2 (No retorno do calendário acadêmico)
  • 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')
  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

Avaliações

  • Entrega dos diversos trabalhos ao longo do semestre.
  • Projeto Final. O projeto é avaliado nos quesitos: 1) Implementação do Sistema, 2) Documentação, 3) Avaliação Global do aluno no projeto.

Atividades extra

JÁ ENCERRADAS

AE1 - Experimento 3.2 (Prazo de entrega 23/02/2015)
  1. 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.
  2. 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.
  3. Faça uma estimação melhor do espectro do sinal, segmentando o sinal x(n) e calculando a média dos espectros obtidos.
  4. É importante utilizar as escalas e legendas corretamente nos gráficos.
  5. Ver as funções do matlab legend, title, xlabel, ylabel.
  6. 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)
  1. 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.
  2. Na realização do filtro utilize os coeficientes quantizados.
  3. Deverá ser feita a simulação no ModelSim-Altera usando um arquivo de testbench.
  4. 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).
  5. Utilizar como base o artigo gerado na AE5 para incluir os novos resultados obtidos após os testes no hardware.
  6. 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
  1. Estudar a Seção 5.6 pag. 485 a 488 do livro do Lathi [2].
  2. Use as funções zplane, pz2tf, freqz para realizar o estudo.
AL2 - Resposta em frequência em Sistemas de Tempo Discreto
  1. Estudar a Seção 5.5 pag. 474 a 475 do livro do Lathi [2].
AL3 - Desempenho do código de uma FFT
  1. Estudar o Exemplo M9.2 pag. 778 a 779 do livro do Lathi [2].
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');

PARA ENTREGAR

Recursos necessários

  • O Software Matlab está disponível na maioria dos laboratórios do IFSC-campus São José em instalação local tanto em Windows como Linux. Adicionalmente de qualquer maquina do IFSC, pode-se fazer Acesso ao IFSC-CLOUD.
  • Adicionalmente de qualquer maquina do IFSC, pode-se fazer usar o IFSC-CLOUD para ter acesso a estes softwares.

Links auxiliares

Alguns artigos para leitura

Artigos bases de alguns dos filtros digitais:

Relatórios simples:

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 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