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
 
(170 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 5: Linha 5:
 
*[[PSD-EngTel (Plano de Ensino) | Plano de Ensino]]
 
*[[PSD-EngTel (Plano de Ensino) | Plano de Ensino]]
  
==Registro on-line das aulas==
+
== Avisos importantes==
===Unidade 1===
+
Durante o 2º semestre de 2020, devido a Pandemia do Coronavirus Sars-CoV-2, as aulas da disciplina ocorrerão de forma remota. Seguem algumas informações importantes:
;Aula 1 (29 Jul):
 
*[[PSD-EngTel (Plano de Ensino) | Apresentação da disciplina]]
 
  
*Revisão de Sinais e Sistemas no tempo discreto em Matlab:
+
*Todas os nossos encontros síncronos serão feitos usando a plataforma [https://meet.google.com/wkg-cmzv-bgh '''Google Meet'''].  Para ingressar nas aulas utilizem o email institucional (usuario@aluno.ifsc.edu.br).
:* Resposta de sistemas LTI (Experimento 1.1)
 
::* Relembrar o conceito de equação de diferenças de um sistema LTI discreto e resposta ao impulso.
 
::* Resposta ao [https://pt.wikipedia.org/wiki/Delta_de_Kronecker delta de Kronecker] do sistema LTI discreto
 
:: <math>a_0 y[n] + a_1 y[n-1] + a_2 y[n-2] + ... + a_N y[n-N] = b_0 x[n] + b_1 x[n-1] + b_2 x[n-2] + ... + b_M x[n-M]</math>
 
:: onde <math>a_0 = 1</math>, <math>a_1 = 1/\alpha</math> e <math>b_1 = 1 </math> logo <math>y[n] =   1/\alpha . y[n-1] + x[n]</math>
 
<syntaxhighlight lang=matlab>
 
%  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);
 
 
</syntaxhighlight>
 
:* Amostragem de Sinais (Experimento 1.2)
 
::* Relembrar teorema da amostragem. Efeito da amostragem abaixo da frequência de Nyquist. Aliasing.
 
::* Notar que as amostras de um sinal <math>s_1(t) = cos (2\pi \times 3 t)</math> (3 Hz) e um sinal <math>s_2(t) = cos (2\pi \times 7 t)</math> (7 Hz) são idênticas quando amostrado com um sinal de 10 Hz.  
 
  
<syntaxhighlight lang=matlab>
+
*Após cada encontro, vocês terão acesso automático as gravações das aulas na '''Pasta compartilhada no Gdrive'''.
%  Exemplos e Experimentos baseados no livro:
 
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
 
%% Experimento 1.2
 
fs = 10; % frequencia (Hz) de amostragem dos sinais
 
Ts = 1/fs; fase = 0;
 
time = 0:Ts:(1-Ts);
 
f1 = 3; % frequencia (Hz) do sinal s_1
 
f2 = 7; % frequencia (Hz) do sinal s_2
 
s_1 = cos(2*pi*f1*time+fase);
 
s_2 = cos(2*pi*f2*time+fase);
 
fsa = 1000; % frequência auxiliar de amostragem usada apenas para representação dos sinais originais
 
Tsa = 1/fsa;
 
time_aux = 0:Tsa:(1-Tsa);
 
figure(1);
 
stem(time,s_1,'ob');
 
hold on;
 
plot(time_aux, cos(2*pi*f1*time_aux+fase),'--k');
 
stem(time,s_2,'+r');
 
plot(time_aux, cos(2*pi*f2*time_aux+fase),'--m');
 
hold off;
 
legend('s_1 discreto','s_1 contínuo','s_2 discreto','s_2 contínuo')
 
</syntaxhighlight>
 
  
:* Uso do Matlab:  [http://www.mathworks.com/help/matlab/learn_matlab/help.html Help], F9 executa o código destacado no Help. [http://www.mathworks.com/help/matlab/learn_matlab/scripts.html Programação com scripts .m], [http://www.mathworks.com/help/matlab/matlab_prog/run-sections-of-programs.html?searchHighlight=script%20sections Execução de seções e variação de valores nos scripts],
+
*A documentação das aulas será disponibilizada na página da [[PSD29007-Engtelecom(2020-2) - Prof. Marcos Moecke | '''Wiki da disciplina'''.]]
:* Ver no Matlab: [http://www.mathworks.com/help/matlab/ref/zeros.html zeros], [http://www.mathworks.com/help/matlab/ref/ones.html ones], [http://www.mathworks.com/help/matlab/ref/plot.html plot], [http://www.mathworks.com/help/matlab/ref/stem.html stem], [http://www.mathworks.com/help/matlab/ref/subplot.html subplot], [http://www.mathworks.com/help/matlab/ref/filter.html filter].
 
:*[http://www.mathworks.com/help/matlab/learn_matlab/plots.html Uso de gráficos no Matlab].
 
  
:* Ver pag. 65 a 71 de <ref name="DINIZ2014"> 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 </ref>
+
*Para a entrega de atividades e avaliações será utilizada a plataforma Moodle. É necessário que vocês se autoinscrevam no [https://moodle.ifsc.edu.br/course/index.php?categoryid=2009 '''Moodle da disciplina'''] com a chave (engtelecom2020-2).
:*Ver também [http://www.mathworks.com/help/releases/R2014a/pdf_doc/matlab/index.html PDF Documentation for MATLAB]. Principalmente [http://www.mathworks.com/help/releases/R2014a/pdf_doc/matlab/getstart.pdf MATLAB Primer].
 
  
<blockquote style="background: yellow; border: 1px solid black; padding: 1em;">
+
*Para a comunicação entre professor-aluno, além dos avisos no SIGAA, utilizaremos a plataforma Slack. Inscrevam-se no [https://psd29007.slack.com/ '''Slack da disciplina''']. O aluno pode usar qualquer email para acessar ao Slack, mas recomenda-se o uso do email institucional.
;Suspensão do calendário acadêmico pela direção do Campus [http://www.sj.ifsc.edu.br/index.php/component/content/article/776-2015-07-29-20-27-02  de 30 de Julho] [http://www.sj.ifsc.edu.br/index.php/component/content/article/779-retorno-das-aulas a 1 de Outubro];
 
</blockquote>
 
  
;Aula 2-3 (2-7 Out)
+
*Para participar das aulas é recomendado que o aluno tenha disponível: 1 computador ou dispositivo móvel (smartphone ou tablet) para assistir os encontros presenciais ou gravações. É necessário um computador para utilizar os softwares e realizar atividades práticas de laboratório. O aluno deve ter acesso a '''Nuvem do IFSC''' ou instalar a '''VM''' com softwares '''Matlab/Simulink/HDL Coder'''. Acesso a Internet é fundamental, e recomenda-se que o aluno tenha um lugar silencioso para participar das aulas. O acesso ao '''Google Meet''', '''Drive''', '''Slack''', '''Moodle''' e '''Wiki''' podem ser feitos via navegador, mas a instalação das respectivas aplicações é recomendada. Recomenda-se ainda que cada aluno uso um fone de ouvido com microfone, pois isso melhora muito a qualidade do som e a interação nas vídeo conferências. Ao ingressar em um encontro síncrono mantenha sempre que possível a câmera aberta e também o microfone. Se houver algum problema de ruído você será alertado.
*Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 
:* Filtragem de Sinais (Experimentos 1.3, 2.1 e 2.2)
 
:* Uso de [http://www.mathworks.com/help/matlab/ref/residue.html residue], [http://www.mathworks.com/help/signal/ref/residuez.html residuez], [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/freqs.html freqs] (Experimentos 2.1 e 2.2)
 
:* Ver também o [http://www.mathworks.com/help/matlab/ref/publish.html Publish] para a geração automática de relatórios em html, doc, pdf, latex ou ppt. Ver também [http://www.mathworks.com/help/matlab/matlab_prog/publishing-matlab-code.html Publishing MATLAB Code].
 
:* Ver pag. 138 a 141 de <ref name="DINIZ2014"/>
 
{{collapse top | Variação do Experimento 2.2}}
 
<syntaxhighlight lang=matlab>
 
  
%% Experimento 2.2
+
* Nesta página wiki, você tem orientações para uso de ferramentas e também links que auxiliam no estudo da disciplina. Visite os links sempre que solicitado e lei essa página para lembrar futuramente onde estão as informações que necessita.
% 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)
+
==Instalação da VM com Matlab/Simulink/HDL Coder em seu computador==
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')
 
</syntaxhighlight>
 
#Verifique a diferença entre os tipos de plots comentados no código.
 
#substitua o denominador de H(z) por dois polos em [-0.8 -0.8].
 
#verifique o que ocorre se forem utilizados polos complexos conjugados [0.3-0.4i  0.3+0.4i 0.1]
 
#verifique o que ocorre se forem utilizados polos complexos não conjugados [0.3-0.4i  0.3+0.8i]
 
#verifique o que ocorre se os polos estiverem fora do circulo unitário  [1.2 -0.2].  Interprete este resultado 
 
{{collapse bottom}}
 
  
;Aula 3 (9 Out):
+
Para importar a VM para o seu computador e configurar ela para acessar a licença do IFSC veja a página [[Teste de VM para uso pelos alunos no ensino remoto#VM Matlab | Instalação da VM Matlab]]
*Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 
:* Filtros Digitais ([https://owncloud.ifsc.edu.br/index.php/s/WWY2LWexts8PKDs Experimento 2.3])
 
:* Filtragem de Sinais ([https://owncloud.ifsc.edu.br/index.php/s/uxzETF2qOzFIW4k Experimento 3.1])
 
  
;Aula 4 (14 Out):
+
==Instalação da VM com Quartus e Modelsim em seu computador==
*Revisão de Sinais e Sistemas no tempo discreto em Matlab
 
::* Análise de Sinais (Experimento 3.2)
 
::* Análise de um sistema h[n] correspondente a um filtro passa-faixa, utilizando um sinal de entrada x[n] senoidal (ou um sinal r[n] de ruído branco). Análise da entrada x[n] e saída y[n] usando a fft. 
 
:* 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===
+
Na fase do projeto final pode ser necessário importar também essa VM para o seu computador.  Veja como importar e configurar ela para acessar a licença do IFSC veja a página [[Teste de VM para uso pelos alunos no ensino remoto#VM Quartus e Modelsim | Instalação da VM com Quartus e Modelsim]]
;Aula 5 (16 Out):
 
*Filtros Digitais: Filtros IIR:
 
:* Aproximação de magnitude de filtros analógicos: do tipo Butterworth.
 
:*Ver pag. 186 a 194 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 6 (21 Out):
+
==Recursos de Laboratório==
*Filtros Digitais:  Filtros IIR:
+
Nos laboratórios do IFSC, os softwares '''Matlab/Simulink/HDL Coder''' estão disponíveis diretamente na plataforma LINUX. Utilize preferencialmente a versão 2015.
:* Projeto de filtros analógicos passa-baixas: do tipo Butterworth. (continuação)
 
:*Ver pag. 194 a 204 de <ref name="SHENOI2006"/>
 
  
;Aula 7 (23 fev):
+
==Acesso a Nuvem do IFSC==
*Filtros Digitais: Filtros IIR:
+
Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD (nuvem.sj.ifsc.edu.br). A forma mais eficiente de acesso a nuvem de fora do IFSC é através do Cliente X2GO, mas dentro da rede do IFSC o acesso pelo ssh também tem boa usabilidade.
:* Projeto de filtros analógicos passa-baixas: do tipo Butterworth. (continuação)
 
:* Projeto de filtros analógicos passa-baixas: do tipo Chebyshev I.
 
:*Ver pag. 204 a 208 de <ref name="SHENOI2006"/>
 
  
;Aula (13 Nov):
+
Para para utilizar o Quartus/Modelsim/QSIM através da Nuvem do IFSC, siga o procedimento de  '''[[Acesso_ao_IFSC-CLOUD_(NUVEM)#Cliente_X2GO_.28recomendado.29 | instalação do X2Go]]''' e '''[[Acesso_ao_IFSC-CLOUD_(NUVEM)#Procedimento_para_uso_da_nuvem.sj.ifsc.edu.br | configuração do X2Go]]'''. '''Nota:''' O desempenho do Modelsim é ruim quando acesso da rede externa ao IFSC, e por isso deve ser evitado, dando-se preferencia ao uso da VM.
*Filtros Digitais:  Filtros IIR:
 
:* Projeto de filtros digitais IIR com Matlab.  Uso das funções buttord, butter, cheb1ord, cheby1, cheb2ord, cheby2, ellipord, ellip.
 
:* Uso do MatLab na analise da resposta em frequência de filtros digitais. Uso das funçoes freqz, grpdelay, zplane, filter, fvtool.
 
:* Projetar um filtro com duas bandas de passagem, onde: Ap = 0.1; Ar = 60; características da 1ª banda de passagem (wr1 = 0.15, wp1 = 0.2, wp2 = 0.3, wr2 = 0.35); características da 1ª banda de passagem (wr1 = 0.45, wp1 = 0.5, wp2 = 0.6, wr2 = 0.65).
 
::*DICA:  Para multiplicar dois polinômios pode ser utilizado a convolução.
 
  
;Aula 7 (3 mar):
+
==Modelos para relatório==
*Filtros Digitais:  Filtros IIR:
+
Para a geração de documentação/relatórios técnicos/artigos, use como base o modelo ABNTex2 para o padrão do IFSC para monografia que segue as normas da ABNT e do IFSC.
:* Transformação de frequência de filtros analógicos
+
Recomendo que os alunos da Engenharia de Telecomunicações utilizem esse modelo e o [https://www.overleaf.com Overleafv2], pois além de possibilitar o compartilhamento do documento entre os alunos, reduz o tempo perdido na formação do documento, permitindo que o aluno já aprenda alguma formatação de Latex que será útil na elaboração do TCC.  
::(passa-baixas -> passa-baixas, passa-baixas -> passa-altas, passa-baixas -> passa-faixa, passa-baixas -> rejeita-faixa)
+
*[https://www.overleaf.com/read/dbjkqgsghfbk Modelo para relatório em LaTex]
:* 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
 
:*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 XX (27/nov)
 
*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"/>
 
 
 
*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-->
 
 
 
;Aula XX (2/dez)
 
*Filtros Digitais: Filtros FIR
 
*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>
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:center; font-size:100%" bgcolor="#efefef"
 
! scope="col" width=25% align="center"| Janela
 
! scope="col" width=10% align="center"| <math>A_{sl}</math>
 
! scope="col" width=10% align="center"| <math>\Delta \omega</math>
 
{{tabFIRwindow | Retangular | 13.3|}}
 
{{tabFIRwindow | Triangular | 26.6|}}
 
{{tabFIRwindow | Barlett | 26.5|}}
 
{{tabFIRwindow | Hann | 31.5|}}
 
{{tabFIRwindow | Barlett-Hanning | 35.9|}}
 
{{tabFIRwindow | Hamming | 42.5|}}
 
{{tabFIRwindow | Bohman | 46.0|}}
 
{{tabFIRwindow | Parzen | 53.1|}}
 
{{tabFIRwindow | Backman | 58.1|}}
 
{{tabFIRwindow | Flat Top | 88.0|}}
 
{{tabFIRwindow | Backman-Harris | 92.1|}}
 
{{tabFIRwindow | Nutfall | 93.8|}}
 
|}
 
:*Dados acima obtidos para um filtro passa baixas de ordem N = 64 com <math>\omega_{c} = 0.5 \pi</math>
 
 
 
*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>
 
Para a janela de Kaiser, a estimação do fator <math>\beta </math> e da ordem do filtro <math> N </math> são obtidos por:
 
 
 
<math>\beta = \left \{ \begin{matrix} 0.1102 (\alpha-8.7), & \alpha > 50, \\ 0.5842 (\alpha- 21)^{0.4} + 0.07886 (\alpha- 21) , & 50 \ge \alpha \ge 21, \\ 0, & \alpha < 21. \end{matrix}\right.</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.
 
 
 
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"
 
 
 
<syntaxhighlight lang=matlab>
 
fsamp = 8000;
 
fcuts = [1000 1500];
 
mags = [1 0];
 
devs = [0.01 0.01];
 
[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);
 
</syntaxhighlight>
 
 
 
 
 
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.
 
 
 
<syntaxhighlight lang=matlab>
 
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)
 
</syntaxhighlight>
 
:*Ver as funções [http://www.mathworks.com/help/signal/ref/fir1.html fir], [http://www.mathworks.com/help/signal/ref/kaiserord.html kaiserord] do Matlab.
 
:*Ver pag. 266 a 273 de <ref name="SHENOI2006"/>
 
===ATUAL===
 
;Aula XX (9/dez)
 
*Filtros Digitais: Filtros FIR
 
Utilizar o [http://audacityteam.org/ Audacity] para gerar sinais de teste.  Gere os seguintes sinais e analise seus [http://manual.audacityteam.org/o/man/spectrogram_view.html espectrogramas]:
 
* Um sinal [https://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling DTMF] com duração de 1 segundo com frequência de amostragem de 8 kHz, correspondente aos dígitos 1234567890 ('Dtmf.wav').
 
* Um sinal contendo ruído branco com duração de 5 segundo com frequência de amostragem de 8 kHz ('RuidoBranco.wav').
 
* Um sinal onda quadra com duração de 2 segundo com frequência de amostragem de 8 kHz e período de 2 ms ('Quadrada.wav').
 
Utilize o Matlab para gerar os seguintes sinais:
 
* Um sinal de varredura de Cosseno entre 0 Hz e 4 kHz com duração de 1 segundo.
 
<syntaxhighlight lang=matlab>
 
Fs = 8000;
 
t = 0:1/Fs:1-1/Fs;
 
x = chirp(t,0,1,4000);
 
spectrogram(x, blackman(128), 120, 200, Fs,'yaxis')
 
audiowrite('Chirp0-4kHz.wav',x,Fs)
 
sound(x,Fs)  % Atenção remova o fone de ouvido antes de realizar este procedimento.
 
</syntaxhighlight>
 
 
 
Utilizar o Matlab para projetar os seguintes filtros FIR e transmitir os sinais obtidos acima.  Em todos os filtros considere a frequência de amostragem como 8 kHz, atenuação máxima na banda de passagem de 0,5 dB, e as bandas de transição como 400 Hz. Use a janela de Kaiser.
 
* Filtro passa-baixas com fc = 1,5 kHz e atenuação de 60 dB na rejeição;
 
* Filtro passa-altas com fc = 2,5 kHz e atenuação de 30 dB na rejeição;
 
* Filtro passa faixa com fc1 = 1,5 kHz e fc2 = 2,5 kHz e atenuação de 80 dB na rejeição;
 
* Filtro rejeita faixa com fc1 = 1,9 kHz e fc2 = 2,1 kHz e atenuação de 80 dB na rejeição;
 
 
 
Após obter os filtros, transmita cada um dos sinais gerados no Audacity e verifique o resultado obtido analisando os sinal obtidos comparando o espectrograma com a resposta em magnitude do filtro.
 
<syntaxhighlight lang=matlab>
 
[x, Fs] = audioread('Chirp0-4kHz.wav');  % Leitura do sinal
 
t = (0:length(x)-1)/Fs;  % Vetor de tempo
 
b = fir1(200,[2000 2100]/Fs); % Filtro Hamming com ordem 48 passa faixa
 
[Hw, w] = freqz(b,1,2000);
 
y = filter(b,1,x);
 
subplot(311); spectrogram(x, blackman(128), 100, 200, Fs)
 
subplot(312); plot(w/pi*Fs,20*log10(abs(Hw))); colorbar; ylim([-100,0]);
 
subplot(313); spectrogram(y, blackman(128), 100, 200, Fs)
 
</syntaxhighlight>
 
 
 
:*Ver as funções [http://www.mathworks.com/help/matlab/ref/audioread.html audioread], [http://www.mathworks.com/help/matlab/ref/audiowrite.html audiowrite], [http://www.mathworks.com/help/signal/ref/chirp.html chirp], [http://www.mathworks.com/help/signal/ref/spectrogram.html spectrogram], [http://www.mathworks.com/help/matlab/ref/filter.html filter] do Matlab.
 
:*Ver pag. 266 a 273 de <ref name="SHENOI2006"/>
 
 
 
===Unidade 5===
 
;Aula :
 
:*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].
 
 
 
 
 
;Aula :
 
:*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 :
 
:*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:
 
:*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:
 
:*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}}
 
 
 
==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===
 
Neste tópico serão listadas as atividades extras que os alunos da disciplina deverão realizar ao longo do curso.  É importante observar o prazo de entrega, pois os conceitos serão reduzidos conforme o atraso na entrega.
 
Para a entrega no prazo os conceitos possíveis são (A, B, C, D).  Entrega com até uma semana de atraso (B, C, D). Entrega com até duas semanas de atraso (C ou D). Entrega com mais de duas semanas de atraso (D). 
 
 
 
====PARA ENTREGAR====
 
{{collapse top | expand = true | AE6 - Projeto de Filtro Digitais FIR x IIR (Prazo de entrega XX/XX/2016)}}
 
:1. Objetivo é analisar em termos de realização em hardware os filtros projetados na atividade AE5.  Reprojete os filtros utilizando agora o FDATOOL.
 
 
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
! scope="col" width=8% align="left"| Aluno
 
! scope="col" width=27% align="center"| FIR Janela 1
 
! scope="col" width=27% align="center"| FIR Janela 2
 
! scope="col" width=27% align="center"| IIR
 
|-
 
| Ana || Kaiser ||  Hamming || Butterworth
 
|-
 
| Karoline || Kaiser  ||  Hann || Chebyshev I
 
|-
 
| Guilherme || Kaiser ||  Backman || Chebyshev II
 
|}
 
: Todos os filtros tem a mesma especificação de magnitude (fr1 = 8 kHz; fp1 = 12 kHz, fp2 = 14 kHz; fr2 = 16 kHz, fs = 40 kHz, Ar >= 40 dB, <math> \delta_p </math> <=  0.01).
 
:2. A primeira etapa do projeto deve ser feita  utilizando precisão infinita.
 
:3. 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:
 
:: <math> Ah = (2 x N_{multiplicadores} + N_{somadores} + N_{atrasos}) N_{bits}. </math>
 
:4. Escreva um artigo mostrando os resultados obtidos e documentando o código escrito (obtido a partir do FDATool). Enviar para o meu email em formato pdf com o Assunto: '''PSD29007 - Projeto de Filtro Digitais FIR x IIR'''. Não é necessário fazer a revisão teórica dos filtros, foquem apenas na descrição da realização dos filtros projetados, nos resultados obtidos 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 filtros 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.
 
{{collapse bottom}}
 
 
 
====JÁ ENCERRADAS====
 
{{collapse top | AE1 - Experimento 3.2 (Prazo de entrega 23/10/2015)}}
 
#Escreva um script com funções do Matlab para gerar as representações no domínio do tempo sinais da Figura 3.26 <ref name="DINIZ2014"/>. Use o subplot para inserir todas os sinais em uma única Figure do Matlab.
 
#Escreva um script com funções do Matlab para gerar as representações no domínio da frequência sinais da Figura 3.27 <ref name="DINIZ2014"/>. Use o subplot para inserir todas os sinais em uma única Figure do Matlab.
 
#Faça uma estimação melhor do espectro do sinal, segmentando o sinal x(n) e calculando a média dos espectros obtidos.
 
# É importante utilizar as escalas e legendas corretamente nos gráficos. 
 
# Ver as funções do matlab [http://www.mathworks.com/help/matlab/ref/legend.html legend], [http://www.mathworks.com/help/matlab/ref/hold.html hold],[http://www.mathworks.com/help/matlab/creating_plots/add-title-axis-labels-and-legend-to-graph.html title, xlabel, ylabel],[http://www.mathworks.com/help/matlab/ref/linspace.html linspace], [http://www.mathworks.com/help/matlab/ref/logspace.html logspace].
 
#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 - AE1 - Experimento 3.2'''.
 
{{collapse bottom}}
 
 
 
{{collapse top | AE2 - Projeto de Filtro Analógico Butterworth (Prazo de entrega 04/11/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 = 10 kHz. Frequência de rejeição (stopband) f_s = 60 kHz. Ganho de 0 dB em f = 0 Hz, atenuação de 3 dB em f_p e atenuação mínima de 40 dB em f_s, do tipo Butterworth.
 
:b) Frequência de passband f_p = 10 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 40 dB em f_s, do tipo Butterworth
 
 
 
:* 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 dos filtros 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 - AE2 - Projeto de Filtro Analógico Butterworth'''.
 
{{collapse bottom}}
 
 
 
{{collapse top | AE3 - Projeto de Filtro Analógicos LP, HP, BP, BS (Prazo de entrega 27/11/2015)}}
 
:1. Projeto os seguintes '''filtros analógicos''':
 
 
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
! scope="col" width=8% align="left"| Aluno
 
! scope="col" width=25% align="center"| Filtro 1
 
! scope="col" width=25% align="center"| Filtro 2
 
! scope="col" width=25% align="center"| Filtro 3
 
! scope="col" width=8% align="center"| <math> f_s </math>
 
|-
 
| Ana || HP - Cheby I  (fr = 15 kHz; fp = 20 kHz) || BP - Butter (fr1 = 8 kHz; fp1 = 12 kHz, fp2 = 14 kHz; fr2 = 16 kHz) || BS - Cheby II (fp1 = 8 kHz; fr1 = 12 kHz, fr2 = 14 kHz; fp2 = 16 kHz) || 40 kHz
 
|-
 
| Karoline || HP - Cheby II  (fr = 15 kHz; fp = 20 kHz) || BP - Cheby I  (fr1 = 8 kHz; fp1 = 12 kHz, fp2 = 14 kHz; fr2 = 16 kHz) || BS - Butter (fp1 = 8 kHz; fr1 = 12 kHz, fr2 = 14 kHz; fp2 = 16 kHz) || 80 kHz
 
|-
 
| Guilherme || HP - Butter  (fr = 15 kHz; fp = 20 kHz) || BP - Cheby II  (fr1 = 8 kHz; fp1 = 12 kHz, fp2 = 14 kHz; fr2 = 16 kHz) || BS - Cheby I (fp1 = 8 kHz; fr1 = 12 kHz, fr2 = 14 kHz; fp2 = 16 kHz) || 200 kHz
 
|}
 
:a) Os filtros HP devem ter um ganho de 0 dB em f = 0 Hz, ter atenuação máxima de 0.5 dB na banda de passagem e atenuação mínima de 35 dB na banda de rejeição.
 
:b) Os filtros BP devem ter um ganho de 10 dB na frequência central de passagem, atenuação máxima de 0.25 dB na banda de passagem e atenuação mínima de 60 dB na banda de rejeição.
 
:c) Os filtros BS devem ter um ganho de 0 dB em f = 0 Hz, atenuação máxima de 0.1 dB na banda de passagem e atenuação mínima de 80 dB na banda de rejeição.
 
 
 
:onde:
 
:: HP - Passa Altas, BP - Passa Faixa, BS - Rejeita Faixa
 
:: <math> f_s </math> - frequencia de amostragem do sinal de entrada; <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).
 
:: ''Butter'' - Aproximação tipo Butterworth, ''Cheby I'' - Aproximação tipo Chebyshev I, ''Cheby II'' - Aproximação tipo Chebyshev Inversa
 
:2. 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).
 
:4. Apresente de modo gráfico o diagrama de zeros do filtro, a resposta em frequência do filtro (ganho em dB e fase) do filtro protótipo LP H(p) e também do filtro especificado H(s).
 
:5. Realize a medida em dB da atenuação em fp e fr, e confira com o valor obtido usando H(s).
 
:*Escreva um relatório técnico e envie para o meu email em formato pdf com o Assunto: '''PSD29007 - AE3 - Projeto de Filtro Analógicos LP, HP, BP, BS '''.
 
 
 
{{collapse bottom}}
 
 
 
{{collapse top | AE4 - Estudo dos 4 tipos de filtros FIR com fase linear (Prazo de entrega 04/12/2015)}}
 
 
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
:1. Utilize o Matlab para implementar os 3 filtros FIR representados pela resposta ao impulso h(n)
 
 
 
! scope="col" width=8% align="left"| Aluno
 
! scope="col" width=27% align="center"| <math> h_1(n) </math>
 
! scope="col" width=27% align="center"| <math> h_2(n) </math>
 
! scope="col" width=27% align="center"| <math> h_3(n) </math>
 
|-
 
| Ana || [0.4; 0; 0.2; -0.3; 0.8; -0.3; 0.2; 0;  0.4] ||  [0.4; 0; -0.2; -0.3; 0; +0.3; 0.2; 0;  -0.4] || [0.4; 0; -0.2; -0.3; -0.3; 0.2; 0;  -0.4]
 
|-
 
| Karoline || [0.1; 0; 0.4; 0.15; 0.3; 0.3; 0.15; 0.4; 0; 0.1] || [0.1; 0; -0.4; 0.15; -0.3; 0.1; +0.3; -0.15; 0.4; 0; -0.1] || [0.1; 0; -0.4; 0.15; -0.3; 0; +0.3; -0.15; 0.4; 0; -0.1]
 
|-
 
| Guilherme || [0.1; 0; 0.4; 0.15; 0.3; 0.1; 0.3; 0.15; 0.4; 0; 0.1] || [0.1; 0; 0.4; 0.15; -0.3; 0.1; +0.3; -0.15; 0.4; 0; -0.1] || [0.1; 0; -0.4; 0.4; 0; -0.1]
 
|}
 
 
 
:2. Classifique os filtros de acordo com o seu Tipo I a IV e verifique a ordem de cada filtro. Calcule os zeros desses filtros e faça o diagrama de polos e zeros desses filtros. ''Dica utilize a função zeros(N,1) para criar N raízes nulas.''
 
:3. Obtenha a resposta de magnitude, fase e atraso de grupo dos filtros.
 
:4. Confira se as resposta dos filtros e o diagrama de polos e zeros corresponde ao esperado para cada tipo e verifique se os zeros do filtro correspondem a uma forte atenuação na resposta de magnitude.
 
::* Nos filtros que tem a simetria quadrantal indique os módulos das raízes quadrantais.
 
:5. Caso algum filtro obtido não seja de fase linear indique as várias formas como isso pode ser identificado.
 
:6. Escreva um relatório técnico contendo os resultados e as conclusões finais e envie para o meu email em formato pdf com o Assunto: '''PSD29007 - AE4 - Estudo dos 4 tipos de filtros FIR com fase linear '''.
 
{{collapse bottom}}
 
 
 
{{collapse top | AE5 - Estudo dos filtros FIR tipo Janela (Prazo de entrega XX/12/2015)}}
 
 
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
:1. Utilize o Matlab para implementar os 2 filtros FIR e o filtro IIR indicado abaixo
 
 
 
! scope="col" width=8% align="left"| Aluno
 
! scope="col" width=27% align="center"| FIR Janela 1
 
! scope="col" width=27% align="center"| FIR Janela 2
 
! scope="col" width=27% align="center"| IIR
 
|-
 
| Ana || Kaiser ||  Hamming || Butterworth
 
|-
 
| Karoline || Kaiser  ||  Hann || Chebyshev I
 
|-
 
| Guilherme || Kaiser ||  Backman || Chebyshev II
 
|}
 
: Todos os filtros tem a mesma especificação de magnitude (fr1 = 8 kHz; fp1 = 12 kHz, fp2 = 14 kHz; fr2 = 16 kHz, fs = 40 kHz, Ar >= 40 dB, <math> \delta_p </math> <=  0.01), conforme mostra a máscara do filtro abaixo:
 
[[Arquivo:KaiserFIR.png| 600 px]] [[Arquivo:KaiserFIRZoom.png |600 px]]
 
:2. Se quiser utilize o fdatool para projetar os filtros, mas pode ficar lento na CLOUD. 
 
::Senão utilize a função fir1.
 
::Para a janela de Kaiser utilize a equação 5.43 e 5.44 para calcular o valor de BETA e a ordem N do filtro.
 
::Para as demais janelas utilize os valores de Dw da tabela 5.1.
 
:3. Verifique se a fase dos filtros FIR é linear e determine o atraso de grupo desses filtros e também do IIR.
 
:4. Confira se os 3 filtros projetados atendem a especificação de magnitude.
 
:5. Sobreponha as respostas de frequencia (magnitude, fase e atraso de grupo) dos filtros e envie esses gráficos. Envie também os dados dos coeficientes do numerador e denominador do filtro, a ordem de cada filtro e outros parâmetros ajustados. Assunto: '''PSD29007 - AE5 - Estudo dos filtros FIR tipo Janela'''.
 
{{collapse bottom}}
 
 
 
====ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO====
 
 
 
{{collapse top | AL1 - Variação do Experimento 1.2}}
 
No Experimento 1.2 varie o valor da frequência de amostragem de 6 até 20 Hz e observe:
 
# Em qual frequência deixa de ocorrer recobrimento do sinal 2.
 
# O que ocorre quando a frequência é 6, 7, 14 Hz? Explique
 
# Qual deveria ser a frequência do sinal f_2 para que as amostras tomadas sejam coincidentes como o sinal f_1 para uma frequência de amostragem f_s?  Reescreva a equação e verifique no Matlab.  
 
{{collapse bottom}}
 
 
 
{{collapse top | AL2 - Exemplo de Simulink -  Conhecendo o "Sine Wave" e o "Scope"}}
 
* Abra o Simulink e insira dois blocos geradores de senos '''[Sources|Sine Wave]''', um multiplexador de sinais '''[Signal Routind|Mux]''' e um visualizador no tempo '''[Sinks|Scope]''', e conecte os blocos. Mude os nomes dos blocos do '''Sine Wave'''.
 
:[[Arquivo:Sine_Scope_Simulink1.png]]
 
* Insira na área de trabalho do matlab os seguintes valores. 
 
:: <math> f1 = 5 (Hz)  </math>
 
:: <math> w1 = 2 * \pi * f1 (rad/s) </math>
 
:: <math> Sp = 4 </math>
 
:: <math> Ts = 1 / (f1*Sp)  </math>
 
 
 
f1 = 5; w1 = 2*pi*f1; sp = 4; ts = 1/(f1*sp);
 
 
 
* Configure o '''Continuous Sine Wave''' para gerar um sinal contínuo com amplitude de 2.5, bias de 1, frequência de <math> w1 </math>, e tempo de amostragem de 0 (para gerar sinal contínuo).
 
* Configure o '''Discrete Sine Wave''' para gerar um sinal discreto com amplitude de 4, bias de 0, frequência de <math> w1 </math>, e tempo de amostragem de Ts (para gerar sinal discreto).
 
* Salve o modelo como '''sine_mux_scope.slx'''
 
* Simule o modelo por 0.5 segundos e observe o '''Scope'''.
 
:[[Arquivo:Sine_Scope_Simulink2.png]] 
 
* Varie parâmetros dos sinais senoidais gerados.
 
* Estude o funcionamento do Scope.  Retire o mux e use dois eixos no '''Scope'''.
 
:[[Arquivo:Sine_Scope_Simulink3.png]]
 
:[[Arquivo:Sine_Scope_Simulink4.png]]
 
{{collapse bottom}}
 
 
 
==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]].
 
 
 
* Para a programação em FPGAs, os softwares da ALTERA  (Quartus II, QSIM e Modelsim-Altera), estão instalados no Laboratório de Programação (ver outros disponíveis). Para acessar veja a página [[Software e equipamentos recomendados para programação de FPGAs]].
 
 
 
* Adicionalmente de qualquer maquina do IFSC, pode-se fazer usar o [[Acesso ao IFSC-CLOUD | IFSC-CLOUD]] para ter acesso a estes softwares.
 
 
 
*Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma  [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT].  Ver também [[Modelo para uso em relatórios]].
 
  
 
==Links auxiliares==
 
==Links auxiliares==
 +
* [http://www.mathworks.com/help/matlab/examples/live-editor-introduction.html Live editor do Matlab] nesta interface é possivel executar comandos do Matlab sem necessitar da licença.  Isso ajuda a testar algumas funções quando o Matlab não está imediatamente disponível.
 +
* [https://www.tutorialspoint.com/execute_matlab_online.php Matlab online] sem interface gráfica.
 +
* [https://octave-online.net/ Octave online] com interface gráfica.
 
* [http://www.mathworks.com/help/matlab/index.html Help on-line do Matlab]
 
* [http://www.mathworks.com/help/matlab/index.html Help on-line do Matlab]
 +
* [[Uso do calculo simbólico na Matlab]]
 +
* [http://www.mathworks.com/help/symbolic/performing-symbolic-computations.html Perform Symbolic Computations] - Matlab
 +
* [https://www.tutorialspoint.com/matlab MATLAB Tutorial], [https://www.tutorialspoint.com/matlab/matlab_quick_guide.htm MATLAB - Quick Guide]
 +
* [http://www.inf.ufsc.br/~bosco.sobral/ensino/ine5201/APOSTILA_MATLAB_DONIZETTI_15NOV2002.pdf ELEMENTOS BÁSICOS DE PROGRAMAÇÃO EM MATLAB] - UFSC, Donizetti.
 
* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/index.html PDF Documentation for MATLAB]
 
* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/index.html PDF Documentation for MATLAB]
 
:* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/getstart.pdf Primer]
 
:* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/getstart.pdf Primer]
Linha 639: Linha 57:
 
:* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/math.pdf Mathematics]
 
:* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/math.pdf Mathematics]
 
:* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/graphg.pdf Graphics]
 
:* [http://www.mathworks.com/help/releases/R2015b/pdf_doc/matlab/graphg.pdf Graphics]
 +
:*[http://www.macnicadhw.com.br/products/mercurion-4-devkit-board;jsessionid=0093F9C13FBA223AAFE42470153B57C0 Mercurio IV DevKit] Macnica
  
 
* [http://www.mathworks.com/help/releases/R2014a/pdf_doc/dsp/index.html Manuais do Matlab para o Toolbox de DSP].
 
* [http://www.mathworks.com/help/releases/R2014a/pdf_doc/dsp/index.html Manuais do Matlab para o Toolbox de DSP].
Linha 651: Linha 70:
  
 
* [http://www.mathworks.com/help/dsp/ug/fixed-point-filter-design-1.html Fixed-Point Filter Design] - Mathworks
 
* [http://www.mathworks.com/help/dsp/ug/fixed-point-filter-design-1.html Fixed-Point Filter Design] - Mathworks
 +
* Dicas de como utilizar o Matlab - HDL Coder para gerar código HDL.
 +
:* [http://blogs.mathworks.com/loren/2013/04/11/matlab-to-fpga-using-hdl-codertm/ MATLAB to FPGA using HDL Coder]
 +
:* [http://www.mathworks.com/products/hdl-coder/code-examples.html]
 +
:* [http://www.mathworks.com/help/hdlcoder/examples/generate-hdl-code-for-programmable-fir-filter.html?prodcode=HD&language=en]
  
 
* [[Modelo para uso em relatórios]]
 
* [[Modelo para uso em relatórios]]
 
* [https://en.wikipedia.org/wiki/List_of_mathematical_symbols Lista dos Símbolos Matemáticos]
 
* [https://en.wikipedia.org/wiki/List_of_mathematical_symbols Lista dos Símbolos Matemáticos]
* [[PSD29007-Engtelecom(2015-1) - Prof. Marcos Moecke]]
 
  
 
==Alguns artigos para leitura==
 
==Alguns artigos para leitura==
Linha 669: Linha 91:
 
*[http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4610722 High Quality Low Order Nonrecursive Digital Filters Design Using Modified Kaiser Window]
 
*[http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4610722 High Quality Low Order Nonrecursive Digital Filters Design Using Modified Kaiser Window]
  
==Referências Bibliográficas==
+
== Registro Diário e Avaliação Anteriores ==
<references/>
+
* [[PSD29007-Engtelecom(2020-1) - Prof. Marcos Moecke | Semestre 2020-1]]
 +
* [[PSD29007-Engtelecom(2019-2) - Prof. Marcos Moecke | Semestre 2019-2]]
 +
* [[PSD29007-Engtelecom(2019-1) - Prof. Marcos Moecke | Semestre 2019-1]]
 +
* [[PSD29007-Engtelecom(2018-2) - Prof. Marcos Moecke | Semestre 2018-2]]
 +
* [[PSD29007-Engtelecom(2018-1) - Prof. Marcos Moecke | Semestre 2018-1]]
 +
* [[PSD29007-Engtelecom(2017-2) - Prof. Marcos Moecke | Semestre 2017-2]]
 +
* [[PSD29007-Engtelecom(2017-1) - Prof. Marcos Moecke | Semestre 2017-1]]
 +
* [[PSD29007-Engtelecom(2016-2) - Prof. Marcos Moecke | Semestre 2016-2]]
 +
* [[PSD29007-Engtelecom(2016-1) - Prof. Marcos Moecke | Semestre 2016-1]]
 +
* [[PSD29007-Engtelecom(2015-2) - Prof. Marcos Moecke | Semestre 2015-2]]
 +
* [[PSD29007-Engtelecom(2015-1) - Prof. Marcos Moecke | Semestre 2015-1]]
  
 
{{ENGTELECO}}
 
{{ENGTELECO}}

Edição atual tal como às 16h18min de 11 de novembro de 2020

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


Avisos importantes

Durante o 2º semestre de 2020, devido a Pandemia do Coronavirus Sars-CoV-2, as aulas da disciplina ocorrerão de forma remota. Seguem algumas informações importantes:

  • Todas os nossos encontros síncronos serão feitos usando a plataforma Google Meet. Para ingressar nas aulas utilizem o email institucional (usuario@aluno.ifsc.edu.br).
  • Após cada encontro, vocês terão acesso automático as gravações das aulas na Pasta compartilhada no Gdrive.
  • Para a entrega de atividades e avaliações será utilizada a plataforma Moodle. É necessário que vocês se autoinscrevam no Moodle da disciplina com a chave (engtelecom2020-2).
  • Para a comunicação entre professor-aluno, além dos avisos no SIGAA, utilizaremos a plataforma Slack. Inscrevam-se no Slack da disciplina. O aluno pode usar qualquer email para acessar ao Slack, mas recomenda-se o uso do email institucional.
  • Para participar das aulas é recomendado que o aluno tenha disponível: 1 computador ou dispositivo móvel (smartphone ou tablet) para assistir os encontros presenciais ou gravações. É necessário um computador para utilizar os softwares e realizar atividades práticas de laboratório. O aluno deve ter acesso a Nuvem do IFSC ou instalar a VM com softwares Matlab/Simulink/HDL Coder. Acesso a Internet é fundamental, e recomenda-se que o aluno tenha um lugar silencioso para participar das aulas. O acesso ao Google Meet, Drive, Slack, Moodle e Wiki podem ser feitos via navegador, mas a instalação das respectivas aplicações é recomendada. Recomenda-se ainda que cada aluno uso um fone de ouvido com microfone, pois isso melhora muito a qualidade do som e a interação nas vídeo conferências. Ao ingressar em um encontro síncrono mantenha sempre que possível a câmera aberta e também o microfone. Se houver algum problema de ruído você será alertado.
  • Nesta página wiki, você tem orientações para uso de ferramentas e também links que auxiliam no estudo da disciplina. Visite os links sempre que solicitado e lei essa página para lembrar futuramente onde estão as informações que necessita.

Instalação da VM com Matlab/Simulink/HDL Coder em seu computador

Para importar a VM para o seu computador e configurar ela para acessar a licença do IFSC veja a página Instalação da VM Matlab

Instalação da VM com Quartus e Modelsim em seu computador

Na fase do projeto final pode ser necessário importar também essa VM para o seu computador. Veja como importar e configurar ela para acessar a licença do IFSC veja a página Instalação da VM com Quartus e Modelsim

Recursos de Laboratório

Nos laboratórios do IFSC, os softwares Matlab/Simulink/HDL Coder estão disponíveis diretamente na plataforma LINUX. Utilize preferencialmente a versão 2015.

Acesso a Nuvem do IFSC

Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD (nuvem.sj.ifsc.edu.br). A forma mais eficiente de acesso a nuvem de fora do IFSC é através do Cliente X2GO, mas dentro da rede do IFSC o acesso pelo ssh também tem boa usabilidade.

Para para utilizar o Quartus/Modelsim/QSIM através da Nuvem do IFSC, siga o procedimento de instalação do X2Go e configuração do X2Go. Nota: O desempenho do Modelsim é ruim quando acesso da rede externa ao IFSC, e por isso deve ser evitado, dando-se preferencia ao uso da VM.

Modelos para relatório

Para a geração de documentação/relatórios técnicos/artigos, use como base o modelo ABNTex2 para o padrão do IFSC para monografia que segue as normas da ABNT e do IFSC. Recomendo que os alunos da Engenharia de Telecomunicações utilizem esse modelo e o Overleafv2, pois além de possibilitar o compartilhamento do documento entre os alunos, reduz o tempo perdido na formação do documento, permitindo que o aluno já aprenda alguma formatação de Latex que será útil na elaboração do TCC.

Links auxiliares

Alguns artigos para leitura

Artigos bases de alguns dos filtros digitais:

Relatórios simples:

Registro Diário e Avaliação Anteriores


Curso de Engenharia de Telecomunicações