Mudanças entre as edições de "PSD29007-Engtelecom(2018-2) - Prof. Marcos Moecke"
(→ATUAL) |
(→ATUAL) |
||
(70 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 344: | Linha 344: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | {{collapse top | | + | {{collapse top | Unidade 2}} |
===Unidade 2=== | ===Unidade 2=== | ||
Linha 398: | Linha 398: | ||
:* 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. | :* 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. | ||
− | + | ||
;Aula 7 (16 ago): | ;Aula 7 (16 ago): | ||
* Projeto de filtros analógicos do tipo Butterworth, considerando: <math> \omega_p </math> é a frequência de passagem do filtro LP, <math> A_p = 3 dB </math> é a atenuação em dB na frequência de passagem, <math> \omega_s </math> é a frequência de ''stopband'' do filtro, <math> A_s </math> é a atenuação em dB na frequência de ''stopband'', <math> \epsilon = 1 </math>, <math> \Omega_s = \frac {\omega_s} {\omega_p} </math>, <math> \Omega_p = \frac {\omega_p} {\omega_p} = 1 </math> são as frequências de passagem e ''stopband'' do filtro protótipo. | * Projeto de filtros analógicos do tipo Butterworth, considerando: <math> \omega_p </math> é a frequência de passagem do filtro LP, <math> A_p = 3 dB </math> é a atenuação em dB na frequência de passagem, <math> \omega_s </math> é a frequência de ''stopband'' do filtro, <math> A_s </math> é a atenuação em dB na frequência de ''stopband'', <math> \epsilon = 1 </math>, <math> \Omega_s = \frac {\omega_s} {\omega_p} </math>, <math> \Omega_p = \frac {\omega_p} {\omega_p} = 1 </math> são as frequências de passagem e ''stopband'' do filtro protótipo. | ||
Linha 416: | Linha 416: | ||
::<math>H(s) = H(p)\left|\begin{matrix} \\ p=\frac{s}{\omega_p} \end{matrix}\right. </math> | ::<math>H(s) = H(p)\left|\begin{matrix} \\ p=\frac{s}{\omega_p} \end{matrix}\right. </math> | ||
+ | |||
+ | |||
+ | ;Aula 8 (21 ago): | ||
* Projeto de filtros analógicos do tipo Butterworth, considerando: <math> \omega_p </math> é a frequência de passagem do filtro LP, <math> A_p </math> é a atenuação em dB na frequência de passagem, <math> \omega_s </math> é a frequência de ''stopband'' do filtro, <math> A_s </math> é a atenuação em dB na frequência de ''stopband'', <math> \epsilon = \sqrt{10^{0.1A_p}-1 } </math>, <math> \Omega_s = \frac {\omega_s} {\omega_p} </math>, <math> \Omega_p = \frac {\omega_p} {\omega_p} = 1 </math> são as frequências de passagem e ''stopband'' do filtro protótipo. | * Projeto de filtros analógicos do tipo Butterworth, considerando: <math> \omega_p </math> é a frequência de passagem do filtro LP, <math> A_p </math> é a atenuação em dB na frequência de passagem, <math> \omega_s </math> é a frequência de ''stopband'' do filtro, <math> A_s </math> é a atenuação em dB na frequência de ''stopband'', <math> \epsilon = \sqrt{10^{0.1A_p}-1 } </math>, <math> \Omega_s = \frac {\omega_s} {\omega_p} </math>, <math> \Omega_p = \frac {\omega_p} {\omega_p} = 1 </math> são as frequências de passagem e ''stopband'' do filtro protótipo. | ||
Linha 428: | Linha 431: | ||
::* Em seguida é necessário obter a função de transferência: | ::* Em seguida é necessário obter a função de transferência: | ||
− | ::<math> H(p)= \frac{k}{D(p)} </math>, onde <math> k=\prod_{k-1}^{n} \left (-p_{k} \right ) </math> e <math> D(p)=\prod_{k-1}^{n} \left ( p-p_{k} \right ) </math>. | + | ::<math> H(p)= \frac{k}{D(p)} </math>, onde <math> k=\prod_{k-1}^{n} \left (-p_{k} \right ) = \epsilon^{-1}</math> e <math> D(p)=\prod_{k-1}^{n} \left ( p-p_{k} \right ) </math>. |
+ | ::NOTA: o valor <math> k </math> também pode ser obtido a partir de <math> {D(p)} </math>, pois corresponde ao último termo do polinômio <math> {D(end)} </math>. | ||
::* No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado | ::* No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado | ||
::<math>H(s) = H(p)\left|\begin{matrix} \\ p=\frac{s}{\omega_p} \end{matrix}\right. </math> | ::<math>H(s) = H(p)\left|\begin{matrix} \\ p=\frac{s}{\omega_p} \end{matrix}\right. </math> | ||
− | + | :*Ver [[Uso do calculo simbólico na Matlab]] | |
:*Ver pag. 186 a 204 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> | :*Ver pag. 186 a 204 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> | ||
<syntaxhighlight lang=matlab> | <syntaxhighlight lang=matlab> | ||
Linha 453: | Linha 457: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ||
− | ;Aula | + | ;Aula 9 (23 ago): |
* Projeto de filtros analógicos do tipo Chebyshev I. | * 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: | ||
+ | :<math>C_0(\Omega) = 1 \,\!</math> | ||
+ | :<math>C_1(\Omega) = \Omega \,\!</math> | ||
+ | :<math>C_{n}(\Omega) = 2 \times C_{n-1}(\Omega) - C_{n-2}(\Omega). \,\!</math> | ||
+ | |||
+ | Os primeiros cinco polinômios de Chebyshev de primeira ordem são: | ||
+ | :<math> C_0(\Omega) = 1 \,</math> | ||
+ | :<math> C_1(\Omega) = \Omega \,</math> | ||
+ | :<math> C_2(\Omega) = 2\Omega^2 - 1 \,</math> | ||
+ | :<math> C_3(\Omega) = 4\Omega^3 - 3\Omega \,</math> | ||
+ | :<math> C_4(\Omega) = 8\Omega^4 - 8\Omega^2 + 1 \,</math> | ||
+ | :<math> C_5(\Omega) = 16\Omega^5 - 20\Omega^3 + 5\Omega \,</math> | ||
+ | |||
::*Determine a ordem mínima necessária considerando: <math> \omega_p </math> é a frequência de passagem do filtro LP, <math> A_p </math> é a atenuação em dB na frequência de passagem, <math> \omega_s </math> é a frequência de ''stopband'' do filtro, <math> A_s </math> é a atenuação em dB na frequência de ''stopband'', <math> \epsilon = \sqrt{10^{0.1A_p}-1 } </math>, <math> \Omega_s = \frac {\omega_s} {\omega_p} </math>, <math> \Omega_p = \frac {\omega_p} {\omega_p} = 1 </math> são as frequências de passagem e ''stopband'' do filtro protótipo. | ::*Determine a ordem mínima necessária considerando: <math> \omega_p </math> é a frequência de passagem do filtro LP, <math> A_p </math> é a atenuação em dB na frequência de passagem, <math> \omega_s </math> é a frequência de ''stopband'' do filtro, <math> A_s </math> é a atenuação em dB na frequência de ''stopband'', <math> \epsilon = \sqrt{10^{0.1A_p}-1 } </math>, <math> \Omega_s = \frac {\omega_s} {\omega_p} </math>, <math> \Omega_p = \frac {\omega_p} {\omega_p} = 1 </math> são as frequências de passagem e ''stopband'' do filtro protótipo. | ||
::<math> n \ge \frac {\cosh^{-1} \sqrt{(10^{0.1A_s}-1)/(10^{0.1A_p}-1)}} {\cosh^{-1} \Omega_s} </math> | ::<math> n \ge \frac {\cosh^{-1} \sqrt{(10^{0.1A_s}-1)/(10^{0.1A_p}-1)}} {\cosh^{-1} \Omega_s} </math> | ||
Linha 464: | Linha 482: | ||
::<math> \theta_k = \left ( \frac{(2k-1)\pi}{2n} \right ) </math> | ::<math> \theta_k = \left ( \frac{(2k-1)\pi}{2n} \right ) </math> | ||
::<math> \varphi_2 = \frac{1}{n} \sinh^{-1}\left (\frac{1}{\epsilon} \right ) </math> | ::<math> \varphi_2 = \frac{1}{n} \sinh^{-1}\left (\frac{1}{\epsilon} \right ) </math> | ||
+ | |||
+ | :<math>\left | H( j\Omega ) \right | ^2 = 1 \text{para n impar}, \frac {1}{1+\epsilon^2} \text{para n par} </math> | ||
+ | |||
+ | :<math>\left | H(0) \right | ^2 = \frac{H_0^2}{ 1+ \epsilon^2 C_n ^2 \left ( \Omega_0 \right )} </math> | ||
+ | |||
:* Uso das funções [http://www.mathworks.com/help/signal/ref/buttord.html buttord], [http://www.mathworks.com/help/signal/ref/butter.html butter], [http://www.mathworks.com/help/signal/ref/cheb1ord.html cheb1ord], [http://www.mathworks.com/help/signal/ref/cheby1.html cheby1], [http://www.mathworks.com/help/signal/ref/cheb2ord.html cheb2ord], [http://www.mathworks.com/help/signal/ref/cheby2.html cheby2], [http://www.mathworks.com/help/signal/ref/ellipord.html ellipord], [http://www.mathworks.com/help/signal/ref/ellip.html ellip] para o projeto de filtros analógicos com Matlab (é necessário usar o parâmetro ''''s''''). | :* Uso das funções [http://www.mathworks.com/help/signal/ref/buttord.html buttord], [http://www.mathworks.com/help/signal/ref/butter.html butter], [http://www.mathworks.com/help/signal/ref/cheb1ord.html cheb1ord], [http://www.mathworks.com/help/signal/ref/cheby1.html cheby1], [http://www.mathworks.com/help/signal/ref/cheb2ord.html cheb2ord], [http://www.mathworks.com/help/signal/ref/cheby2.html cheby2], [http://www.mathworks.com/help/signal/ref/ellipord.html ellipord], [http://www.mathworks.com/help/signal/ref/ellip.html ellip] para o projeto de filtros analógicos com Matlab (é necessário usar o parâmetro ''''s''''). | ||
:* Ler '''Comparison of Analog IIR Lowpass Filters''' em [http://www.mathworks.com/help/signal/ref/ellip.html ellip] | :* Ler '''Comparison of Analog IIR Lowpass Filters''' em [http://www.mathworks.com/help/signal/ref/ellip.html ellip] | ||
Linha 469: | Linha 492: | ||
*Exemplos de projeto de filtro passa-baixas com frequência de passagem de 16000 rad/s com atenuação máxima de 0.3 dB, frequência de rejeição de 20000 rad/s com atenuação mínima de 20 dB; e ganho em DC de 3 dB. | *Exemplos de projeto de filtro passa-baixas com frequência de passagem de 16000 rad/s com atenuação máxima de 0.3 dB, frequência de rejeição de 20000 rad/s com atenuação mínima de 20 dB; e ganho em DC de 3 dB. | ||
+ | |||
+ | |||
+ | ;Aula 10 (28 ago): | ||
+ | * Projeto de filtros analógicos do tipo Butterworth, Chebyshev I e II e Cauer (eliptico). | ||
<syntaxhighlight lang=matlab> | <syntaxhighlight lang=matlab> | ||
%% Projeto de filtro passa-baixas usando funções do Matlab | %% Projeto de filtro passa-baixas usando funções do Matlab | ||
Linha 474: | Linha 501: | ||
Wp =16000; Ws = 20000; Ap = 0.3; As = 20; G0= 3; | 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 | % Para analisar o filtro projetado, use fvtool(b,a) para observar plano s, resposta em magnitude, fase e atraso de grupo | ||
− | + | ||
%% Butterworth | %% Butterworth | ||
[n,Wn] = buttord(Wp, Ws, Ap, As,'s') | [n,Wn] = buttord(Wp, Ws, Ap, As,'s') | ||
Linha 491: | Linha 518: | ||
[b,a] = ellip(n,Ap,As, Wn, 's'); | [b,a] = ellip(n,Ap,As, Wn, 's'); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
:*Ver pag. 204 a 208 de <ref name="SHENOI2006"/> | :*Ver pag. 204 a 208 de <ref name="SHENOI2006"/> | ||
− | |||
*Filtros Analógicos: | *Filtros Analógicos: | ||
:* Transformações de frequência de filtros analógicos | :* Transformações de frequência de filtros analógicos | ||
Linha 513: | Linha 538: | ||
::*Substituição de variáveis <math> p = \frac {B s} {s^2 + \omega_0^2}</math> | ::*Substituição de variáveis <math> p = \frac {B s} {s^2 + \omega_0^2}</math> | ||
::*Cálculo do protótipo com <math> \Omega_s = \Bigg| \frac {B \omega_s} {-\omega_s^2 + \omega_0^2}\Bigg|</math> | ::*Cálculo do protótipo com <math> \Omega_s = \Bigg| \frac {B \omega_s} {-\omega_s^2 + \omega_0^2}\Bigg|</math> | ||
− | :: onde <math> B = \omega_{p2} - \omega_{p1}</math> e <math> \omega_0 = \sqrt{\omega_{p2} \omega_{p1}}</math> | + | :: onde <math> B = \omega_{p2} - \omega_{p1}</math> e <math> \omega_0 = \sqrt{\omega_{p2} \omega_{p1}}</math> |
+ | ;Aula 11 (30 ago): | ||
:* 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]. | :* 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], [http://www.mathworks.com/help/signal/ug/special-topics-in-iir-filter-design.html Special Topics in IIR Filter Design]. | :*Ver em [http://www.mathworks.com/help/signal/ug/iir-filter-design.html IIR Filter Design], [http://www.mathworks.com/help/signal/ug/special-topics-in-iir-filter-design.html Special Topics in IIR Filter Design]. | ||
Linha 521: | Linha 547: | ||
:*Ver pag. 208 a 218 de <ref name="SHENOI2006"/> | :*Ver pag. 208 a 218 de <ref name="SHENOI2006"/> | ||
− | |||
*Exemplos de Filtros Analógicos: | *Exemplos de Filtros Analógicos: | ||
:* Exemplo 1: Filtro passa-baixas (<math> f_p </math> = 941Hz, <math> f_s </math> = 1209 Hz, <math> A_p </math> = 1 dB, <math> A_s </math> = 20 dB) | :* Exemplo 1: Filtro passa-baixas (<math> f_p </math> = 941Hz, <math> f_s </math> = 1209 Hz, <math> A_p </math> = 1 dB, <math> A_s </math> = 20 dB) | ||
Linha 530: | Linha 555: | ||
:::*onde <math> f_p </math> (<math> \omega_p </math>) é a frequência de passagem em Hz (rad/s), <math> f_s </math> (<math> \omega_s </math>) é a frequência de rejeição em Hz (rad/s), <math> f_0 </math> (<math> \omega_0 </math>) é a frequência central em Hz (rad/s), <math> B </math> (<math> B\omega </math>) é a largura de banda em Hz (rad/s). | :::*onde <math> f_p </math> (<math> \omega_p </math>) é a frequência de passagem em Hz (rad/s), <math> f_s </math> (<math> \omega_s </math>) é a frequência de rejeição em Hz (rad/s), <math> f_0 </math> (<math> \omega_0 </math>) é a frequência central em Hz (rad/s), <math> B </math> (<math> B\omega </math>) é 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. | :::*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 | + | |
+ | ;Aula 12 (4 set): | ||
*Filtros Digitais: Filtros IIR: transformações do tempo contínuo no tempo discreto | *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 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) | :*Transformação bilinear (pode ser usada para todos tipos de filtro) | ||
− | ::*Obter a especificação do filtro em angulo entre 0 e 1, onde 1 corresponde a metade da frequência de amostragem (fa/2) | + | ::*Obter a especificação do filtro em angulo entre 0 e 1, onde 1 corresponde a metade da frequência de amostragem <math> (fa/2) </math> |
− | ::*Obter o valor desse angulo predistorcido para compensar a distorção na | + | ::*Obter o valor desse angulo predistorcido <math> \lambda </math> para compensar a distorção na frequência causada pela transformação bilinear <math> \lambda= 2 tan \left (\frac{\theta \pi}{2} \right ) </math>, onde <math> \theta = \frac{f}{f_a/2} = \frac{\omega}{\omega_a /2} </math> |
− | : | + | :*passa-baixas (<math> \Omega_p= 1 </math>) -> passa-baixas (<math> \lambda_p</math>) |
+ | ::*Substituição de variáveis <math> p = \frac{s}{\lambda_p}</math> | ||
+ | ::*Cálculo do protótipo com <math> \Omega_s = \frac{\lambda_s}{\lambda_p}</math> | ||
− | :*passa-baixas (<math> \Omega_p= 1 </math>) -> passa- | + | :*passa-baixas (<math> \Omega_p= 1 </math>) -> passa-altas (<math> \lambda_p</math>) |
− | ::*Substituição de variáveis <math> p = \frac{ | + | ::*Substituição de variáveis <math> p = \frac{\lambda_p} {s}</math> |
− | ::*Cálculo do protótipo com <math> \Omega_s = \frac{\ | + | ::*Cálculo do protótipo com <math> \Omega_s = \frac{\lambda_p}{\lambda_s}</math> |
− | :*passa-baixas (<math> \Omega_p= 1 </math>) -> passa- | + | :*passa-baixas (<math> \Omega_p= 1 </math>) -> passa-faixa (<math> \lambda_0 </math> e <math> B </math>) |
− | ::*Substituição de variáveis <math> p = \frac{\ | + | ::*Substituição de variáveis <math> p = \frac{s^2 + \lambda_0^2} {B s}</math> |
− | ::*Cálculo do protótipo com <math> \Omega_s = \frac{\ | + | ::*Cálculo do protótipo com <math> \Omega_s = \Bigg|\frac{-\lambda_s^2 + \lambda_0^2} {B \lambda_s}\Bigg|</math> |
+ | :: onde <math> B = \lambda_{p2} - \lambda_{p1}</math> e <math> \lambda_0 = \sqrt{\lambda_{p2} \lambda_{p1}}</math> | ||
− | + | :*passa-baixas (<math> \Omega_p= 1 </math>) -> rejeita-faixa (<math> \lambda_0 </math> e <math> B </math>) | |
− | + | ::*Substituição de variáveis <math> p = \frac {B s} {s^2 + \lambda_0^2}</math> | |
− | + | ::*Cálculo do protótipo com <math> \Omega_s = \Bigg| \frac {B \lambda_s} {-\lambda_s^2 + \lambda_0^2}\Bigg|</math> | |
− | + | :: onde <math> B = \lambda_{p2} - \lambda_{p1}</math> e <math> \lambda_0 = \sqrt{\lambda_{p2} \lambda_{p1}}</math> | |
− | |||
− | :*passa-baixas (<math> \Omega_p= 1 </math>) -> rejeita-faixa (<math> \ | ||
− | ::*Substituição de variáveis <math> p = \frac {B s} {s^2 + \ | ||
− | ::*Cálculo do protótipo com <math> \Omega_s = \Bigg| \frac {B \ | ||
− | :: onde <math> B = \ | ||
:*Ver pag. 219 a 229 de <ref name="SHENOI2006"/> | :*Ver pag. 219 a 229 de <ref name="SHENOI2006"/> | ||
:*Ver pag. 403 a 415 e 434 a 435 de <ref name="DINIZ2014"/> | :*Ver pag. 403 a 415 e 434 a 435 de <ref name="DINIZ2014"/> | ||
− | ;Aula | + | ;Aula 13 e 14 (6 e 11 set): |
*Filtros Digitais: Filtros IIR: Uso do Matlab. | *Filtros Digitais: Filtros IIR: Uso do Matlab. | ||
::*Ver as funções de discretização usadas no Matlab: [http://www.mathworks.com/help/signal/ref/bilinear.html bilinear], [http://www.mathworks.com/help/signal/ref/impinvar.html impinvar] | ::*Ver as funções de discretização usadas no Matlab: [http://www.mathworks.com/help/signal/ref/bilinear.html bilinear], [http://www.mathworks.com/help/signal/ref/impinvar.html impinvar] | ||
Linha 569: | Linha 593: | ||
:* Outros tipos de filtros IIR: [http://www.mathworks.com/help/signal/ref/yulewalk.html yulewalk], [https://www.mathworks.com/help/dsp/ref/iirnotch.html iirnotch], [https://www.mathworks.com/help/dsp/ref/iirpeak.html iirpeak], [https://www.mathworks.com/help/dsp/ref/iircomb.html iircomb],[http://www.mathworks.com/help/signal/ref/filtfilt.html filtfilt], [http://www.mathworks.com/help/signal/ref/maxflat.html maxflat], [http://www.mathworks.com/help/signal/ref/invfreqz.html invfreqz] e outros filtros de [http://www.mathworks.com/help/signal/ug/parametric-modeling.html modelagem paramétrica]. | :* Outros tipos de filtros IIR: [http://www.mathworks.com/help/signal/ref/yulewalk.html yulewalk], [https://www.mathworks.com/help/dsp/ref/iirnotch.html iirnotch], [https://www.mathworks.com/help/dsp/ref/iirpeak.html iirpeak], [https://www.mathworks.com/help/dsp/ref/iircomb.html iircomb],[http://www.mathworks.com/help/signal/ref/filtfilt.html filtfilt], [http://www.mathworks.com/help/signal/ref/maxflat.html maxflat], [http://www.mathworks.com/help/signal/ref/invfreqz.html invfreqz] e outros filtros de [http://www.mathworks.com/help/signal/ug/parametric-modeling.html modelagem paramétrica]. | ||
− | + | ||
{{collapse bottom}} | {{collapse bottom}} | ||
Linha 575: | Linha 599: | ||
===Unidade 3=== | ===Unidade 3=== | ||
− | + | ||
− | ;Aula | + | ;Aula 15 (13 set): |
*Filtros Digitais: Filtros FIR | *Filtros Digitais: Filtros FIR | ||
:*Filtros de fase linear: simétricos e antisimétricos (Tipo 1, 2, 3 e 4) | :*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) | :*Filtros de fase linear: propriedades (respostas em frequência possíveis, distribuição dos zeros em simetria quadrantal) | ||
− | ;Aula 18 | + | ;Aula 16 (18 set) |
:*Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS | :*Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS | ||
::*Passa-baixas (''Low-pass'') | ::*Passa-baixas (''Low-pass'') | ||
Linha 593: | Linha 617: | ||
:*Janela retangular, fenômeno de Gibbs | :*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 wvtool], [http://www.mathworks.com/help/signal/ref/window.html window] | :*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 wvtool], [http://www.mathworks.com/help/signal/ref/window.html window] | ||
Linha 617: | Linha 640: | ||
* em todas as janelas <math>w\left ( n \right ) = 0 </math> quando <math> \left | n \right | \ge 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 | ::onde <math>M </math> é <math>N/2</math> para <math>N</math> par e <math>(N+1)/2</math> para <math>N</math> impar | ||
− | + | *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]. | |
− | + | ::ver também [http://mathworld.wolfram.com/ApodizationFunction.html apodization function] | |
− | *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 | ||
<syntaxhighlight lang=matlab> | <syntaxhighlight lang=matlab> | ||
L = 64; | L = 64; | ||
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L)); | wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L)); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | ;Aula 17 (20 set) | ||
+ | Aula suspenda - participação no SEPEI 2018 | ||
+ | |||
+ | ;Aula 18 (25 set) | ||
+ | *Filtros Digitais: Projeto de filtro FIR utilizando janelas temporais fixas | ||
+ | |||
;Tabela 5.1: | ;Tabela 5.1: | ||
{| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:center; font-size:100%" bgcolor="#efefef" | {| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:center; font-size:100%" bgcolor="#efefef" | ||
Linha 638: | Linha 667: | ||
{{tabFIRwindow | Bohman | 46.0| 51.84 | 7.01<math>\pi</math>/M}} | {{tabFIRwindow | Bohman | 46.0| 51.84 | 7.01<math>\pi</math>/M}} | ||
{{tabFIRwindow | Parzen | 53.1| 56.89 |}} | {{tabFIRwindow | Parzen | 53.1| 56.89 |}} | ||
− | {{tabFIRwindow | | + | {{tabFIRwindow | Blackman | 58.1| 75.25 | 5.56<math>\pi</math>/M}} |
{{tabFIRwindow | Flat Top | 88.0| 106.3| }} | {{tabFIRwindow | Flat Top | 88.0| 106.3| }} | ||
− | {{tabFIRwindow | | + | {{tabFIRwindow | Blackman-Harris | 92.1| 108.8 |}} |
{{tabFIRwindow | Nutfall | 93.8| 109.7|}} | {{tabFIRwindow | Nutfall | 93.8| 109.7|}} | ||
|} | |} | ||
:*Dados acima obtidos para um filtro passa baixas de ordem N = 64 com <math>\omega_{c} = 0.5 \pi</math> | :*Dados acima obtidos para um filtro passa baixas de ordem N = 64 com <math>\omega_{c} = 0.5 \pi</math> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
:*Projeto de filtro FIR utilizando janelas temporais fixas. | :*Projeto de filtro FIR utilizando janelas temporais fixas. | ||
Linha 675: | Linha 697: | ||
:* Projeto de filtro FIR. | :* Projeto de filtro FIR. | ||
::*Projete os dois filtros projetados anteriormente como IIR, utilizando 3 janelas diferentes. Compare os filtros obtidos com os filtros IIR. | ::*Projete os dois filtros projetados anteriormente como IIR, utilizando 3 janelas diferentes. Compare os filtros obtidos com os filtros IIR. | ||
+ | <syntaxhighlight lang=matlab> | ||
+ | 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) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | :*Ver pag. 256 a 265 de <ref name="SHENOI2006"/> | ||
+ | :*Ver artigos: | ||
+ | ::*[https://ieeexplore-ieee-org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=21693 A new window and comparison to standard windows] Yeong Ho Ha ; Pearce, J.A. IEEE Transactions on Acoustics, Speech, and Signal Processing, Feb. 1989, Vol.37(2), pp.298-301. | ||
+ | ::*[https://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?arnumber=1163506 Some windows with very good sidelobe behavior] Nuttall, A. IEEE Transactions on Acoustics, Speech, and Signal Processing, February 1981, Vol.29(1), pp.84-91 | ||
− | ;Aula | + | ;Aula 19 (27 set): |
*Filtros Digitais: Filtros FIR | *Filtros Digitais: Filtros FIR | ||
*Projeto de filtro FIR utilizando janelas temporais ajustáveis | *Projeto de filtro FIR utilizando janelas temporais ajustáveis | ||
Linha 694: | Linha 729: | ||
<math> N = \frac {\alpha - 8} {2.285 \Delta \omega} + 1. </math> | <math> N = \frac {\alpha - 8} {2.285 \Delta \omega} + 1. </math> | ||
− | + | onde <math> \alpha </math> é a atenuação do lóbulo lateral e <math> \Delta \omega </math> é a largura da banda de transição em rad/amostra. | |
+ | |||
+ | A janela de Kaiser é definida por: | ||
+ | |||
+ | <math> w(n) = \frac{I_0 \left(\beta \sqrt{1-(\frac{n-\alpha}{\alpha})^2} \right)}{I_0(\beta)} </math> | ||
+ | |||
+ | onde :<math> I_0(x) = 1+ \sum_{k=1}^\infty {\left( \frac{(\frac{x}{2})^k}{k!}\right)}^2 </math> é a função de Bessel de ordem zero [http://mathworld.wolfram.com/ModifiedBesselFunctionoftheFirstKind.html] | ||
Utilizando o Matlab é possível estimar esses valores utilizando a função kaiserord. Exemplo da obtenção de um filtro passa baixa com <math> f_{pass} = 1000 Hz </math>, <math> f_{stop} = 1500 Hz </math>, <math> f_{amostragem} = 8000 Hz </math> atenuação de 40 dB na "stopband" | Utilizando o Matlab é possível estimar esses valores utilizando a função kaiserord. Exemplo da obtenção de um filtro passa baixa com <math> f_{pass} = 1000 Hz </math>, <math> f_{stop} = 1500 Hz </math>, <math> f_{amostragem} = 8000 Hz </math> atenuação de 40 dB na "stopband" | ||
Linha 729: | Linha 770: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ;Aula | + | ;Aula 20 (02 out) |
+ | *Filtros Digitais: Filtros FIR | ||
:*Filtro de Parks-McClellan. Funções [http://www.mathworks.com/help/signal/ref/firpm.html firpm] e [http://www.mathworks.com/help/signal/ref/firpmord.html firpmord]. | :*Filtro de Parks-McClellan. Funções [http://www.mathworks.com/help/signal/ref/firpm.html firpm] e [http://www.mathworks.com/help/signal/ref/firpmord.html firpmord]. | ||
:*[http://mathworld.wolfram.com/RemezAlgorithm.html Remez exchange algorithm] - o básico em Wolfram Alpha | :*[http://mathworld.wolfram.com/RemezAlgorithm.html Remez exchange algorithm] - o básico em Wolfram Alpha | ||
Linha 735: | Linha 777: | ||
:*[http://www.ee.ic.ac.uk/hp/staff/dmb/courses/DSPDF/00700_OptimalFIR.pdf] | :*[http://www.ee.ic.ac.uk/hp/staff/dmb/courses/DSPDF/00700_OptimalFIR.pdf] | ||
− | * | + | *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. | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang=matlab> | ||
+ | %% Projetar o filtro passa baixas | ||
+ | fp = 1200 Hz; | ||
+ | fs = 1380 Hz; | ||
+ | fa = 8000 Hz; | ||
+ | Ap = 1 dB; | ||
+ | Ar = 50 dB; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | <syntaxhighlight lang=matlab> | ||
+ | %% Projetar o filtro passa altas | ||
+ | fs = 1200 Hz; | ||
+ | fp = 1380 Hz; | ||
+ | fa = 8000 Hz; | ||
+ | Ap = 1 dB; | ||
+ | Ar = 50 dB; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ;Aula 21 (04 out) | ||
+ | |||
+ | *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. | ||
+ | |||
+ | <syntaxhighlight lang=matlab> | ||
+ | %% 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; | ||
+ | </syntaxhighlight> | ||
+ | |||
<syntaxhighlight lang=matlab> | <syntaxhighlight lang=matlab> | ||
− | %% | + | %% Projetar o filtro rejeita faixa |
− | + | fp1 = 800 Hz; | |
− | + | fs1 = 900 Hz; | |
− | + | fs2 = 1000 Hz; | |
+ | fp2 = 1300 Hz; | ||
+ | fa = 8000 Hz; | ||
Ap = 1 dB; | Ap = 1 dB; | ||
− | Ar = | + | Ar = 50 dB; |
</syntaxhighlight> | </syntaxhighlight> | ||
− | -- | + | |
+ | ;Aula 22 (09 out) | ||
+ | :*Uso do [http://la.mathworks.com/help/dsp/ug/use-fdatool-with-dsp-system-toolbox-software.html] para projeto de filtro IIR, FIR equiripple e FIR com janela. | ||
+ | *Uso do [http://la.mathworks.com/help/dsp/gs/design-and-implement-a-filter.html] no Simulink. | ||
+ | |||
+ | ;Aula 23 (23 out): | ||
+ | :*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]. | ||
+ | ::*[https://www.mathworks.com/help/simulink/gs/create-a-simple-model.html?s_cid=learn_doc Create Simple Model] [https://www.mathworks.com/videos/getting-started-with-simulink-118723.html] | ||
+ | |||
+ | ;Aula 24 (25 out): | ||
+ | :*Uso do Simulink | ||
+ | :*Tipos de Solver ([http://www.mathworks.com/help/simulink/ug/choosing-a-solver.html Choose a Solver]). | ||
+ | :*Diferença entre processamento por amostra e processamento por quadro ([http://www.mathworks.com/help/dsp/ug/sample-and-frame-based-concepts.html Sample- and Frame-Based Concepts]). | ||
+ | :*Exemplos: | ||
+ | ::*[https://www.mathworks.com/help/dsp/ug/filter-frames-of-a-noisy-sine-wave-signal-in-simulink.html Filtragem] - frame based | ||
+ | ::*[[Modulações Analógicas]] | ||
+ | ::*[[Amostragem de sinais]] | ||
+ | ::*[https://www.mathworks.com/help/dsp/ug/digital-filter-design-block.html Digital Filter Design Block], [https://www.mathworks.com/help/dsp/ref/digitalfilterdesign.html], [https://www.mathworks.com/help/dsp/ref/filterrealizationwizard.html] | ||
+ | |||
+ | :::*É 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/types-of-solvers.html Types of Solvers], [http://www.mathworks.com/help/simevents/ug/solvers-for-simevents-models.html Solvers for Discrete-Event Systems]. | ||
+ | |||
+ | :::*É 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/simulink/slref/concatenate.html Vector Concatenate, Matrix Concatenate] | ||
+ | Para configurar o Simulink para sistemas discretos execute o comando dspstartup.m antes de abrir um novo modelo. | ||
+ | |||
+ | ;Aula 25 (ESTUDOS EXTRACLASSE): | ||
+ | para compensar a palestra da MCC | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | {{collapse top| Unidade 4}} | + | {{collapse top| Unidade 4}} |
+ | |||
===Unidade 4=== | ===Unidade 4=== | ||
− | + | ;Aula 29 (1 nov): | |
− | ;Aula | ||
*Realização de Filtros | *Realização de Filtros | ||
:* Realização de filtros FIR: Forma Direta. | :* Realização de filtros FIR: Forma Direta. | ||
Linha 778: | Linha 889: | ||
<center>[[Arquivo:FIR_AntiSym4_MathWorks.png |600 px]]</center> | <center>[[Arquivo:FIR_AntiSym4_MathWorks.png |600 px]]</center> | ||
<center> Figura 7 - Realização de filtros FIR de fase linear Antisimétrico IV</center> | <center> Figura 7 - Realização de filtros FIR de fase linear Antisimétrico IV</center> | ||
− | :* Realização de Filtros FIR [http:// | + | :* Realização de Filtros FIR [http://la.mathworks.com/help/dsp/ug/using-filter-designer.html usando o FDATool] |
:* Estudar [http://www.mathworks.com/help/simulink/slref/discretefirfilter.html estrutura de filtros disrcetos FIR no Matlab], [http://www.mathworks.com/help/dsp/ref/filterrealizationwizard.html Filter Realization Wizard - Reference], [http://www.mathworks.com/help/dsp/ug/filter-realization-wizard.html Filter Realization Wizard - User Guide]. | :* Estudar [http://www.mathworks.com/help/simulink/slref/discretefirfilter.html estrutura de filtros disrcetos FIR no Matlab], [http://www.mathworks.com/help/dsp/ref/filterrealizationwizard.html Filter Realization Wizard - Reference], [http://www.mathworks.com/help/dsp/ug/filter-realization-wizard.html Filter Realization Wizard - User Guide]. | ||
:*Ver pag. 303 a 312 de <ref name="SHENOI2006"/>. | :*Ver pag. 303 a 312 de <ref name="SHENOI2006"/>. | ||
− | |||
:* Realização de Filtros usando o comando [http://www.mathworks.com/help/dsp/ref/realizemdl.html realizemdl] do MatLab | :* Realização de Filtros usando o comando [http://www.mathworks.com/help/dsp/ref/realizemdl.html realizemdl] do MatLab | ||
<syntaxhighlight lang=matlab> | <syntaxhighlight lang=matlab> | ||
Linha 809: | Linha 919: | ||
realizemdl(hFIR,'MapCoeffsToPorts','on'); | realizemdl(hFIR,'MapCoeffsToPorts','on'); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | ;Aula 30-31 (6-8 nov): | ||
:* Realização de filtros IIR de 2ª ordem: Forma Direta I e II, e Forma Transposta I e II. | :* Realização de filtros IIR de 2ª ordem: Forma Direta I e II, e Forma Transposta I e II. | ||
:<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> | :<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> | ||
Linha 862: | Linha 975: | ||
:*Função para projeto de filtros - [http://www.mathworks.com/help/signal/ref/designfilt.html designfilt] | :*Função para projeto de filtros - [http://www.mathworks.com/help/signal/ref/designfilt.html designfilt] | ||
− | |||
* Realização de filtros FIR: Cascata, Polifase | * Realização de filtros FIR: Cascata, Polifase | ||
:*Vantagens do uso de filtro Polifase: | :*Vantagens do uso de filtro Polifase: | ||
Linha 868: | Linha 980: | ||
::2) Para reduzir o harware a ser implementado, é possível implementar apenas uma das "fases" do filtro e trocar "D" vezes os coeficientes. | ::2) Para reduzir o harware a ser implementado, é possível implementar apenas uma das "fases" do filtro e trocar "D" vezes os coeficientes. | ||
::* Ver [http://www.mathworks.com/help/dsp/ref/polyphase.html polyphase], [http://www.mathworks.com/help/dsp/ref/mfilt.firdecim.html mfilt.firdecim], [http://www.mathworks.com/help/dsp/ref/dsp.firdecimator-class.html dsp.FIRDecimator] | ::* Ver [http://www.mathworks.com/help/dsp/ref/polyphase.html polyphase], [http://www.mathworks.com/help/dsp/ref/mfilt.firdecim.html mfilt.firdecim], [http://www.mathworks.com/help/dsp/ref/dsp.firdecimator-class.html dsp.FIRDecimator] | ||
− | |||
− | ;Aula | + | ;Aula 32 (13 nov) |
− | |||
− | |||
− | |||
*Filtros Digitais: Quantização | *Filtros Digitais: Quantização | ||
:*Ver [https://www.mathworks.com/help/dsp/ref/fixed-point-filter-properties.html Fixed-Point Filter Properties] | :*Ver [https://www.mathworks.com/help/dsp/ref/fixed-point-filter-properties.html Fixed-Point Filter Properties] | ||
Linha 889: | Linha 997: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
:*Ler [http://www.clivemaxfield.com/diycalculator/sp-round.shtml Tipos de arredondamento], [https://www.eetimes.com/document.asp?doc_id=1274485 An introduction to different rounding algorithms] | :*Ler [http://www.clivemaxfield.com/diycalculator/sp-round.shtml Tipos de arredondamento], [https://www.eetimes.com/document.asp?doc_id=1274485 An introduction to different rounding algorithms] | ||
+ | *Sobre ponto flutuante [https://baseconvert.com/ieee-754-floating-point] | ||
− | ;Aula | + | ===ATUAL=== |
− | + | ;Aula 33 (20 nov) | |
− | + | *Utilizando o filtro projetado na AE1, 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, esporte o modelo do filtro para o Simulink. |
− | :: | ||
− | : | ||
− | |||
− | + | Gustavo e Kleiton - Fazer a realização do filtro LP (Kaiser) IIR e FIR | |
− | + | Maria e Paulo - Fazer a realização do filtro HP (Kaiser) IIR e FIR | |
− | + | Marina e Renan - Fazer a realização do filtro HP (Kaiser) IIR e FIR | |
− | |||
− | - | ||
{{collapse bottom}} | {{collapse bottom}} | ||
{{collapse top| Unidade 5 - PROJETO FINAL}} | {{collapse top| Unidade 5 - PROJETO FINAL}} | ||
+ | |||
===Unidade 5 - PROJETO FINAL=== | ===Unidade 5 - PROJETO FINAL=== | ||
<!-- | <!-- | ||
Linha 1 001: | Linha 1 103: | ||
*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 | *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 | ||
− | |||
− | |||
− | |||
− | |||
− | {{collapse top | | + | {{collapse top | 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 IIR e FIR. Os detalhes de cada filtro são indicados na tabela abaixo. Para todos os filtros considere a frequencia de amostragem como sendo <math> f_a = 8 kHz </math>. | |
− | + | Todas equipes tem filtros com As = 20, 30, 40, e Ap = 0.5, 1. 2 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef" | {| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef" | ||
− | ! scope="col" width= | + | ! scope="col" width=10% align="left"| Equipe |
− | ! scope="col" width= | + | ! scope="col" width=15% align="center"| Filtro 1 |
− | + | ! scope="col" width=15% align="center"| Filtro 2 | |
− | + | ! scope="col" width=20% align="center"| Filtro 3 | |
− | | | ||
− | |||
− | | | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | | + | | Equipe 1 (Maria e Paulo) |
+ | | LP - (f1 = 500 Hz; f2 = 800 Hz, Ap = 1 dB, As = 30 dB, GdB = 0 dB) | ||
+ | | HP - (f1 = 500 Hz; f2 = 800 Hz, Ap = 2 dB, As = 20 dB, GdB = 10 dB) | ||
+ | | BP - (f1 = 700 Hz; f2 = 800 Hz, f3 = 900 Hz; f4 = 1150 Hz, Ap = 0.5 dB, As = 40 dB, GdB = 0 dB) | ||
|- | |- | ||
− | | | + | | Equipe 2 (Gustavo e Kleiton) |
+ | | LP - (f1 = 1000 Hz; f2 = 1300 Hz, Ap = 2 dB, As = 30 dB, GdB = 5 dB) | ||
+ | | HP - (f1 = 1000 Hz; f2 = 1300 Hz, Ap = 0.5 dB, As = 40 dB, GdB = 0 dB) | ||
+ | | BP - (f1 = 1000 Hz; f2 = 1200 Hz, f3 = 1250 Hz; f4 = 1300 Hz, Ap = 1 dB, As = 20 dB, GdB = 0 dB) | ||
|- | |- | ||
− | | | + | | Equipe 3 (Renan e Marina) |
+ | | LP - (f1 = 2800 Hz; f2 = 3200 Hz, Ap = 1 dB, As = 40 dB, GdB = 0 dB) | ||
+ | | HP - (f1 = 2800 Hz; f2 = 3200 Hz, Ap = 0.5 dB, As = 20 dB, GdB = 0 dB) | ||
+ | | BP - (f1 = 3000 Hz; f2 = 3200 Hz, f3 = 3400 Hz; f4 = 3500 Hz, Ap = 2 dB, As = 30 dB, GdB = -10 dB) | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | :onde: | ||
+ | :: LP (''Low Pass'')- Passa Baixa, HP (''High Pass'')- Passa Altas, BP (''Band Pass'')- Passa Faixa, BS (''Band Stop'')- Rejeita Faixa | ||
+ | :: <math> f_N </math> - são as "N" frequência de especificação do filtro dadas em Hertz (kHz ou MHz); | ||
+ | :: <math> f_p </math> - frequência de passagem; <math> f_r </math> - frequência de rejeição, <math> A_p </math> - Atenuação máxima na banda de passagem (dB), <math> A_r </math> - Atenuação mínima na banda de rejeição (dB), <math> G_p </math> - Ganho médio na banda de passagem (dB). | ||
+ | Alguns detalhes sobre o projeto dos filtros para cada equipe. | ||
{| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef" | {| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef" | ||
! scope="col" width=10% align="left"| Equipe | ! scope="col" width=10% align="left"| Equipe | ||
Linha 1 090: | Linha 1 144: | ||
! scope="col" width=15% align="center"| Filtro 2 | ! scope="col" width=15% align="center"| Filtro 2 | ||
! scope="col" width=20% align="center"| Filtro 3 | ! scope="col" width=20% align="center"| Filtro 3 | ||
− | |||
|- | |- | ||
| Equipe 1 | | Equipe 1 | ||
− | | | + | | IIR - Chebyshev I, FIR - Janela Fixa |
− | | | + | | IIR - Butterworth, FIR - Janela Ajustável |
− | | | + | | IIR - Eliptico, FIR - PM |
− | |||
|- | |- | ||
| Equipe 2 | | Equipe 2 | ||
− | | | + | | IIR - Butterworth, FIR - Janela Ajustável |
− | | | + | | IIR - Chebyshev II, FIR - Janela Fixa |
− | | | + | | IIR - Eliptico, FIR - PM |
− | |||
|- | |- | ||
| Equipe 3 | | Equipe 3 | ||
− | | | + | | IIR - Eliptico, FIR - Janela Fixa |
− | + | | IIR - Butterworth, FIR - Janela Ajustável | |
− | + | | IIR - Chebyshev II, 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. | |
− | :*Os filtros | + | :* 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. |
− | :* | + | :* Se desejar use o Simulink para testar a resposta de frequencia dos filtros projetados (2 PONTOS de BONUS). |
− | :* | + | |
− | :* | + | ;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: | ||
[[Arquivo:KaiserFIR.png| 600 px | Resposta em frequência - Ganho em dB ]] [[Arquivo:KaiserFIRZoom.png |600 px | Detalhe da banda de passagem da resposta em frequência - Ganho em dB]] | [[Arquivo:KaiserFIR.png| 600 px | Resposta em frequência - Ganho em dB ]] [[Arquivo:KaiserFIRZoom.png |600 px | 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 [https://www.mathworks.com/help/signal/ref/grpdelay.html 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. | :* Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Não é necessário apresentar a teoria utilizado para o projeto, mas todos os cálculos e metodologia utilizada devem estar documentados. | ||
− | :* Envie o relatório em pdf e os arquivos ".m" | + | :* 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. | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | + | ===ATUAL=== | |
− | + | {{collapse top | expand=true| AP2 - Projeto de um Detector de DTMF (Entrega e prazos ver Moodle)}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | {{collapse top | | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* Projeto de um receptor [https://pt.wikipedia.org/wiki/DTMF DTMF]. | * Projeto de um receptor [https://pt.wikipedia.org/wiki/DTMF DTMF]. | ||
− | :* cada equipe deverá projetar os discriminadores de frequências | + | :* cada equipe deverá projetar os discriminadores de frequências do sistema DTMF que permitam discriminar os números indicados na tabela abaixo. |
{| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef" | {| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef" | ||
! scope="col" width=20% align="left"| Equipe | ! scope="col" width=20% align="left"| Equipe | ||
− | |||
− | |||
! scope="col" width=20% align="center"| Teclas | ! scope="col" width=20% align="center"| Teclas | ||
− | ! scope="col" width=20% align="center"| Fator (N) | + | ! scope="col" width=20% align="center"| Fator subamostragem (N) |
|- | |- | ||
− | | | + | | E1 || 7, 9, 5, 2, # || 6 |
|- | |- | ||
− | | | + | | E2 || 4, 5, 3, 8, 0 || 10 |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | | + | | E3 || 2, 3, 4, 9, * || 14 |
|} | |} | ||
− | ::* A frequência de amostragem ''fa2'' do sinal de entrada no sistema mostrado abaixo é de 44,1/N kHz, no entanto o sinal gerado no AUDACITY é amostrado em fa1 = 44,1 kHz, portanto antes do circuito abaixo é necessário incluir um filtro antialiasing (low pass) com fc = (44,1/2)/N kHz e um circuito para subamostrar (downsampling) o sinal com fa1 = 44,1 kHz. | + | ::* A frequência de amostragem ''fa2'' do sinal de entrada no sistema mostrado abaixo é de 44,1/N kHz, no entanto o sinal gerado no AUDACITY é amostrado em fa1 = 44,1 kHz, portanto antes do circuito abaixo é necessário incluir um filtro antialiasing (low pass) com fc = (44,1/2)/N kHz e um circuito para subamostrar (downsampling) o sinal com fa1 = 44,1 kHz. Esse filtro deverá ser do tipo IIR, sendo de aproximação Butterworth ou Chebyshev tipo 1, para que tenha uma resposta de frequência monotonicamente decrescente após a frequência de corte Assim o sistema terá duas frequências de amostragem, '''fa1 = 44,1 kHz''' até o subamostrador e '''fa2 = 44,1/N kHz''' depois deste circuito. |
:* As especificações do discriminador de frequência, mostrado na figura, são: | :* As especificações do discriminador de frequência, mostrado na figura, são: | ||
<center> [[Arquivo:DiscriminadorDTMF.png]]</center> | <center> [[Arquivo:DiscriminadorDTMF.png]]</center> | ||
Linha 1 208: | Linha 1 214: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
De acordo com [http://www.etsi.org/deliver/etsi_es/201200_201299/20123502/01.01.01_60/es_20123502v010101p.pdf ETSI ES 201 235-2 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 3: Transmitters] as características dos componentes do transmissor são: | De acordo com [http://www.etsi.org/deliver/etsi_es/201200_201299/20123502/01.01.01_60/es_20123502v010101p.pdf ETSI ES 201 235-2 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 3: Transmitters] as características dos componentes do transmissor são: | ||
+ | |||
<code> | <code> | ||
High group: signalling frequencies , which have nominal values of 1 209 Hz, 1 336 Hz, 1 477 Hz and 1 633 Hz | High group: signalling frequencies , which have nominal values of 1 209 Hz, 1 336 Hz, 1 477 Hz and 1 633 Hz | ||
Low group: signalling frequencies, which have nominal values of 697 Hz, 770 Hz, 852 Hz and 941 Hz | Low group: signalling frequencies, which have nominal values of 697 Hz, 770 Hz, 852 Hz and 941 Hz | ||
The tolerances of the output frequencies shall be within ±1,5 % of their nominal values. | The tolerances of the output frequencies shall be within ±1,5 % of their nominal values. | ||
− | The sending levels when the DTMF transmitter is terminated with the reference impedance ZR, | + | The sending levels when the DTMF transmitter is terminated with the reference impedance ZR,shall be: |
- for the high frequency group: -9,0 dBV, +2,0 dB / -2,5 dB; | - for the high frequency group: -9,0 dBV, +2,0 dB / -2,5 dB; | ||
- for the low frequency group: -11,0 dBV, +2,5 dB / -2,0 dB | - for the low frequency group: -11,0 dBV, +2,5 dB / -2,0 dB | ||
where dBV - Absolute voltage level expressed in decibels relative to 1 volt. | where dBV - Absolute voltage level expressed in decibels relative to 1 volt. | ||
− | The duration of any individual DTMF tone combination sent shall not be less than 65 ms. The duration of the pause between any individual DTMF tone combination shall not be less than 65 ms. | + | The duration of any individual DTMF tone combination sent shall not be less than 65 ms. |
+ | The duration of the pause between any individual DTMF tone combination shall not be less than 65 ms. | ||
+ | </syntaxhighlight> | ||
− | + | ::* Os filtros das linhas e das colunas devem ser do tipo FIR. As diferenças de atraso entre os filtros devem ser compensadas usados elementos de atraso (<math> z^{-n} </math>). | |
− | ::* Os filtros das linhas | + | ::* Sugere-se utilizar para o filtro do detector de envoltório um filtro IIR do tipo Butterworth. |
::* O circuito retificador deve se implementado pela função '''abs'''. | ::* O circuito retificador deve se implementado pela função '''abs'''. | ||
::* O circuito '''TC - Threshold Comparator''' não deve ser implementado, pois tem apenas a função de rejeitar sinais de entrada que estão acima de -3dBm ou abaixo de -40 dBm, | ::* O circuito '''TC - Threshold Comparator''' não deve ser implementado, pois tem apenas a função de rejeitar sinais de entrada que estão acima de -3dBm ou abaixo de -40 dBm, | ||
Linha 1 225: | Linha 1 234: | ||
:::*1) Um sinal DTMF gerado através da soma das duas frequência correspondente a linha e coluna. | :::*1) Um sinal DTMF gerado através da soma das duas frequência correspondente a linha e coluna. | ||
:::*2) Os 5 Sinal de DTMF correspondentes as 5 teclas indicadas para a equipe, com '''duração de 0,5 segundos'''. | :::*2) Os 5 Sinal de DTMF correspondentes as 5 teclas indicadas para a equipe, com '''duração de 0,5 segundos'''. | ||
− | :::*3) Um sinal DTMF correspondente a sequencia de teclas "123456789*0#" com '''duração de tom de | + | :::*3) Um sinal DTMF correspondente a sequencia de teclas "123456789*0#" com '''duração de tom de 65ms e pausa de 65ms''' para cada tecla. (ver [http://www.etsi.org/deliver/etsi_es/201200_201299/20123502/01.01.01_60/es_20123502v010101p.pdf ETSI ES 201 235-2 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 2: Transmitters]) |
− | :::* | + | :::*4) Os sinais do item (2) e (3) somados a um ruído branco, cuja relação sinal/ruído deve alterável entre 0 dB até 80 dB. |
::* A seleção do sinal de entrada pode ser feita através de '''manual switch''' ou '''multiport switch'''. | ::* A seleção do sinal de entrada pode ser feita através de '''manual switch''' ou '''multiport switch'''. | ||
::* Os discriminadores das linhas e colunas não especificados, deverão ser feitos usando filtros simples centrados nas frequências centrais das linhas e colunas correspondentes, sem a preocupação de atender as bandas de passagem e rejeição. | ::* Os discriminadores das linhas e colunas não especificados, deverão ser feitos usando filtros simples centrados nas frequências centrais das linhas e colunas correspondentes, sem a preocupação de atender as bandas de passagem e rejeição. | ||
Linha 1 237: | Linha 1 246: | ||
::* Para comprovar o funcionamento do sistema realize a simulação final do sistema no ModelSim. | ::* Para comprovar o funcionamento do sistema realize a simulação final do sistema no ModelSim. | ||
− | :* 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 | + | ;ENTREGAS: |
+ | :* Mostrar a resposta em frequência dos filtros utilizados (IIR ou FIR). | ||
+ | :* Mostrar o atraso de grupo dos filtros. | ||
+ | :* 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. | ||
+ | :* Apresentar no Simulink o sistema organizado em subsistemas/áreas. Documentar os vários subsistemas e função dos blocos. | ||
+ | :* Mostre no relatório claramente que o que foi solicitado no projeto está sendo atendido através de testes com o Simulink. | ||
+ | |||
+ | :* Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Não é necessário apresentar a teoria utilizado para o projeto, mas todos os cálculos e metodologia utilizada devem estar documentados. | ||
+ | |||
:* Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma Moodle. | :* Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma Moodle. | ||
− | '' | + | |
+ | :* ''(Opcional) As equipes que desejarem poderão programar o hardware de um kit FPGA para conferir o funcionamento do sistema. Sugere-se que a geração dos sinais DTMF seja feita utilizando um app gerador para Smartphone e usada a interface conversora A/D para capturar os sinais de entrada. '' | ||
+ | |||
+ | ;NORMAS DE DTMF: | ||
:* Ver as especificações DTMF em: | :* Ver as especificações DTMF em: | ||
* [http://www.etsi.org/deliver/etsi_es/201200_201299/20123501/01.01.01_50/es_20123501v010101m.pdf ETSI ES 201 235-1 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 1: General] | * [http://www.etsi.org/deliver/etsi_es/201200_201299/20123501/01.01.01_50/es_20123501v010101m.pdf ETSI ES 201 235-1 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 1: General] | ||
Linha 1 250: | Linha 1 270: | ||
* [http://www.sengpielaudio.com/calculator-db-volt.htm Calculador de dBV] | * [http://www.sengpielaudio.com/calculator-db-volt.htm Calculador de dBV] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | + | ||
==Referências Bibliográficas== | ==Referências Bibliográficas== | ||
<references/> | <references/> | ||
{{ENGTELECO}} | {{ENGTELECO}} |
Edição atual tal como às 13h35min de 29 de novembro de 2018
Registro on-line das aulas
Unidade 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Unidade 1
%% 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);
%% 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);
%% 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]);
|
Unidade 2 |
---|
Unidade 2
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;
%Butterworth lowpass Responses (db)
w = 0.1:0.01:10;
H=inline('10*log10(1./(1+w.^(2*n)))','w','n');
for k = 1:1:10
semilogx(w,H(w,k)); hold on;
end
grid on
%Butterworth lowpass Responses (linear)
w = 0.1:0.01:2;
H=inline('1./(1+w.^(2*n))','w','n');
for k = 1:1:10
plot(w,H(w,k)); hold on;
end
grid on
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:
%% 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');
|
Unidade 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unidade 3
L = 64;
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
Aula suspenda - participação no SEPEI 2018
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;
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;
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)
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)
|
Unidade 4 |
---|
Unidade 4
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');
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)
ATUAL
Gustavo e Kleiton - Fazer a realização do filtro LP (Kaiser) IIR e FIR Maria e Paulo - Fazer a realização do filtro HP (Kaiser) IIR e FIR Marina e Renan - Fazer a realização do filtro HP (Kaiser) IIR e FIR |
Unidade 5 - PROJETO FINAL |
---|
Unidade 5 - PROJETO FINAL |
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:
Todas equipes tem filtros com As = 20, 30, 40, e Ap = 0.5, 1. 2
Alguns detalhes sobre o projeto dos filtros para cada equipe.
|
ATUAL
AP2 - Projeto de um Detector de DTMF (Entrega e prazos ver Moodle) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
De acordo com ETSI ES 201 235-3 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 3: Receivers as características dos componentes do receptor são:
|
Referências Bibliográficas
- ↑ 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,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
- ↑ LATHI, Bhagwandas P. Sinais e Sistemas Lineares. 2. ed. Porto Alegre: Artmed-Bookman, 2007. 856 p. ISBN 978-8560031139