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
 
(27 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 4: Linha 4:
 
*[[Cronograma de atividades (PSD-EngTel)]]
 
*[[Cronograma de atividades (PSD-EngTel)]]
 
*[[PSD-EngTel (Plano de Ensino) | Plano de Ensino]]
 
*[[PSD-EngTel (Plano de Ensino) | Plano de Ensino]]
==Registro on-line das aulas==
 
  
===Unidade 1===
+
== Avisos importantes==
;Aula 1 (11 Ago):
+
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:
*[[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].
 
  
;Aula 2 (15 Ago)
+
*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.
*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>
 
%  Exemplos e Experimentos baseados no livro:
 
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
 
%% Experimento 2.2
 
% Resposta em frequencia usando a função freqz
 
N = 1;
 
num = [1 0 0 0];
 
den = poly([0.8 0.2])
 
%den = [1 0.6 -0.16];
 
% modo 1
 
%[H,w]=freqz(num,den,[0:pi/100:N*pi-pi/100]);
 
%plot(w/pi, abs(H));
 
% modo 2
 
%[H,w]=freqz(num,den);
 
%plot(w/pi, abs(H));
 
% modo 3
 
%[H,w]=freqz(num, den, 'whole');
 
%plot(w/pi, abs(H));
 
% modo 4
 
freqz(num, den, 'whole');
 
figure(2);
 
zplane(num,den);
 
  
%% Resposta em frequencia substituindo z -> e^(jw)
+
*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ênciasAo ingressar em um encontro síncrono mantenha sempre que possível a câmera aberta e também o microfoneSe houver algum problema de ruído você será alertado.
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 (18 Ago):
+
* 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.
*Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 
:* Filtragem de Sinais ([https://owncloud.ifsc.edu.br/index.php/s/uxzETF2qOzFIW4k Experimento 3.1])
 
::* 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.
 
{{collapse top | Variação do Experimento 3.2}}
 
<syntaxhighlight lang=matlab>
 
  %% Variação do Experimento 3.2 do livro:
 
  % DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
 
  %
 
  % Análise de sinais no domínio da frequência
 
  % File Exp3_2.m
 
  
  fs = 200;  % frequência de amostragem
+
==Instalação da VM com Matlab/Simulink/HDL Coder em seu computador==
  f_sinal = 10;  A_sinal = 1;  % freqüência e amplitude do sinal
 
  T = 1;      % Duração do sinal
 
  k_noise = 0;    % Intensidade do ruído 
 
 
  time = 0 : 1/fs : (T-1/fs);
 
  L = length(time);
 
  freq = time * fs/T;
 
 
  sinal = A_sinal*sin(2*pi*f_sinal.*time);
 
  noise = k_noise*randn(1,fs*T);
 
  x = sinal + noise;
 
  X = abs(fft(x))/L;
 
 
  figure(1);
 
  subplot(211);plot(time,x);
 
  subplot(212);plot(freq,X);
 
</syntaxhighlight>
 
# Acrescente a Figura 1 um plot com a magnitude em dB do sinal no domínio da frequência - 20*log10(X)
 
# Insira nos gráficos títulos para cada subplot, labels para os eixos X e Y, e posicione o texto "F Hz"  para indicar o pico nos gráficos 2 e 3, conforme mostrado na figura abaixo.
 
<center>[[Arquivo:DTxDF_sinal_noise.png]] <br>
 
Figura 1 - Análise no domínio da frequência do sinal <math> x(t) = A  sin (2  \pi  f  t) </math>
 
</center>
 
# Varie o valor de k entre 0 e 2 (com passo de 0.1) e analise o sinal no domínio do tempo e no domínio da frequência.
 
# Utilize k = 0.3 e varia a frequência do sinal entre 0 até 200 Hz (com passo de 10 Hz).  Interprete os resultados obtidos.
 
{{collapse bottom}}
 
 
:* Filtros Digitais ([https://owncloud.ifsc.edu.br/index.php/s/WWY2LWexts8PKDs Experimento 2.3])
 
<!--
 
:* Consulte a documentação do Matlab sobre <syntaxhighlight lang=matlab> zp2tf, tf2zp, fft, ifft, fftfilt, fftshift </syntaxhighlight>
 
-->
 
:* Consulte a documentação do Matlab sobre <syntaxhighlight lang=matlab> grid, subplot, xlabel, ylabel, xlim, ylim, title, log10, log </syntaxhighlight>
 
:* 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"/>
 
  
;Aula 4 (22 Ago):
+
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:
 
:* Exercício - Sinal DTMF com ruído
 
::* Usando o Matlab, gerar o sinal [https://pt.wikipedia.org/wiki/DTMF DTMF] correspondente ao número N e adicionar um ruido ao sinal.
 
::* Filtrar o sinal resultante mantendo apenas a frequência da linha (ou coluna)
 
::* Mostrar os sinais no domínio do tempo e da frequência. 
 
::: x1,X1 - soma das duas senoides.
 
::: x2,X1 - soma de x1 com o ruído branco (gaussiano)
 
::: y,Y - sinal filtrado.
 
::* Utilizar uma frequência de amostragem de 8000Hz de fazer a duração do sinal igual a 200 ms.
 
::* Para adicionar o ruído utilize a função y = [http://www.mathworks.com/help/comm/ref/awgn.html awgn](x,snr), ou  y = x + nivel*[http://www.mathworks.com/help/matlab/ref/randn.html randn](n).
 
::* Para a filtragem utilize?
 
:::* faça a filtragem no domínio do tempo, usando a função [http://www.mathworks.com/help/matlab/ref/filter.html filter] posicionando o polo sobre a frequência que deseja passar, e coloque um zero sobre a frequência que deseja rejeitar.
 
:::* faça a filtragem no domínio da frequência, convertendo o sinal x1 para DF usando X1 = fft(x1), Y = X1.*H, y = ifft(Y), onde H é um vetor de zeros e uns que indica as frequências que devem passar e quais devem ser rejeitadas.
 
:VER  (Experimento 3.1, Experimento 3.2, Experimento 2.3)
 
  
===Unidade 2===
+
==Instalação da VM com Quartus e Modelsim em seu computador==
;Aula 5 (25 Ago):
 
*Filtros Analógicos:
 
:* Função de transferência
 
::<math> H(s) = \frac {c_0 + c_1 s + c_2 s^2 + ... + c_m s^m} {d_0 + d_1 s + d_2 s^2 + ... + d_n s^n}, m \le n</math>
 
  
:* Resposta em frequência: para obter a resposta em frequência é necessário avaliar
+
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]]
::<math>H(j\omega) = H(s)\left|\begin{matrix}\\ s=j\omega \end{matrix}\right.</math>
 
  
::<math> H(j \omega) = \left | H(j \omega) \right | e^{j \phi(\omega)}</math>
+
==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.
  
::<math> \left | H(j \omega) \right |^2 = H(j \omega) H(-j \omega)</math>
+
==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.  
  
::<math> e^{j \phi(\omega)} =  \frac {H(j \omega)} {H(-j \omega)}</math>
+
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.
:* O projeto de filtros analógicos é realizado em 2 etapas:
 
# projeto de um filtro passa baixas (LP) protótipo normalizado <math> H(p) </math> com frequência de passagem <math> \Omega_s = 1 </math>
 
# transformação em frequência para o tipo de filtro (LP, HP, BP ou BS)
 
::<math> H(s) = H(p)\left|\begin{matrix}\\ p=g(s) \end{matrix}\right. </math>
 
  
:* 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.
+
==Modelos para relatório==
* 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_s}-1 } </math>, <math> \Omega_s = \frac {\omega_s} {\omega_s} </math>, <math> \Omega_p = \frac {\omega_p} {\omega_s} = 1 </math> são as frequências de passagem e ''stopband'' do filtro protótipo.
+
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.
::*É necessário determinar a ordem <math> n </math> do filtro: 
+
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.  
 
+
*[https://www.overleaf.com/read/dbjkqgsghfbk Modelo para relatório em LaTex]
::<math> n \ge \frac {\log[(10^{0.1A_s}-1)/(10^{0.1A_p}-1)]} {2 \log \Omega_s} </math>
 
 
 
::*Em seguida obter os polos do filtro:
 
 
 
::<math> p_k = \epsilon^{(-1/n)} e^{\left[ j \frac{(2 k + n - 1)} {2 n} \pi \right]},  k = 1, 2, 3, ... n</math>
 
 
 
::* Em seguida é necessário obter a função de transferência:
 
 
 
::<math> H(p)= \frac{1}{D(p)} </math>, onde <math> D(p)=\prod_{k-1}^{n} \left ( p-p_{k} \right ) </math>
 
 
 
::* 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>
 
 
 
:*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>
 
 
 
;Aula 6 ():
 
* Projeto de filtros analógicos do tipo Chebyshev I.
 
::*Determine a ordem mínima necessária:
 
 
 
::<math> n \ge \frac {\cosh{-1} \sqrt{(10^{0.1A_s}-1)/(10^{0.1A_p}-1)}} {\cosh^{-1} \Omega_s} </math>
 
 
 
::*Em seguida obter os polos do filtro:
 
 
 
::<math> p_k = -\sinh(\varphi_2) \sin(\theta_k)+ j \cosh(\varphi_2) \cos(\theta_k) \ \ \ \ \  k = 1, 2, 3, ... n</math>, onde
 
::<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>
 
 
 
:*Ver pag. 204 a 208 de <ref name="SHENOI2006"/>
 
 
 
;Aula 7 ():
 
*Filtros Analógicos:
 
:* 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]
 
:* Uso das funções [http://www.mathworks.com/help/signal/ref/freqs.html freqs], "zplane", [http://www.mathworks.com/help/signal/ref/fvtool.html fvtool] na análise da resposta em frequência de filtros analógicos.
 
 
 
*Exemplos de projeto de filtro passa-baixas com frequência de passagem de 16 krad/s com atenuação máxima de 0.3 dB, frequência de rejeição de 20 krad/s com atenuação mínima de 20 dB; e ganho em DC de 3 dB.
 
<syntaxhighlight lang=matlab>
 
%% Projeto de filtro passa-baixas usando funções do Matlab 
 
%% Especificações do filtro
 
Wp =16000; Ws = 20000; Ap = 0.3; As = 20; G0= 3;
 
% Para analisar o filtro projetado, use fvtool(b,a) para observar plano s, resposta em magnitude, fase e atraso de grupo
 
 
%% Butterworth
 
[n,Wn] = buttord(Wp, Ws, Ap, As,'s')
 
[b,a] = butter(n,Wn, 's');
 
 
 
%% Chebyshev I
 
n = cheb1ord(Wp, Ws, Ap, As,'s')
 
[b,a] = cheby1(n,Ap, Wp, 's');
 
 
 
%% Chebyshev II
 
n = cheb2ord(Wp, Ws, Ap, As,'s')
 
[b,a] = cheby2(n,As, Ws, 's');
 
 
 
%% Elliptic - Cauer
 
[n, Wn] = ellipord(Wp, Ws, Ap, As,'s')
 
[b,a] = ellip(n,Ap,As, Wn, 's');
 
</syntaxhighlight>
 
 
 
<!--
 
;Aula 9 (19 Abr):
 
*Filtros Digitais:  Filtros IIR:
 
:* Transformação de frequência de filtros analógicos
 
::(passa-baixas -> passa-baixas, passa-baixas -> passa-altas, passa-baixas -> passa-faixa, passa-baixas -> rejeita-faixa)
 
:* 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çõ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 10 (26 Abr):
 
*Filtros Digitais:  Filtros IIR: transformações do tempo contínuo no tempo discreto
 
:*Transformação invariante ao impulso  (pode ser usada apenas para filtros com forte atenuação em frequência altas, ex: passa-baixas e passa-faixa)
 
:*Transformação bilinear (pode ser usada para todos tipos de filtro)
 
::*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 pag. 219 a 229 de <ref name="SHENOI2006"/>
 
:*Ver pag. 403 a 415 e 434 a 435 de <ref name="DINIZ2014"/>
 
 
 
;Aula 11 (28 Abr):
 
*Filtros Digitais:  Filtros IIR: Uso do Matlab.
 
:* Ver em [http://www.mathworks.com/help/signal/ug/iir-filter-design.html IIR Filter Design]
 
:* 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 IIR digitais (sem o parâmetro ''''s'''').
 
::O projeto dos filtros digitais IIR baseados na transformada bilinear no Matlab é realizada em dois passos:  (1)  Determinação da ordem do filtro; (2) Determinação dos coeficientes do numerador <math> b(n) </math> e denominador  <math> a(n) </math> de <math> H(z) </math> .
 
 
 
:* Outros tipos de filtros IIR:  [http://www.mathworks.com/help/signal/ref/yulewalk.html yulewalk], [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/lpc.html lpc], [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].
 
-->
 
===Unidade 3===
 
;Aula 12 ():
 
*Filtros Digitais: Filtros FIR
 
:*Filtros de fase linear: simétricos e antisimétricos
 
:*Ver pag. 249 a 256 de <ref name="SHENOI2006"/>
 
 
 
;Aula 13 ()
 
*Filtros Digitais: Filtros FIR
 
:*Filtros de fase linear: propriedades
 
:*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 wvtool], [http://www.mathworks.com/help/signal/ref/window.html window]
 
 
 
:*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-->
 
:*Ver pag. 256 a 265 de <ref name="SHENOI2006"/>
 
 
 
;Aula 16 e 17 ()
 
*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 fir1], [http://www.mathworks.com/help/signal/ref/kaiserord.html kaiserord] do Matlab.
 
:*Ver pag. 266 a 273 de <ref name="SHENOI2006"/>
 
 
 
;Aula 18 ()
 
*Filtros Digitais: Filtros FIR
 
:* Uso das funções [http://www.mathworks.com/help/signal/ref/window.html window] e [http://www.mathworks.com/help/signal/ref/fir1.html fir1] do Matlab para projeto de filtro FIR
 
%% Exemplo de Filtro
 
wp1 = 0.1 \pi;
 
ws1 = 0.2 \pi;
 
ws2 = 0.6 \pi;
 
wp2 = 0.8 \pi;
 
Ap = 1 dB;
 
Ar = 40 dB;
 
</syntaxhighlight>
 
 
 
;Aula 19 ()
 
*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].
 
 
 
;Aula 20 ():
 
*Uso do [http://www.mathworks.com/help/signal/examples/introduction-to-the-filter-design-and-analysis-tool-fdatool.html] [http://www.mathworks.com/help/signal/ref/fdatool.html Fdatool] para projeto de filtro IIR, FIR equiripple e FIR com janela.
 
<syntaxhighlight lang=matlab>
 
%% Exemplo de Filtro
 
fp = 3000 Hz;
 
fr = 4000 Hz;
 
fs = 20000 Hz;
 
Ap = 1 dB;
 
Ar = 40 dB;
 
</syntaxhighlight>
 
 
 
===Unidade 4===
 
;Aula 20 ()
 
 
 
*Realização de Filtros
 
:* Realização de filtros FIR: Forma Direta.
 
<center>[[Arquivo:FIR_FD_MathWorks.png |800 px]]</center>
 
<center> Figura 1 - Realização de filtros FIR na Forma Direta  </center>
 
 
 
:* Realização de filtros FIR: Forma Transposta.  A transposição consiste na inversão do fluxo de todos os sinais, substituição de nós de soma por derivações e as derivações por soma.  A entrada e saída também devem ser invertidas.  A realização da transposição não altera o sistema implementado.
 
 
 
<center>[[Arquivo:FIR_FDT_MathWorks.png |800 px]]</center>
 
<center> Figura 2 - Realização de filtros FIR na Forma Transposta</center>
 
 
 
<center>[[Arquivo:FIR_FDT2_MathWorks.png |800 px]]</center>
 
<center> Figura 3 - Realização de filtros FIR na Forma Transposta</center>
 
 
 
:* Realização de filtros FIR de fase linear: simétrico tipo I e II e antissimétrico tipo III e IV.
 
 
 
<center>[[Arquivo:FIR_Sym2_MathWorks.png |600 px]]</center>
 
<center> Figura 4 - Realização de filtros FIR de fase linear Simétrico I  </center>
 
 
 
<center>[[Arquivo:FIR_Sym1_MathWorks.png |600 px]]</center>
 
<center> Figura 5 - Realização de filtros FIR de fase linear Simétrico II  </center>
 
 
 
<center>[[Arquivo:FIR_AntiSym3_MathWorks.png |600 px]]</center>
 
<center> Figura 6 - Realização de filtros FIR de fase linear Antisimétrico III</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>
 
:* Realização de Filtros FIR [http://www.mathworks.com/help/signal/ug/opening-fdatool.html usando o FDATool]
 
 
 
:* Realização de Filtros usando o comando [http://www.mathworks.com/help/dsp/ref/realizemdl.html realizemdl] do MatLab 
 
<syntaxhighlight lang=matlab>
 
 
 
Fs = 40000;              % 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(Hd,'MapCoeffsToPorts','on'); 
 
</syntaxhighlight>
 
 
 
:* 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"/>.
 
 
 
;Aula 22 ():
 
* Realização de filtros FIR:  Cascata, Polifase
 
:*Vantagens do uso de filtro Polifase: 
 
::1) Quando o sinal será subamostrado (downsampling) de "D" amostras após a filtragem, a complexidade da implementação é reduzida de "D" vezes, pois apenas uma das "fases" precisa ser implementada.
 
::2) Para reduzir o harware a ser implementado, é possível implementar apenas uma das "fases" do filtro e trocar "D" vezes os coeficientes.
 
::* 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]
 
:* 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>
 
::* Separando H(z) em dois blocos  <math>\ H(z) = H_1(z) H_2(z) </math>, e obtendo o sinal intermediário W(z) ou Y(z) dependendo da ordem dos blocos. 
 
<center>[[Arquivo:H1_H2_MathWorks.png |600 px]]</center>
 
<center> Figura 7 - Separação do filtro IIR H(z) em H1(z) e H2(z)</center>
 
 
 
: Com o ordenamento dos blocos <math>\ H_1(z) </math> e <math>\ H_2(z) </math> em ordem direta teremos a Forma Direta I:
 
:<math> H_1(z) = \frac{W(z)}{X(z)} = b_0 + b_1 z^{-1} + b_2 z^{-2} </math>
 
:<math> H_2(z) = \frac{Y(z)}{W(z)} = \frac{1}{1 + a_1 z^{-1} + a_2 z^{-2}} </math>
 
:Podemos obter a realização de <math>\ H_1(z) </math>  na forma direta.
 
:<math>\ W(z) = (b_0 + b_1 z^{-1} + b_2 z^{-2})X(z) </math>
 
:Para obter a realização de <math>\ H_2(z) </math> , é necessário reescrever a saída <math>\ Y(z) </math> em função de <math>\ W(z) </math> e das saídas anteriores <math>\ Y(z) z^{-1} </math> e <math>\ Y(z) z^{-2} </math>:
 
:<math>\ Y(z) = \frac{W(z)}{1 + a_1 z^{-1} + a_2 z^{-2}} </math>
 
:<math>\ Y(z)({1 + a_1 z^{-1} + a_2 z^{-2}}) = W(z) </math>
 
:<math>\ Y(z) = W(z) - a_1 Y(z) z^{-1} - a_2 Y(z) z^{-2} </math>
 
<center>[[Arquivo:IIR_FD1_MathWorks.png |600 px]]</center>
 
<center> Figura 8 - Realização de filtros IIR na Forma Direta I</center>
 
 
 
: Com o ordenamento dos blocos <math>\ H_2(z) </math> e <math>\ H_1(z) </math> em ordem reversa teremos a Forma Direta II:
 
:<math> H_2(z) = \frac{V(z)}{X(z)} = \frac{1}{1 + a_1 z^{-1} + a_2 z^{-2}} </math>
 
:<math>\ V(z) = X(z) - a_1 V(z) z^{-1} - a_2 V(z) z^{-2} </math>
 
 
 
:<math> H_1(z) = \frac{Y(z)}{V(z)} = b_0 + b_1 z^{-1} + b_2 z^{-2} </math>
 
:<math>\ Y(z) = (b_0 + b_1 z^{-1} + b_2 z^{-2})V(z) </math>
 
 
 
<center>[[Arquivo:IIR_FD2a_MathWorks.png |600 px]]</center>
 
<center> Figura 9 - Realização de filtros IIR na Forma Direta II</center>
 
 
 
:Considerando que os sinais no centro são idênticos podemos simplificar e obter a Forma Direta II (Canônica):
 
<center>[[Arquivo:IIR_FD2b_MathWorks.png |600 px]]</center>
 
<center> Figura 10 - Realização de filtros IIR na Forma Direta II Canônica</center>
 
 
 
:Considerando as regras de transposição podemos obter a forma transposta I e II. A transposição consiste na inversão do fluxo de todos os sinais, substituição de nós de soma por derivações e as derivações por soma. A entrada e saída também devem ser invertidas. A realização da transposição não altera o sistema implementado.
 
 
 
<center>[[Arquivo:IIR_FT1_MathWorks.png |600 px]]</center>
 
<center> Figura 11 - Realização de filtros IIR na Forma Transposta I</center>
 
 
 
<center>[[Arquivo:IIR_FT2_MathWorks.png |600 px]]</center>
 
<center> Figura 12 - Realização de filtros IIR na Forma Transposta II</center>
 
 
 
:* Realização de filtros IIR de ordem maior que 2: Forma Direta I e II, Transposta I e II, Cascata, Paralela
 
::*Os filtros IIR de ordem superior a 2 podem ser implementados nas FD I ou II e na FT I ou II.  No entanto nessa configuração tendem a ficar instáveis ao terem os coeficientes quantizados, e também terem uma significativa alteração da resposta em frequência.  Para reduzir esses problemas uma possível solução é a decomposição em filtros de 2ª ordem para serem associados na forma em Cascata ou Paralela. 
 
:* Ver [http://www.mathworks.com/help/dsp/ref/biquadfilter.html Biquad Filter]
 
:* Ver funções do Matlab: [http://www.mathworks.com/help/matlab/ref/roots.html roots], [http://www.mathworks.com/help/matlab/ref/poly.html poly], [http://www.mathworks.com/help/signal/ref/residuez.html residuez], [http://www.mathworks.com/help/signal/ref/tf2zp.html tf2zp],  [http://www.mathworks.com/help/signal/ref/zp2tf.html zp2tf], [http://www.mathworks.com/help/signal/ref/zp2sos.html zp2sos], [http://www.mathworks.com/help/signal/ref/tf2sos.html tf2sos], [http://www.mathworks.com/help/signal/ref/tf2latc.html tf2latc].
 
:* Implementar o exercício 6.3: Forma direta I, Forma direta II, Cascata.
 
:* Implementar o exercício 6.13: Forma direta I, Cascata e Paralela.
 
:*Ver pag. 313 a de 353 <ref name="SHENOI2006"/>.
 
:*Ver pag. 469 a 474 do Lathi <ref name="Lathi2007"> LATHI, Bhagwandas P. '''Sinais e Sistemas Lineares'''. 2. ed. Porto Alegre: Artmed-Bookman, 2007. 856 p. ISBN 978-8560031139 </ref>
 
*Filtros Digitais: Ferramentas do Matlab para projeto
 
:*[http://www.mathworks.com/help/signal/ug/practical-introduction-to-digital-filter-design.html Practical Introduction to Digital Filter Design]
 
:*[http://www.mathworks.com/help/signal/ug/filter-design-gallery.html Filter Design Gallery]
 
:*Função para projeto de filtros - [http://www.mathworks.com/help/signal/ref/designfilt.html designfilt]
 
 
 
;Aula 23 ()
 
*Filtros Digitais: Utilização de 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 o seguinte sinal:
 
* 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 através do filtro 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(48,[2000 2100]/Fs); % Filtro Hamming com ordem 48 passa faixa
 
 
 
sound(x,Fs)  % Atenção remova o fone de ouvido antes de realizar este procedimento.
 
y = filter(b,1,x);
 
sound(y,Fs)  % Atenção remova o fone de ouvido antes de realizar este procedimento.
 
subplot(311); spectrogram(x, blackman(128), 100, 200, Fs)
 
subplot(312); spectrogram(y, blackman(128), 100, 200, Fs)
 
[Hw, w] = freqz(b,1,2000);
 
subplot(313); plot(w/pi*Fs/2,20*log10(abs(Hw))); ylim([-100,0]);
 
 
 
</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.
 
;Aula 24 e 25(31 Out e 3 Nov):
 
* Projeto de um receptor DTMF.
 
:* cada aluno deverá projetar dois discriminadores de frequências correspondente a duas linhas e duas colunas do sistema DTMF.
 
:* As especificações do discriminador de frequência, mostrado na figura, são:
 
<center> [[Arquivo:DiscriminadorDTMF.png]]</center>
 
::* A frequência de amostragem ''f_s'' do sinal de entrada é de 8 kHz.
 
::* Os filtros passa banda (BP) deverão ter, inicialmente, uma largura de banda ''BW' correspondente a 10% da frequência central ''f_0''.
 
::* Os filtros passa baixa (LP) deverão ter, inicialmente, uma freqüência de passagem ''f_p'' de 100 Hz.
 
::* O circuito retificador deve se implementado pela função '''abs'''.
 
::* Neste projeto o sinal de entrada terá uma frequência de amostragem do sinal de de 44.100 Hz. Recomenda-se que antes de realizar todas as filtragens indicadas no diagrama, se faça uma filtragem passa-baixa com um filtro de 2 polos do tipo Butterworth ou Chebychev 1,  com fc = 0.5*44.100/11 ~ 2kHz, seguido de uma subamostragem para a nova frequência de ~ 4kHz.
 
 
 
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/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]
 
* [http://www.etsi.org/deliver/etsi_es/201200_201299/20123503/01.01.01_50/es_20123503v010101m.pdf ETSI ES 201 235-3 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 3: Receivers]
 
* [http://www.etsi.org/deliver/etsi_es/201200_201299/20123504/01.01.01_50/es_20123504v010101m.pdf ETSI ES 201 235-4 - Specification of Dual Tone Multi-Frequency (DTMF) Transmitters and Receivers; Part 4: Receivers for use in Terminal Equipment for end-to-end signalling]
 
 
 
;Aula 26 ():
 
*Atraso de grupo em filtros IIR e FIR no Matlab}}
 
:*O '''atraso de  grupo''' de um filtro é a medida da atraso médio do filtro em função da frequência do sinal de entrada. Ele é obtido pela primeira derivada da resposta de fase do filtro. Se a resposta em frequencia é <math>H(e^{j \omega}) </math> , então o atraso de grupo é:
 
::<math>\tau_g(\omega) =\frac {d \theta (\omega)} {d \omega}</math>
 
::onde <math>\tau_g(\omega) </math> é a fase de <math>H(e^{j \omega}) </math>.
 
:*[http://www.mathworks.com/help/signal/ref/grpdelay.html Função para o cálculo do atraso de grupo (group delay) no Matlab]
 
:*[http://www.mathworks.com/help/signal/ug/compensate-for-the-delay-introduced-by-a-filter-with-feedback.html Compensação do atraso introduzido pelo filtro IIR].
 
:*[http://www.mathworks.com/help/signal/ref/filtfilt.html Filtragem digital com fase nula].
 
:*[http://www.mathworks.com/help/signal/ug/compensate-for-the-delay-introduced-by-a-filter.html Compensação do atraso introduzido pelo filtro FIR].
 
 
 
:*Um filtro sem distorção de fase (Não causal) pode ser obtido ao passar uma sequencia x(n) por um filtro H1, tomando a saída do filtro revertida e passando novamente pelo mesmo filtro H1.  A saída do último filtro revertida corresponde ao sinal x(n) filtro com fase zero.  O filtro obtido desta forma tem as seguintes características:
 
::*A Distorção de fase nula
 
::*A função de transferência do filtro é igual a magnitude ao quadrada da função de transferência original do filtro H1.
 
::*A ordem do filtro é o dobro da ordem do filtro H1.
 
:*Exemplo de aplicação a filtragem de um sinal ECG com ruído [[Arquivo:noisyecg.txt noisyecg.mat]]:
 
<syntaxhighlight lang=matlab>
 
%% Carregando um sinal de ECG com ruído com duração de 4 segundos.
 
load noisyecg.mat
 
x = noisyECG_withTrend;
 
fa = 500;  %% 2000 amostras em 4 segundos => 500 amostras por segundo.
 
t = [0:length(x)-1]*1/fa;
 
plot(t,x);
 
 
 
%% Projetando um filtro passa-baixa tipo IIR  butter com f_passagem = 0.15 rad/s
 
d = designfilt('lowpassiir', ...
 
    'PassbandFrequency',0.15,'StopbandFrequency',0.2, ...
 
    'PassbandRipple',1,'StopbandAttenuation',60, ...
 
    'DesignMethod','butter');
 
freqz(d)
 
 
 
%% Filtro de x revertido x e somando com x filtrado. OFF LINE
 
y = flip(filter(d,flip(filter(d,x))));
 
y1 = filter(d,x);
 
 
 
figure(2);
 
subplot(2,1,1)
 
plot(t, [y y1])
 
title('Filtered Waveforms')
 
legend('Zero-phase Filtering','Conventional Filtering')
 
 
 
subplot(2,1,2)
 
plot(t, [x y])
 
title('Original Waveform')
 
legend('noisy ecg ','fitered ecg')
 
</syntaxhighlight>
 
 
 
:*Verifique também o resultado da filtragem usando um filtro IIR (ellip, cheby1 ou cheby2) e filtros FIR (equiripple e de janela)
 
 
 
<syntaxhighlight lang=matlab>
 
%% Projetando um filtro passa-baixa tipo FIR  equiripple com f_passagem = 0.15 rad/s
 
d = designfilt('lowpassfir', ...
 
    'PassbandFrequency',0.15,'StopbandFrequency',0.2, ...
 
    'PassbandRipple',1,'StopbandAttenuation',60, ...
 
    'DesignMethod','equiripple');
 
 
 
y = flip(filter(d,flip(filter(d,x))));
 
</syntaxhighlight>
 
*Note que nos filtros FIR de fase linear o procedimento mais simples é adiantar o sinal de acordo com o atraso de grupo (metade da ordem do filtro), devendo-se tomar cuidado para arredondar a meia amostra nos filtros de ordem impar.
 
 
 
<syntaxhighlight lang=matlab>
 
y1 = filter(d,x);
 
gd = grpdelay(d);
 
gd1 = ceil(gd(1));
 
y = [y1(gd1:end); zeros(gd1-1, 1)];
 
</syntaxhighlight>
 
 
 
O cálculo do atraso de grupo pode ser realizado utilizando a função '''grpdelay''' ou diretamente pela definição da derivada do ângulo em relação a frequência:
 
 
 
::<math>\tau_g(\omega) =\frac {d \theta (\omega)} {d \omega} = \lim_{\Delta_{\omega} \to 0} \frac{\theta(\omega+\Delta_{\omega}) - \theta(\omega)}{\Delta_{\omega}} </math>
 
 
 
<syntaxhighlight lang=matlab>
 
%% Calculo do atraso de grupo
 
% Método 1 - uso da função grpdelay
 
[z,p,k] = butter(30,0.2);
 
sos = zp2sos(z,p,k);
 
[gd,w]=grpdelay(sos,128);
 
figure(1)
 
plot(w/pi,gd),grid on;
 
% Método 2 - derivada obtida por aproximação discreta
 
% calculo a cada par de pontos (w2-w1)/delta_w
 
[h,w] = freqz(sos);
 
a = unwrap(angle(h));
 
hold on; plot(w/pi,a,'g');
 
delta_w = pi/length(a);
 
plot(w(1:end-1)/pi+delta_w/2,-(a(2:end)-a(1:end-1))/delta_w,'r');
 
</syntaxhighlight>
 
 
 
* Ler [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=492552 Gustafsson, F. "Determining the initial states in forward-backward filtering." IEEE® Transactions on Signal Processing. Vol. 44, April 1996, pp. 988–992], artigo que propos um técnica de minimizaçao dos transientes de inicio e fim do sistema linear.
 
 
 
<!--
 
;Aula 24 (9 Jun):
 
*Projeto de filtros Passa-Tudo para equalizar a fase (atraso de grupo) de filtros IIR.
 
:* Projetar filtros Passa-tudo que equalizam a fase na faixa de passagem do filtro
 
:* Ver funções [http://www.mathworks.com/help/signal/ref/isallpass.html isallpass], [http://www.mathworks.com/help/dsp/ref/iirgrpdelay.html iirgrpdelay], [http://www.mathworks.com/help/matlab/ref/conv.html conv].
 
:* Estudar os quatro exemplos de [http://jp.mathworks.com/help/releases/R13sp2/pdf_doc/filterdesign/filterdesign.pdf] pag.2-56 a 2-63.
 
:* Obter o filtro cascata através da multiplicação dos polinômios do numerador e denominador.
 
:* Ler: Lang, M.; Laakso, T.I., [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=275662 "Simple and robust method for the design of allpass filters using least-squares phase error criterion,"] Circuits and Systems II: Analog and Digital Signal Processing, IEEE Transactions on , vol.41, no.1, pp.40,48, Jan 1994
 
*Filtros de fase mínima.
 
:*Ver [http://www.mathworks.com/help/signal/ref/isminphase.html fase mínima],
 
 
 
;Aula 25 (14 Jun):
 
*Ponto Fixo e Ponto Flutuante
 
:*[https://www.mathworks.com/help/fixedpoint/ug/floating-point-numbers.html Floating-Point Numbers]
 
:*[https://www.mathworks.com/help/fixedpoint/fixed-point-basics-2.html Fixed-Point Basics]
 
:*[https://www.mathworks.com/help/fixedpoint/ug/precision-and-range.html Precision and Range]
 
*Aritmética Binária
 
:*[https://www.mathworks.com/help/fixedpoint/ug/arithmetic-operations.html Arithmetic operations]
 
::*Modulo Arithmetic
 
::*Casting
 
*Fixed-point in MATLAB
 
::*[https://www.mathworks.com/help/fixedpoint/ref/fi.html fi]
 
::*[https://www.mathworks.com/help/fixedpoint/ref/bin.html bin], [https://www.mathworks.com/help/fixedpoint/ref/oct.html oct], [https://www.mathworks.com/help/fixedpoint/ref/hex.html hex]
 
::*[https://www.mathworks.com/help/fixedpoint/ref/dec.html dec]
 
*Quantização do Filtro Digital
 
:*[https://www.mathworks.com/help/signal/ref/design.html design]
 
:*[https://www.mathworks.com/help/dsp/ug/fixed-point-filter-design-1.html Fixed-Point Filter Design]
 
<syntaxhighlight lang=matlab>
 
filtSpecs = fdesign.lowpass('Fp,Fst,Ap,Ast',0.2,0.25,0.5,40);
 
%% Design IIR butterworth filter
 
Hiir = design(filtSpecs,'butter','MatchExactly','passband');
 
Hiir
 
Hiir.Arithmetic = 'fixed';
 
Hiir
 
%get(Hiir)
 
%% Design FIR equiripple filter
 
Hfir = design(filtSpecs,'equiripple')
 
Hfir
 
Hfir.Arithmetic = 'fixed';
 
Hfir
 
</syntaxhighlight>
 
:*[https://www.mathworks.com/help/signal/ref/dfilt.html dfilt], [https://www.mathworks.com/help/signal/ref/dfilt.cascade.html cascade], [https://www.mathworks.com/help/signal/ref/dfilt.parallel.html parallel]
 
:*[https://www.mathworks.com/help/dsp/ref/fixed-point-filter-properties.html Fixed-Point Filter Properties]
 
:*[https://www.mathworks.com/help/dsp/ug/use-fdatool-with-dsp-system-toolbox-software.html Access the Quantization Features of FDATool].
 
 
 
Ver mais em:
 
:*[https://www.mathworks.com/help/fixedpoint/fixed-point-basics.html Fixed-Point Basics in MATLAB]
 
:*[https://www.mathworks.com/help/fixedpoint/ref/_bp7g699.html Glossary]
 
-->
 
===Unidade 5===
 
;Aula 27 a 29 ():
 
:*Uso do Simulink
 
::* Uso dos blocos de simulação [http://www.mathworks.com/help/simulink/slref/sinewave.html sinewave], [http://www.mathworks.com/help/simulink/slref/floatingscope.html scope] e [http://www.mathworks.com/help/dsp/ref/spectrumanalyzer.html Spectrum Analyzer].
 
::* Outros blocos [http://www.mathworks.com/help/simulink/slref/mux.html mux], [http://www.mathworks.com/help/simulink/slref/demux.html demux], [http://www.mathworks.com/help/simulink/slref/add.html sum], [http://www.mathworks.com/help/simulink/slref/product.html product].
 
::* Exemplo: construção de um modulador AM.
 
::*[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
 
 
 
::*[http://www.mathworks.com/academia/student_center/tutorials/slregister.html Interactive Simulink Tutorial]
 
:::*Bases da modelagem gráfica com Simulink (45 minutos)
 
::::    [http://www.mathworks.com/academia/student_center/tutorials/simulink/onramp/player.html?slide=38 Working with MATLAB 9:12] - Pass data between Simulink and MATLAB
 
::::    [http://www.mathworks.com/academia/student_center/tutorials/simulink/onramp/player.html?slide=48 Creating Subsystems 6:46] - Simplify your model by grouping blocks into subsystems
 
:::*É importante ler informações complementares sobre o [http://www.mathworks.com/help/simulink/gui/solver-pane.html Solver Pane], [http://www.mathworks.com/help/simulink/gs/create-a-simple-model.html Model Simulation], [http://www.mathworks.com/help/simulink/ug/choosing-a-solver.html Choose a Solver]
 
 
 
:::* Usando o Simulink para modelagem de Sistemas Dinâmicos Discretos(60 minutos)
 
::::[http://www.mathworks.com/academia/student_center/tutorials/simulink/modeldynamic/player.html?slide=1 Modeling Discrete Dynamical Systems 19:35] - Learn to use the Integer Delay and Discrete Filter blocks to model difference equations
 
::::[http://www.mathworks.com/academia/student_center/tutorials/simulink/modeldynamic/player.html?slide=16 Use DSP System Toolbox 12:01] - Explore the basics of DSP System Toolbox, and model a simple system
 
::::[http://www.mathworks.com/academia/student_center/tutorials/simulink/modeldynamic/player.html?slide=26 Working with Signals in Simulink 9:59] - Learn frame-based processing and its benefits, and visualize signals in frequency domain
 
::::[http://www.mathworks.com/academia/student_center/tutorials/simulink/modeldynamic/player.html?slide=35 Applying a Filter 9:04] - Learn to model noise and implement a hand-designed filter to remove noise
 
::::[http://www.mathworks.com/academia/student_center/tutorials/simulink/modeldynamic/player.html?slide=44 Designing and Implementing a Filter 10:23] - Design a digital filter using the filter design tool and review signal processing application examples
 
 
 
::::: dspstartup.m command
 
 
 
:::*É 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 30 e 31:
 
*Projeto do Detector de DTMF utilizando o Simulink.
 
 
 
===ATUAL===
 
;Aula 32 a 34:
 
:*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>
 
 
 
::*Simulação do projeto 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
 
 
 
NOTA: Se você selecionou [x] Simulate generated HDL test bench durante o Workflow, 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}}
 
 
 
:* Implementar o filtro indicado abaixo e realizar a simulação com MODELSIM
 
{{collapse top |Exemplo de um Filtro IIR}}
 
*Código da função de filtragem
 
<syntaxhighlight lang=matlab>
 
% FILE mlhdlc_iir_filter.m
 
 
function y = mlhdlc_iir_filter(x, sos, g)
 
 
% Declare persistent variables and initialize
 
numSections = numel(sos)/6;
 
persistent z
 
if isempty(z)
 
z = zeros(numSections, 2);
 
end
 
 
y = x;
 
for k=coder.unroll(1:numSections)
 
    curSOS = sos((k-1)*6+1:k*6);
 
    [y z(k,:)] = biquad_filter(y, curSOS(1:3), curSOS(4:6), z(k, :));
 
end
 
y = y * g;
 
 
end
 
 
function [y, z] = biquad_filter (x, b, a, z)
 
% a(1) is assumed to be 1
 
% Direct-form II implementation
 
 
tmp = x - z(1)*a(2) - z(2)*a(3);
 
y = z(2) * b(3) + z(1) * b(2) + tmp * b(1);
 
z(2) = z(1);
 
z(1) = tmp;
 
 
end
 
</syntaxhighlight>
 
*Código do testbench
 
<syntaxhighlight lang=matlab>
 
%  Copyright 2011-2013 The MathWorks, Inc.
 
 
% FILE: mlhdlc_iir_filter_tb.m
 
 
clear mlhdlc_iir_filter;
 
 
% All frequency values are in MHz.
 
 
Fs = 100;  % Sampling Frequency
 
 
N  = 4;    % Order
 
Fc1 = 29.5;  % First Cutoff Frequency
 
Fc2 = 30.5;  % Second Cutoff Frequency
 
[z,p,k] = butter(N/2,[Fc1 Fc2]/(Fs/2),'bandpass');
 
[sos1,g1] = zp2sos(z,p,k);     % Convert to SOS form
 
[num,den] = zp2tf(z,p,k);
 
 
L = 1000;
 
Fs = Fs*1e6  %  Passa para MHz
 
t = (0:L-1)'/Fs; 
 
x = 0.5*sin(2*pi*30e6*t) + 0.5*cos(2*pi*20e6*t) + + 0.5*cos(2*pi*35e6*t);
 
rng('default'); % always default to known state 
 
x = x + .5*randn(size(x));  % noisy signal
 
y = zeros(size(x));
 
%%
 
% Call to the design
 
sos = sos1.';
 
g = g1;
 
for k=1:numel(x)
 
    y(k) = mlhdlc_iir_filter(x(k), sos(:), g);
 
end
 
%%
 
close all;
 
figure('Name', [mfilename, '_psd_plot']);
 
pwelch(x, 128);
 
hold on;
 
pwelch(y, 128);
 
yh = get(gca,'Children');
 
set(yh(1),'Color','r');
 
</syntaxhighlight>
 
 
 
{{collapse bottom}}
 
*:Ver também
 
::*[http://www.matlabexpo.com/in/2013/proceedings/generating-optimizing-and-verifying-hdl-code-with-matlab-and-simulink.pdf Generating, Optimizing and Verifying HDL Code with MATLAB and Simulink]
 
::*[http://www.mathworks.com/products/hdl-coder/features.html#automating-fpga-design HDL Coder - Mathworks]
 
 
 
==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. 
 
====PARA ENTREGAR====
 
 
 
{{collapse top | AE1 - Variação do Experimento 1.2  (prazo XX/Ago/2016)}}
 
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 |AE1 - Projeto de Filtros Digitais IIR (Prazo de entrega 10/10/2016 as 02:10:10 (madrugada))}}
 
:Uma das metodologias de projeto de filtros digitais IIR, consiste em:  (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 desejado; (c) transformação do filtro analógico em filtro digital H(s) -> H(z) utilizando a transformação Bilinear.  Neste exercício avaliativo é solicitado que cada aluno realize o projeto do um conjunto de filtros, seguindo os passos acima descritos.
 
{| class="wikitable"
 
! Aluno
 
! Tipo
 
! w1
 
! w2
 
! Tipo
 
! Gp
 
! w1
 
! w2
 
! w3
 
! w4
 
|-
 
| Katharine
 
| HP
 
| 0.3
 
| 0.7
 
| BP
 
| 10
 
| 0.1
 
| 0.3
 
| 0.4
 
| 0.5
 
|-
 
| Fernando
 
| LP
 
| 0.3
 
| 0.7
 
| BS
 
| -10
 
| 0.1
 
| 0.3
 
| 0.4
 
| 0.5
 
|-
 
| Tamara
 
| HP
 
| 0.4
 
| 0.8
 
| BS
 
| 3
 
| 0.2
 
| 0.3
 
| 0.4
 
| 0.6
 
|-
 
| André
 
| LP
 
| 0.4
 
| 0.8
 
| BP
 
| -3
 
| 0.2
 
| 0.3
 
| 0.4
 
| 0.6
 
|-
 
| Maria
 
| HP
 
| 0.4
 
| 0.5
 
| BP
 
| 6
 
| 0.2
 
| 0.3
 
| 0.4
 
| 0.5
 
|-
 
| Marcos
 
| LP
 
| 0.4
 
| 0.5
 
| BS
 
| -6
 
| 0.2
 
| 0.3
 
| 0.4
 
| 0.5
 
|-
 
| Iago
 
| HP
 
| 0.4
 
| 0.6
 
| BS
 
| 1
 
| 0.5
 
| 0.6
 
| 0.7
 
| 0.8
 
|-
 
| Gabriel
 
| LP
 
| 0.4
 
| 0.6
 
| BP
 
| -1
 
| 0.5
 
| 0.6
 
| 0.7
 
| 0.8
 
|-
 
| Khristine
 
| HP
 
| 0.3
 
| 0.4
 
| BP
 
| 20
 
| 0.4
 
| 0.6
 
| 0.7
 
| 0.9
 
|}
 
 
 
 
 
:onde:
 
:: LP - Passa Baixa, HP - Passa Altas, BP - Passa Faixa, BS - Rejeita Faixa
 
:: <math> W_N </math> - são as "N" frequência de especificação do filtro dadas em frequência digital normalizada (entre 0 a 1) onde 1 corresponde a metade da frequência de amostragem do sistema, ou ao valor de frequencia angular de <math> \pi </math>;
 
:: <math> W_p </math> - frequência de passagem; <math> W_s </math> - frequência de rejeição, <math> A_p </math> - Atenuação máxima na banda de passagem (dB), <math> A_s </math> - Atenuação mínima na banda de rejeição (dB), <math> G_p </math> - Ganho médio na banda de passagem (dB).
 
:: No filtro 1 deve ser do tipo '''Chebyshev I''', com Ap = 1 dB, As = 35 dB, G_p = 0 dB, para LP <math> W_1 = W_p </math>, <math> W_2 = W_s </math>,  para HP <math> W_1 = W_s </math>, <math> W_2 = W_p </math>.
 
:: No filtro 2 deve ser do tipo '''Butterworth''', com Ap = 0.1 dB, As = 20 dB, para BP <math> W_2 </math> e <math> W_3 </math> são <math> W_{p1} </math> e <math> W_{p2} </math>, <math> W_1 </math> e <math> W_4 </math> são <math> W_{s1} </math> e <math> W_{s2} </math>,  para BS <math> W_1 </math> e <math> W_4 </math> são <math> W_{p1} </math> e <math> W_{p2} </math>, <math> W_2 </math> e <math> W_3 </math> são <math> W_{s1} </math> e <math> W_{s2} </math>.
 
 
 
:* Os projetos dos filtro 1 e 2 deve apresentar o cálculo da ordem do filtro, dos polos, a equação de H(p), H(s), H(z), |H(jw)|^2, a magnitude e fase do filtro nas frequências de passagem e rejeição especificadas.
 
:* Para todos os filtros, apresente de modo gráfico a resposta em frequência do filtro (ganho em dB e fase) dos filtros (a) protótipo H(p), (b) Filtro analógico H(s)  e Filtro digital H(z).
 
:* Apresentar o gráfico do ganho em dB e da fase em cada caso com escalas corretas e com legendas
 
:* Deve ser apresentado o diagrama dos pólos e zeros dos filtros H(s) e H(z)
 
:* Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Cada figura deverá ter "label" adequado nos eixos das abscissas e ordenadas além de um "caption" com numeração descrevendo o que trata a figura.
 
::* O "Publish" pode ser utilizado, mas o arquivo entregue deve ser PDF.
 
:* Envie o relatório em pdf e os arquivos ".m" utilizados para o email "moecke at ifsc.edu.br" com o Assunto: '''PSD29007 - AE2 - Projeto de Filtros Digitais IIR'''.
 
{{collapse bottom}}
 
 
 
{{collapse top |  AE2 - Projeto de Filtro Digitais FIR - MATLAB (Prazo de entrega 21/10/2016)}}
 
:1. Projeto 4 filtros digitais FIR com fase linear com as mesmas características dos filtros da AE1.
 
:*Dois filtros devem ser de janela fixa, um usando a janela de Kaiser e um o método de Park-McClellan.
 
:* Utilize as funções adequadas do Matlab para obter os coeficientes das janelas e em seguida utilize a função [http://www.mathworks.com/help/signal/ref/fir1.html fir1] para obter os filtros.
 
:* Ajuste a ordem do filtro e frequência de passagem de modo a conseguir que cada filtro atenda as especificações iniciais.
 
:* Coloque uma mascara no filtro que identifique claramente as especificações do filtro.
 
:3. Para cada tipo de janela, apresente de modo gráfico a resposta em frequência do filtro (ganho) de menor ordem que atende as especificações.  Sobreponha os gráficos inserindo uma legenda adequada (indicando o tipo de janela e ordem).  Utilizando um escala em dB (entre 10 dB e -80 dB) e frequência em kHz. 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]]
 
:6. Gere um arquivo "pdf" utilizando o '''Publish''' com os resultados e texto explicativo e envie o email "moecke at ifsc.edu.br" com o Assunto: '''PSD29007 - AE2 - Projeto de Filtro Digitais FIR - MATLAB'''.
 
{{collapse bottom}}
 
 
 
{{collapse top | expand = true |  AE3 - Projeto de Detectores DTMF - MATLAB (Prazo de entrega 22/11/2016)}}
 
*Equipe 1 - Números 1, 3, 0, #, Butterworth PB e PA, FIR para os BP - Maria, André e Cantu
 
*Equipe 2 - Números 2, 5, *, 4, Chebyshev 1 PB e PA, FIR para os BP - Fernando, Iago e Marcos
 
*Equipe 3 - Números 6, 8, 9, 7  Chebyshev 2 PB e PA, FIR para os BP - Tamara, Kristhine e Katharine
 
 
 
{{collapse bottom}}
 
 
 
{{collapse top | expand = true |  AE4 - Projeto de Detectores DTMF - SIMULINK (Prazo de entrega 04/12/2016)}}
 
*Equipe 1 - Números 1, 3, 0, #, Butterworth PB e PA, FIR para os BP - Maria, André e Cantu
 
*Equipe 2 - Números 2, 5, *, 4, Chebyshev 1 PB e PA, FIR para os BP - Fernando, Iago e Marcos
 
*Equipe 3 - Números 6, 8, 9, 7  Chebyshev 2 PB e PA, FIR para os BP - Tamara, Kristhine e Katharine
 
 
 
{{collapse bottom}}
 
 
 
{{collapse top | expand = true |  AE5 - Projeto de Detectores DTMF - VHDL (Prazo de entrega 19/12/2016)}}
 
*Equipe 1 - Números 1, 3, 0, #, Butterworth PB e PA, FIR para os BP - Maria, André e Cantu
 
*Equipe 2 - Números 2, 5, *, 4, Chebyshev 1 PB e PA, FIR para os BP - Fernando, Iago e Marcos
 
*Equipe 3 - Números 6, 8, 9, 7  Chebyshev 2 PB e PA, FIR para os BP - Tamara, Kristhine e Katharine
 
 
 
{{collapse bottom}}
 
 
 
====JÁ ENCERRADAS====
 
====ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO====
 
 
 
==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]]
 
* [[Uso do calculo simbólico na Matlab]]
 
* [http://www.mathworks.com/help/symbolic/performing-symbolic-computations.html Perform Symbolic Computations] - 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.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]
Linha 1 129: Linha 77:
 
* [[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]]
 
* [[PSD29007-Engtelecom(2015-2) - Prof. Marcos Moecke]]
 
* [[PSD29007-Engtelecom(2016-1) - Prof. Marcos Moecke]]
 
* [[PSD29007-Engtelecom(2016-2) - Prof. Marcos Moecke]]
 
  
 
==Alguns artigos para leitura==
 
==Alguns artigos para leitura==
Linha 1 147: 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