|
|
(38 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ê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. |
− | 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===
| |
− | | |
− | ==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}}
| |
− | | |
− | ====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 960: |
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 979: |
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]]
| |
| | | |
| ==Alguns artigos para leitura== | | ==Alguns artigos para leitura== |
Linha 996: |
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}} |