Mudanças entre as edições de "PSD29007-Engtelecom(2018-2) - Prof. Marcos Moecke"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 1 094: Linha 1 094:
 
   
 
   
 
*Entrega dos Atividades Extraclasse ao longo do semestre AE1 a AE(N). A entrega, detalhes e prazos de cada AE serão indicados na plataforma Moodle
 
*Entrega dos Atividades Extraclasse ao longo do semestre AE1 a AE(N). A entrega, detalhes e prazos de cada AE serão indicados na plataforma Moodle
<!--
 
{{collapse top | expand = true | Atividades Relâmpago (prazo e forma de entrega ver na plataforma AVA)}}
 
* [https://moodle.sj.ifsc.edu.br/mod/assign/view.php?id=4134 Atividade Relâmpago - AR1]
 
{{collapse bottom}}
 
  
{{collapse top | expand = true | AE1 - Revisão de Sinais e Sistemas  (prazo e forma de entrega ver na plataforma AVA)}}
+
{{collapse top | expand=true| AP1 - Projeto de Filtros Digitais IIR e FIR (Entrega e prazos ver Moodle)}}
*Esta atividade poderá ser desenvolvida individualmente ou em duplas (de no máximo duas pessoas). No dia 9/03 os alunos deverão informar os nomes das duplas.  
+
Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais IIR e FIR:
 +
* No caso dos filtros IIR, a metodologia envolve a realização de: (a) projeto de um filtro protótipo analógico passa-baixas H(p); (b) transformação em frequência do filtro H(p) -> H(s), obtendo o filtro LP, HP, BP, BS, conforme o tipo de filtro desejado; (c) transformação do filtro analógico em filtro digital H(s) -> H(z) utilizando a transformação "Bilinear" ou pela transformação "Invariante ao Impulso".  
 +
* No caso dos filtros FIR, são solicitadas três técnicas diferentes de projeto de filtro: (a) com janelas fixas, (b) com janela ajustáveis; (b) com o algoritmo de Parks-McCleallan (PM); 
 +
* Nesta avaliação é solicitado que cada equipe projeto os mesmos filtros IIR e FIR. Os detalhes de cada filtro são indicados na tabela abaixo. Para todos os filtros considere como valores ''default'' fa = 8 kHz, Gp = 0 dB, Ap = 2 dB e As = 40 dB (exceto caso indicado outro valor na tabela abaixo).
  
:* ATIVIDADE 1 - Experimento 1.2
+
O filtro BP deverão ter apenas o BP1 projetado conforme o procedimento completo, sendo que nos demais deverá ser aproveitado o filtro H(p) para obtê-los.
# 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.  
 
  
:* ATIVIDADE 2 - Experimento 2.2
 
#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
 
 
:* ATIVIDADE 1 - Experimento 3.1
 
# Utilizando Nh = 10 e  Nx = 20, execute a filtragem pelo menos 3 vezes em seguida e anote os tempos.
 
# Anote o tamanho dos sinais de saída y, e analise os plots.
 
# Aumente o tamanho do filtro (Nh) e o tamanho do sinal de entrada (Nx) e execute a filtragem pelo menos 3 vezes em seguida e anote os tempos.
 
# Anote o tamanho dos sinais de saída y.
 
# Explique os resultados obtidos.
 
 
:* ATIVIDADE 2 -  Experimento 3.2
 
# Acrescente um subplot para mostrar o sinal no domínio da frequência com a magnitude em dB  20*log10(abs(X)). 
 
# Limite a escala da magnitude entre -100 e 1 dB usando ylim.
 
# Insira em todos os plots e subplot, títulos, legendas e labels para os eixos X e Y,
 
#  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.
 
# Varie o valor de snr entre 100 e 1  e analise o sinal no domínio do tempo e no domínio da frequência.
 
# Utilize k = 0.3 e snr = 40 e varia a frequência do sinal entre 0 até 200 Hz (com passo de 10 Hz).  Interprete os resultados obtidos.
 
 
:* ATIVIDADE 3 - Experimento 1.2 + 3.2
 
# Utilizando o espectro de frequência (Exp3.2) repita as medições feitas com o processo de amostragem (Experimento 1.2)
 
# Varie o valor da frequência de amostragem de 6 até 20 Hz e observe
 
# Para analisar o espectro talvez seja conveniente mudar a amplitude dos sinais de entrada (sugestão A1 = 0.3 e A2 = 0.8).
 
# Em qual frequência deixa de ocorrer recobrimento do sinal 2.
 
# Qual conclusão que você chega em relação a amostragem de sinais utilizando para a frequência de amostragem  valores acima e abaixo do dobro da frequencia de Nyquist.
 
 
:* ATIVIDADE 4 - Filtragem de sinal DTMF
 
# Usando o Matlab (ou Audacity) gere um sinal DTMF correspondente a um número N (ver tabela abaixo), com duração de 2 segundos, com frequência de amostragem de 4kHz.
 
# Use o Matlab para ouvir o sinal x[n], mostrar o sinal no domínio do tempo e frequência.
 
# Use um filtro passa-faixa que permita a passagem apenas da frequência da linha (ou coluna) y[n].  Faça a filtragem no domínio do tempo, usando a função filter. Para projetar o filtro, posicionando no mínimo um polo sobre a frequência que deseja passar, e  um zero sobre a frequência que deseja rejeitar.
 
# Use o Matlab para ouvir o sinal x[n], mostrar o sinal no domínio do tempo e frequência.
 
# VER os experimentos 3.1, 3.2 e 2.3 para códigos de auxilio.
 
 
<center>
 
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
! scope="col" width=60% align="center"| Aluno
+
! scope="col" width=10% align="left"| Equipe
! scope="col" width=40% align="center"| Tecla
+
! scope="col" width=15% align="center"| Filtro 1
 +
! scope="col" width=15% align="center"| Filtro 2
 +
! scope="col" width=20% align="center"| Filtro 3
 
|-
 
|-
| Fernando || 1
+
| Equipe 1 (Maria e Paulo)
 +
| LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB)
 +
| HP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, G0 = 10 dB)
 +
| BP - (f1 = 627 Hz; f2 = 683 Hz, f3 = 711 Hz; f4 = 767 Hz)
 
|-
 
|-
| Gabriel || 6
+
| Equipe 2 (Gustavo e Kleiton)
 +
| LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 25 dB, G0 = 5dB)
 +
| HP - (f1 = 950 Hz; f2 = 1300 Hz, As = 25 dB)
 +
| BP - (f1 = 847 Hz; f2 = 922 Hz, f3 = 960 Hz; f4 = 1035 Hz)
 
|-
 
|-
| Jessica || 0
+
| Equipe 3 (Renan e Marina)
|-
+
| LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 30 dB)
| João || 3
+
| HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 20 dB)
|-
+
| BP - (f1 = 767 Hz; f2 = 835 Hz, f3 = 869 Hz; f4 = 937 Hz, G0 = -10dB)
| Leticia || 9
 
|-
 
| Marcos || 5
 
|-
 
| Pedro || 8
 
|-
 
| Vitor || 2
 
 
|}
 
|}
</center>
 
 
* Enviar o relatório (em pdf) incluindo as principais figuras obtidas e as respostas e conclusões na plataforma AVA.
 
* Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a [https://www.sharelatex.com?r=205ee4bd&rm=d&rs=b Plataforma Sharelatex]. Utilize preferencialmente o [http://pt.sharelatex.com/project/5980bfd0b8ec417a1f5e71d8 modelo de artigo no padrão ABNT] em 1 coluna. Se quiser pode utilizar o publish do matlab mas entregue o documento em pdf, com as respostas solicitadas e as conclusões de cada Atividade. 
 
{{collapse bottom}}
 
 
{{collapse top |  AE1 - Projeto de Filtros Digitais IIR (Entrega e prazos ver Moodle)}}
 
Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais IIR: (a) projeto de um filtro protótipo analógico passa-baixas H(p); (b) transformação em frequência do filtro H(p) -> H(s), obtendo o filtro LP, HP, BP, BS, conforme o tipo de filtro desejado; (c) transformação do filtro analógico em filtro digital H(s) -> H(z) utilizando a transformação "Bilinear" ou pela transformação "Invariante ao Impulso".  Nesta avaliação é solicitado que cada equipe realize o projeto de 4 filtros, e trabalhos individuais serão 3 filtros.  Para todos os filtros considere como valores default fa = 8 kHz, Gp = 0 dB, Ap = 0.5 dB e As = 30 dB (exceto se indica outro valor na tabela abaixo. Os filtro BP deverão ter apenas o BP1 projetado conforme o procedimento completo, sendo que nos demais deverá ser aproveitado o filtro H(p) para obtê-los.
 
  
 +
:onde:
 +
:: LP (''Low Pass'')- Passa Baixa, HP (''High Pass'')- Passa Altas, BP (''Band Pass'')- Passa Faixa, BS (''Band Stop'')- Rejeita Faixa
 +
:: <math> f_N </math> - são as "N" frequência de especificação do filtro dadas em Hertz (kHz ou MHz);  f_a é a frequência de amostragem dos sinais e do sistema.
 +
:: <math> f_p </math> - frequência de passagem; <math> f_r </math> - frequência de rejeição, <math> A_p </math> - Atenuação máxima na banda de passagem (dB), <math> A_r </math> - Atenuação mínima na banda de rejeição (dB), <math> G_p </math> - Ganho médio na banda de passagem (dB).
 +
Alguns detalhes sobre o projeto dos filtros para cada equipe.
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
{| class="wikitable"  border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
 
! scope="col" width=10% align="left"| Equipe
 
! scope="col" width=10% align="left"| Equipe
Linha 1 183: Linha 1 135:
 
! scope="col" width=15% align="center"| Filtro 2
 
! scope="col" width=15% align="center"| Filtro 2
 
! scope="col" width=20% align="center"| Filtro 3
 
! scope="col" width=20% align="center"| Filtro 3
! scope="col" width=20% align="center"| Filtro 4
 
 
|-
 
|-
 
| Equipe 1  
 
| Equipe 1  
| LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, Butterworth)
+
| IIR - Chebyshev I, FIR - Janela Fixa (Escolha a mais adequada)
| HP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, Chebychev 1)
+
| IIR - Butterworth, FIR - Janela Ajustável (Kaiser)
| BP1 - (f1 = 627 Hz; f2 = 683 Hz, f3 = 711 Hz; f4 = 767 Hz, Elíptico )  
+
| BP - Eliptico, FIR - PM
| BS1 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico  )
 
 
|-
 
|-
 
| Equipe 2
 
| Equipe 2
| LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 25 dB, Chebychev 1)
+
| IIR - Butterworth, FIR - Janela Ajustável (Kaiser)
| HP - (f1 = 950 Hz; f2 = 1300 Hz,, As = 25 dB, Butterworth)
+
| IIR - Chebyshev II, FIR - Janela Fixa (Escolha a mais adequada)
| BP1 - (f1 = 847 Hz; f2 = 922 Hz, f3 = 960 Hz; f4 = 1035 Hz, Chebychev 2 )  
+
| BP - Eliptico, FIR - PM
| BS1 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )
 
 
|-
 
|-
 
| Equipe 3  
 
| Equipe 3  
| LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 30 dB, Chebychev 1)
+
| IIR - Eliptico, FIR - Janela Fixa (Escolha a mais adequada)
| HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 20 dB, Butterworth)
+
| IIR - Butterworth, FIR - Janela Ajustável (Kaiser)
| BS1- (f1 = 767 Hz; f2 = 835 Hz, f3 = 869 Hz; f4 = 937 Hz, Elíptico  )
+
| BP Chebyshev II, FIR - PM
| BP1 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico  )
 
|-
 
| Equipe 4
 
| LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 25 dB, Butterworth)
 
| HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 35 dB, Chebychev 1)
 
| BP1 - (f1 = 1088 Hz; f2 = 1185 Hz, f3 = 1233 Hz; f4 = 1330 Hz, Chebychev 2 )  
 
| BS1 - (f1 = 1329 Hz; f2 = 1447Hz, f3 = 1507 Hz; f4 = 1625 Hz, Chebychev 2 )
 
|-
 
| Equipe 5
 
| LP - (f1 = 850 Hz; f2 = 1200 Hz, As = 35 dB, Chebychev 1)
 
| HP - (f1 = 850 Hz; f2 = 1200 Hz, As = 25 dB, Butterworth)
 
| BP1 - (f1 = 693 Hz; f2 = 755 Hz, f3 = 785 Hz; f4 = 847 Hz, Elíptico  )
 
| BS1 - (f1 = 1202 Hz; f2 = 1309 Hz, f3 = 1363 Hz; f4 = 1470 Hz, Elíptico  )
 
 
|}
 
|}
  
:onde:
+
:* Os filtros IIR do tipo Butterworth devem ser todos os calculados efetuados a partir das equações, enquanto os demais filtros IIR podem ser projetados obtendo a função H(p) diretamente com funções do Matlab.
:: LP (''Low Pass'')- Passa Baixa, HP (''High Pass'')- Passa Altas, BP (''Band Pass'')- Passa Faixa, BS (''Band Stop'')- Rejeita Faixa
+
:* O filtro FIR de janela fixa ou ajustável podem ter a janela calculada diretamente usando funções do Matlab. Nos dois casos é necessário calcular os valores dos coeficientes da série de Fourier
:: <math> f_N </math> - são as "N" frequência de especificação do filtro dadas em Hertz (kHz ou MHz);  f_a é a frequência de amostragem dos sinais e do sistema.
+
:* O filtro FIR BP deve ser projetado usando o algoritmo de Parks-McCleallan.
:: <math> f_p </math> - frequência de passagem; <math> f_r </math> - frequência de rejeição, <math> A_p </math> - Atenuação máxima na banda de passagem (dB), <math> A_r </math> - Atenuação mínima na banda de rejeição (dB), <math> G_p </math> - Ganho médio na banda de passagem (dB).
+
:* Em todos os filtros busque obter a menor ordem que possibilite ter uma resposta de frequência que atende a sua especificação.
:*Os filtros LP e HP devem ser realizados utilizando a aproximação de Butterworth ou Chebyshev tipo 1 (devendo ser todos os calculados efetuados a partir das equações), enquanto os filtros BP e BS devem ser realizados utilizando a aproximação de Chebyshev tipo 2 ou Euler (podendo ser calculada a função H(p) a partir das funções do Matlab.  
+
:* Se achar necessário utilize o FVTOOL e o FDAtool para a análise dos filtros.
:* A tabela acima indica o tipo de filtro que cada equipe deve utilizar.
+
 
:* Para ambos filtros deve indicada a ordem do filtro, o valor de polos e zeros, e as equações de H(p), H(s), H(z).
+
;ENTREGAS:  
:* Deve ser apresentado de forma gráfica a resposta em frequência dos filtros (ganho em dB e fase) dos filtros (a) protótipo H(p), (b) Filtro analógico H(s)  e Filtro digital H(z).  Para mostrar que os filtros atendem a especificação utilize uma mascara com as especificações.
+
:* Deverá ser feita um quadro comparativo dos filtros FIR x IIR indicando no mínimo a ordem dos filtros.
:* No caso do filtro H(z) também deve ser mostrado o atraso de grupo (ver função [https://www.mathworks.com/help/signal/ref/grpdelay.html grpdelay] do Matlab)
+
:* A resposta em frequência dos filtros IIR e FIR do mesmo tipo (ganho em dB e fase) deverá ser mostrada em um mesmo gráfico.   
:* Apresente o diagrama dos pólos e zeros dos filtros H(p), H(s) e H(z)
+
:* 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:
:* Utilize a mesma escala em dB para os 3 gráficos de cada filtroNas abcissas utilize uma escala em Hz (kHz ou MHz). Utilize uma mascara com cor diferenciada para indicar claramente a especificação do filtro, e crie um segundo gráfico mostrando claramente a banda de passagem conforme ilustrado nas figuras abaixo:
 
 
[[Arquivo:KaiserFIR.png| 600 px | Resposta em frequência - Ganho em dB ]] [[Arquivo:KaiserFIRZoom.png |600 px | Detalhe da banda de passagem da resposta em frequência - Ganho em dB]]
 
[[Arquivo:KaiserFIR.png| 600 px | Resposta em frequência - Ganho em dB ]] [[Arquivo:KaiserFIRZoom.png |600 px | Detalhe da banda de passagem da resposta em frequência - Ganho em dB]]
 
+
:* Também deverá ser mostrado o atraso de grupo dos filtros (ver função [https://www.mathworks.com/help/signal/ref/grpdelay.html grpdelay] do Matlab)
 +
:* O diagrama dos pólos e zeros dos filtros
 +
:* Utilize escala em dB para as respostas em frequência. 
 +
:* Tanto no resposta em frequência como no atraso de grupo use nas abcissas utilize uma escala em Hz (kHz ou MHz) adequada ao seu caso.
 
:* Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Não é necessário apresentar a teoria utilizado para o projeto, mas todos os cálculos e metodologia utilizada devem estar documentados.
 
:* Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Não é necessário apresentar a teoria utilizado para o projeto, mas todos os cálculos e metodologia utilizada devem estar documentados.
 +
:* Compare os vários aspectos diferentes dos filtros e faça uma análise sobre as diferenças entre os IIR e FIR.
 
:* Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma Moodle.
 
:* Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma Moodle.
 
{{collapse bottom}}
 
{{collapse bottom}}
  
{{collapse top  | AE2 - Projeto de Filtros Digitais FIR (Entrega e prazos ver Moodle)}}
+
<!--
Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais FIR: (a) Projeto de filtros com Janela fixas e ajustáveis; (b) Projeto de filtros com o algoritmo de Parks-McCleallan;  Nesta avaliação é solicitado que cada equipe realize os mesmos filtros projeto de filtros da atividade AE1 (somente os filtros 1 a 3).
 
:*O filtro LP deve ser realizado utilizando uma janela fixa calculando os valores dos coeficientes da série de Fourier, os valores do vetor da janela podem ser obtidos usando as funções do Matlab. .
 
:*O filtro HP deve ser realizado utilizando uma janela ajustável de Kaiser, podendo ser utilizado diretamente funções do Matlab que calculam a janela. 
 
:*O filtro BP deve ser projetado usando o algoritmo de Parks-McCleallan.
 
:* Procure obter em cada caso a menor ordem que possibilite ter uma resposta de frequência que atende a sua especificação.
 
:* Para todos filtros deve indicada a ordem do filtro.
 
:* Deve ser apresentado de forma gráfica a resposta em frequência dos filtros (ganho em dB e fase) dos filtros digitais H(z).
 
:* Deve ser apresentado o diagrama dos pólos e zeros do filtro H(z)
 
:* Utilize a mesma escala em dB para os filtros.  Nas abcissas utilize uma escala em Hz (kHz ou MHz). 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 da atividade AE1.
 
:* Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Não é necessário apresentar a teoria utilizado para o projeto, mas todos os cálculos e metodologia utilizada devem estar documentados.  Note este relatório é simplificado, mas é necessário uma análise textual dos resultados.
 
:* Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma Moodle.
 
{{collapse bottom}}
 
 
 
 
{{collapse top | AE4 - Realização de Filtro Digitais FIR e IIR (Entrega e prazos ver Moodle (4 Dez as 13h00)}}
 
{{collapse top | AE4 - Realização de Filtro Digitais FIR e IIR (Entrega e prazos ver Moodle (4 Dez as 13h00)}}
 
:1. Objetivo projetar filtros que tem a a mesma especificação de magnitude usando diferentes tipos de filtro digital, sendo um do tipo IIR e outro do tipo FIR. Estabelecer uma comparação entre esses filtros e escrever um breve relatório mostrando as vantagens do filtro escolhido sobre o outro.
 
:1. Objetivo projetar filtros que tem a a mesma especificação de magnitude usando diferentes tipos de filtro digital, sendo um do tipo IIR e outro do tipo FIR. Estabelecer uma comparação entre esses filtros e escrever um breve relatório mostrando as vantagens do filtro escolhido sobre o outro.
Linha 1 344: Linha 1 270:
 
{{collapse bottom}}
 
{{collapse bottom}}
 
-->
 
-->
 +
 
==Referências Bibliográficas==
 
==Referências Bibliográficas==
 
<references/>
 
<references/>
  
 
{{ENGTELECO}}
 
{{ENGTELECO}}

Edição das 12h21min de 6 de novembro de 2018

Registro on-line das aulas

Unidade 1

Unidade 1

Aula 1 (26 jul)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
  • Explorar a interface do Matlab.
  • Funções de visualização das variáveis no workspace.
  • Execução de instruções passo a passo.
  • Escrita de script .m
  • Uso da execução das seções de um script.
  • Incremento de valor e execução.
EXEMPLOS:
  • Leia com atenção e execute o exemplo (Moving-Avarage Filter) na página de help da função filter.
Aula 2 (31 jul)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
  • Leia com atenção o help Using FFT, abra o script clicando no botão [Open this Example]. Execute o script seção após seção. Note o uso da fft para determinar a frequência das manchas solares.
  • Para melhorar o desempenho no Matlab recomendo que leiam a pagina do Help, . Também gostaria de lembra-los que a tecla F9 executa o código destacado no Help. Programação com scripts .m.
  • Leia sobre manchas solares para entender o que são os dados do segundo exemplo.
Sinais no dominio do tempo e dominio da frequencia. Uso da função fft
Exemplo de uso da FFT
%% Signal in Time Domain 
% Use Fourier transforms to find the frequency components of a signal buried in noise.
% Specify the parameters of a signal with a sampling frequency of 1 kHz and a signal duration of 1.5 seconds
Fs = 1000;            % Sampling frequency                    
T = 1/Fs;             % Sampling period       
L = 1500;             % Length of signal
t = (0:L-1)*T;        % Time vector

% Form a signal containing a 50 Hz sinusoid of amplitude 0.7 and a 120 Hz sinusoid of amplitude 1.
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);

% Corrupt the signal with zero-mean white noise with a variance of 4.
X = S + 2*randn(size(t));

% Plot the noisy signal in the time domain. It is difficult to identify the frequency components by looking at the signal X(t).
subplot(211);
plot(1000*t(1:200),X(1:200))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('t (milliseconds)')
ylabel('X(t)')

%% Signal in Frequency Domain
% Compute the Fourier transform of the signal.
Y = fft(X);

% Compute the two-sided spectrum P2. Then compute the single-sided spectrum P1 based on P2 and the even-valued signal length L.
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

% Define the frequency domain f and plot the single-sided amplitude spectrum P1. 
% The amplitudes are not exactly at 0.7 and 1, as expected, because of the added noise. 
% On average, longer signals produce better frequency approximations.
f = Fs*(0:(L/2))/L;
subplot(212);
plot(f,P1)
ylim([0 1.05]) 
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')

% Now, take the Fourier transform of the original, uncorrupted signal and retrieve the exact amplitudes, 0.7 and 1.0.
Y = fft(S);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

plot(f,P1) 
title('Single-Sided Amplitude Spectrum of S(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
  • 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 (3 Hz) e um sinal (7 Hz) são idênticas quando amostrado com um sinal de 10 Hz.
Experimento 1.2
%  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')
DICAS:
  • No help on-line da Matworks, usando o botão [Try This Example > Try in your browser], permite executar o código no próprio browser sem ter nenhuma instalação do Matlab. Para verificar que o código realmente é executado mude a amplitude do ruído randômico para 0.1 ou 0.5, insira o comando close all antes da primeira linha, e execute todo o código [Run All]
  • No help do Matlab, usando o botão [Open this Example], é possível executar o código seção a seção.
Aula 3 (2 ago)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Variação do Experimento 2.2
%  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)
syms z
Hf(z) = symfun(z^2/(z-0.2)/(z+0.8),z);
pretty(Hf)
latex(Hf)
N = 1;
w = [0:pi/100:N*pi-pi/100];
plot(w/pi,abs(Hf(exp(1i*w))))
%title(['$' latex(Hf) '$'],'interpreter','latex')
text(0.2,2,['H(z) = ' '$$' latex(Hf) '$$'],'interpreter','latex')
xlabel(['w/' '$$' '\pi' '$$'],'interpreter','latex')
  1. Verifique a diferença entre os tipos de plots comentados no código.
  2. substitua o denominador de H(z) por dois polos em [-0.8 -0.8].
  3. verifique o que ocorre se forem utilizados polos complexos conjugados [0.3-0.4i 0.3+0.4i 0.1]
  4. verifique o que ocorre se forem utilizados polos complexos não conjugados [0.3-0.4i 0.3+0.8i]
  5. verifique o que ocorre se os polos estiverem fora do circulo unitário [1.2 -0.2]. Interprete este resultado
Aula 4 (7 ago)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
%% Experimento 2.3 - Filtros Digitais
% Exemplos e Experimentos baseados no livro:
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
% FILE: Exp2_3.m
 
%% 1º filtro
p1 = 0.9*exp(1j*pi/4);
Z = [1 -1 ]'; P = [p1 p1']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
 
%% 2º filtro
z1 = exp(1j*pi/8);
z2 = exp(1j*3*pi/8);
p1 = 0.9*exp(1j*pi/4);
Z = [1 -1 z1 z1' z2 z2']';
P = [p1 p1' p1 p1' p1 p1']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
 
%% 3º filtro
z1 = exp(1j*pi/8);
z2 = exp(1j*3*pi/8);
p1 = 0.99*exp(1j*pi/4);
p2 = 0.9*exp(1j*pi/4 - 1j*pi/30);
p3 = 0.9*exp(1j*pi/4 + 1j*pi/30);
Z = [1 -1 z1 z1' z2 z2']';
P = [p1 p1' p2 p2' p3 p3']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
  • Diferentes formas de realizar a filtragem de Sinais (
  • convolução (conv(x,h)),
  • filtragem no domínio do tempo (y = a1.x(n)+ a2.x(n-1)+ .. ak.x(n-k));
  • no domínio da frequência (y = ifft(fft(x)fft(h))
Variação do Experimento 3.1
%% Variação do Experimento 3.1 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.
% FILE: Ex3_1.m
% Exemplificando as possiveis formas de realizar a filtragem de um sinal x(n)

clc; clear all; close all;
%% Definindo valores iniciais
Nh = 10; Nx = 20;
%Nh = 400; Nx = 10000;
x = ones(1,Nx);
% A resposta ao inpulso de um sistema h(n) 
% no filtro FIR aos coeficientes b(n) = h(n) 
h = [1:Nh]; b = h;
%% Filtrando o sinal e medindo tempos

% Filtragem utilizando a convolução
% NOTE: length(y) = length(x) + length(h) -1
tic;  % iniciar a contagem do tempo
y1 = conv(x,h); 
t(1) = toc; % terminar acontagem e mostrar tempo no console

% filtragem utilizando a equação recursiva
% NOTE: length(y) = length(x)
tic;
y2 = filter(b,1,x);
t(2) = toc;

% filtragem utilizando a equação recursiva
% aumentando o tamanho de x para que length(y3) = length(y1)
x3 = [x zeros(1,length(h)-1)];
tic;
y3 = filter(h,1,x3); 
t(3) = toc;

length_y = length(x) + length(h) - 1;

% filtragem utilizando a FFT
% a y = IFFT(FFT(x)*FFT(h))
tic;
X = fft(x,length_y);
H = fft(h,length_y);
Y4 = X.*H;
y4 = ifft(Y4);
t(4) = toc;

% filtragem utilizando a função fftfilt
% a y = IFFT(FFT(x)*FFT(h))

tic
y5 = fftfilt(h,x3);
t(5) = toc;

disp('Comprimento do vetor de saída length(y)')
disp(['    ' num2str([length(y1) length(y2) length(y3) length(y4) length(y5)])])
disp('Tempo usado na filtragem em micro segundos')
disp(['    ' num2str(t*1e6) ' us'])

%%  Plotando o gráfico
subplot(411);stem(y1);
hold on;
stem(y2,'xr');
stem(y3,'+m');
legend('y1', 'y2', 'y3')
hold off
subplot(412);stem(y1, 'ob');legend('y1')
subplot(413);stem(y2, 'xr'); hold on; stem(zeros(size(y1)),'.w');hold off; legend('y2')
subplot(414);stem(y3, '+m');legend('y3')
  • Notar a diferença de tempo de processamento entre os processos de filtragem.
  • A situação pode ser muito diferente conforme muda o tamanho do sinal e ordem do filtro (h(n)).
Aula 5 (9 ago)
  • Exercício - Sinal DTMF com ruído
  • Verifique se o Matlab está reproduzindo corretamente o som.
%% Carregando o som
clear, close, clc
load handel;

%% Reproduzindo o som 
sound(y,Fs)
 
% Reproduzindo o som 
%soundsc(y,Fs)
 
% Reproduzindo o som 
%player = audioplayer(y, Fs);
%play(player);
  • Usando o Matlab (ou Audacity) para gerar um sinal DTMF correspondente a um número N e adicionar um ruido ao sinal. Opcionalmente utilize um sinal DTMF gravado
  • Utilizar uma frequência de amostragem de 8000Hz de fazer a duração do sinal igual a 2 segundos.
Sinal 1234567890*#
  • Para adicionar o ruído utilize a função y = awgn(x,snr), ou y = x + nivel*randn(n).
  • Observe este sinal no domínio do tempo (DT) e domínio da frequência (DF).
%% Carregando o som
clear, close, clc
[y,Fs] = audioread('DTMF_8kHz.ogg');

%% Reproduzindo o som 
sound(y,Fs)

%% Visualizando o som no DT
time = [0:length(y)-1]'/Fs;
plot(time',y'); xlabel('segundos');
xlim([0 time(end)]), ylim([-1 1]);

%% Visualizando o som no DF
Nfreq = length(y);
freq = linspace(0,2*pi,Nfreq)'*Fs/pi/2;
Y = fft(y,Nfreq)/Nfreq;
plot(freq,abs(Y)); xlabel('Hertz');
xlim([0 Fs/2]);
  • Utilizar no Audacity um sinal DTMF ("1234567890") com fa= 8kHz
  • Visualizar no domínio do tempo e frequência.
  • Realizar a filtragem passa-baixas com fc = 1066 Hz, (selecionar a maior atenuação permitida)
  • Realizar a filtragem passa-faixa com f0 = 770 Hz e B = 70Hz (selecionar a maior ordem permitida)
  • Repetir o procedimento anterior para um sinal de ruído branco.
  • Consulte a documentação do Matlab sobre
     fft, ifft, fftshift, randn
    
  • Consulte a documentação do Matlab sobre
     plot, grid, subplot, hold, xlabel, ylabel, title, legend, xlim, ylim, log10, log
    
  • Consulte a documentação do Matlab sobre text, zp2tf, tf2zp, fftfilt, awgn
  • Ver pag. 141 a 145 e 230 a 235 de [1]
Unidade 2

Unidade 2

Aula 6 (14 ago)
  • Filtros Analógicos:
  • Função de transferência
  • Resposta em frequência: para obter a resposta em frequência é necessário avaliar
  • O projeto de filtros analógicos é realizado em 2 etapas:
  1. projeto de um filtro passa baixas (LP) protótipo normalizado com frequência de passagem
  2. transformação em frequência para o tipo de filtro (LP, HP, BP ou BS)
  • Análise básica de filtros analógicos com Matlab.
Dado um sistema linear invariante no tempo, representado pela função de transferência , obter a resposta de frequência do sistema (Magnitude e Fase).
b = [1 1];
a = [1 1 5];
[z1,p1,k]=tf2zp(b,a)
z2 = roots(b);
p2 = roots(a);
zplane(b,a);
%%
freqs(b,a);
%%
syms s  w
H(s) = (s+1)/(s^2 + s + 5);
pretty(H(1j*w))
latex(H(1j*w))
%%
ws = logspace(-2, 1, 1000);
h = H(1j*ws);
subplot(211)
semilogx(ws,abs(h)); grid on;
subplot(212)
semilogx(ws,angle(h)/pi*180); grid on;
  • Projeto de filtros analógicos do tipo Butterworth
  • A aproximação de magnitude de filtros analógicos pode ser realizado usando as aproximações de Butterworth, Chebyshev (tipo 1 ou 2) e Cauer.


Aula 7 (16 ago)
  • Projeto de filtros analógicos do tipo Butterworth, considerando: é a frequência de passagem do filtro LP, é a atenuação em dB na frequência de passagem, é a frequência de stopband do filtro, é a atenuação em dB na frequência de stopband, , , são as frequências de passagem e stopband do filtro protótipo.
  • É necessário determinar a ordem do filtro:
  • Em seguida obter os polos do filtro:
  • Em seguida é necessário obter a função de transferência:
, onde
  • No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado


Aula 8 (21 ago)
  • Projeto de filtros analógicos do tipo Butterworth, considerando: é a frequência de passagem do filtro LP, é a atenuação em dB na frequência de passagem, é a frequência de stopband do filtro, é a atenuação em dB na frequência de stopband, , , são as frequências de passagem e stopband do filtro protótipo.
  • É necessário determinar a ordem do filtro:
  • Em seguida obter os polos do filtro:
  • Em seguida é necessário obter a função de transferência:
, onde e .
NOTA: o valor também pode ser obtido a partir de , pois corresponde ao último termo do polinômio .
  • No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado
%Butterworth lowpass Responses (db)
w = 0.1:0.01:10;
H=inline('10*log10(1./(1+w.^(2*n)))','w','n');
for k = 1:1:10
    semilogx(w,H(w,k)); hold on; 
end
grid on
 
%Butterworth lowpass Responses (linear)
w = 0.1:0.01:2;
H=inline('1./(1+w.^(2*n))','w','n');
for k = 1:1:10
    plot(w,H(w,k)); hold on; 
end
grid on


Aula 9 (23 ago)
  • Projeto de filtros analógicos do tipo Chebyshev I.
  • Polinômios de Chebyshev:

Os polinômios de Chebyshev de primeira ordem são definidos pela relação recursiva:

Os primeiros cinco polinômios de Chebyshev de primeira ordem são:

  • Determine a ordem mínima necessária considerando: é a frequência de passagem do filtro LP, é a atenuação em dB na frequência de passagem, é a frequência de stopband do filtro, é a atenuação em dB na frequência de stopband, , , são as frequências de passagem e stopband do filtro protótipo.
  • Em seguida obter os polos do filtro:
, onde
  • Exemplos de projeto de filtro passa-baixas com frequência de passagem de 16000 rad/s com atenuação máxima de 0.3 dB, frequência de rejeição de 20000 rad/s com atenuação mínima de 20 dB; e ganho em DC de 3 dB.


Aula 10 (28 ago)
  • Projeto de filtros analógicos do tipo Butterworth, Chebyshev I e II e Cauer (eliptico).
%% 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');
  • Ver pag. 204 a 208 de [2]
  • Filtros Analógicos:
  • Transformações de frequência de filtros analógicos
  • passa-baixas () -> passa-baixas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-altas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
  • passa-baixas () -> rejeita-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
Aula 11 (30 ago)
  • Ver pag. 208 a 218 de [2]
  • Exemplos de Filtros Analógicos:
  • Exemplo 1: Filtro passa-baixas ( = 941Hz, = 1209 Hz, = 1 dB, = 20 dB)
  • Exemplo 2: Filtro passa-altas ( = 1209 Hz, = 941Hz, = 1 dB, = 20 dB)
  • Exemplo 3: Filtro passa-faixa ( = 811 Hz, = 895,5 Hz = 770 Hz, = 941 Hz, = 1 dB, = 30 dB)
NOTA:
  • No calculo do filtro lembre-se de usar as frequências angulares para , , , .
  • onde () é a frequência de passagem em Hz (rad/s), () é a frequência de rejeição em Hz (rad/s), () é a frequência central em Hz (rad/s), () é a largura de banda em Hz (rad/s).
  • Confira os projetos dos filtros plotando as respostas em frequência dos filtros protótipo H(p) e filtro final H(s) de cada um dos exemplos.
Aula 12 (4 set)
  • 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)
  • Obter a especificação do filtro em angulo entre 0 e 1, onde 1 corresponde a metade da frequência de amostragem
  • Obter o valor desse angulo predistorcido para compensar a distorção na frequência causada pela transformação bilinear , onde
  • passa-baixas () -> passa-baixas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-altas ()
  • Substituição de variáveis
  • Cálculo do protótipo com
  • passa-baixas () -> passa-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
  • passa-baixas () -> rejeita-faixa ( e )
  • Substituição de variáveis
  • Cálculo do protótipo com
onde e
  • Ver pag. 219 a 229 de [2]
  • Ver pag. 403 a 415 e 434 a 435 de [1]
Aula 13 e 14 (6 e 11 set)
  • Filtros Digitais: Filtros IIR: Uso do Matlab.
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 e denominador de .
Unidade 3

Unidade 3

Aula 15 (13 set)
  • Filtros Digitais: Filtros FIR
  • Filtros de fase linear: simétricos e antisimétricos (Tipo 1, 2, 3 e 4)
  • Filtros de fase linear: propriedades (respostas em frequência possíveis, distribuição dos zeros em simetria quadrantal)
Aula 16 (18 set)
  • Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS
  • Passa-baixas (Low-pass)
  • Passa-altas (High-pass)
  • Passa-faixa (Band-pass)
  • Rejeita-banda (Band-stop)
  • Janela retangular, fenômeno de Gibbs
  • Uso de funções de janelamento temporal no projeto de filtros digitais.
  • Tipos de janelas temporais usadas no projeto de filtros digitais.
  • Retangular
  • Bartlett
  • Hanning
  • Hamming
  • Blackman
  • em todas as janelas quando
onde é para par e para impar
ver também apodization function
L = 64; 
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
Aula 17 (20 set)
Aula suspenda - participação no SEPEI 2018
Aula 18 (25 set)
  • Filtros Digitais: Projeto de filtro FIR utilizando janelas temporais fixas
Tabela 5.1
Janela
Retangular 13.3 20.33 0.92/M
Triangular 26.6 27.41
Bartlett 26.5 27.48
Hann 31.5 44.03 3.11/M
Bartlett-Hanning 35.9 40.77
Hamming 42.5 54.08 3.32/M
Bohman 46.0 51.84 7.01/M
Parzen 53.1 56.89
Blackman 58.1 75.25 5.56/M
Flat Top 88.0 106.3
Blackman-Harris 92.1 108.8
Nutfall 93.8 109.7
  • Dados acima obtidos para um filtro passa baixas de ordem N = 64 com
  • Projeto de filtro FIR utilizando janelas temporais fixas.
  • Exemplo de projeto
Projetar um filtro passa baixas usando uma janela temporal fixa (verificar a janela que atende a especificação)
wp = 0.2*pi; Ap = 0.2 dB; Gp = 0 dB
ws = 0.3*pi; As = 60 dB;
  • Informar qual o tipo de janela, a ordem obtida, e o valor de wc do projeto final
  • Exemplo de projeto
Projetar um filtro LP usando uma janela temporal fixa (hamming, bartlett-hanning, hanning).
wp = 0.4*pi; Ap = 1 dB; Gp = 0 dB
ws = 0.6*pi; As = 40 dB;
  • Comparar os 3 tipos de janela, a ordem obtida, e o valor de wc em cada projeto.
Use como uma estimativa inicial os valores da Tabela 5.1 pag. 268.
  • PASSO 1 - Escolher o tipo de janela de acordo com a atenuação do lóbulo lateral Asl e As.
  • PASSO 2 - Estimar a ordem N1 do filtro considerando os parâmetros Dw
  • PASSO 3 - Calcule os coeficientes clp do filtro LP , calcule os valores da janela w e obtenha a resposta ao impulso do filtro h = clp * w.
  • PASSO 4 - Verifique o valor real de Dwr = wAs-wAp, e faça a correção da ordem do filtro em função do desvio constatado. N2 = N*Dwr/Dw.
  • PASSO 5 - Corrija o valor de projeto dos coeficientes Clp do filtro ideal, a janela e a resposta ao impulso.
  • Repita o PASSO 3 até 5, até obter um filtro que atenda as especificações de Dw.
  • PASSO 6 - Desloque a frequência de corte wc de modo a obter o valor correto de wp. wc2 = wp + (wp-wAp).
  • Projeto de filtro FIR.
  • Projete os dois filtros projetados anteriormente como IIR, utilizando 3 janelas diferentes. Compare os filtros obtidos com os filtros IIR.
N = <ordem>
h_fir = fir1(N,Wn,hamming(N+1));
[Hw,w] =freqz(h_fir);
plot(w/pi,20*log10(abs(Hw)))
title(['hamming N = ' num2str(N)])
%fvtool(h_fir,1)
  • Ver pag. 256 a 265 de [2]
  • Ver artigos:
Aula 19 (27 set)
  • Filtros Digitais: Filtros FIR
  • Projeto de filtro FIR utilizando janelas temporais ajustáveis
L = 64; 
r = 60;    % Chebyshev e Tukey
alpha = 3; % Gauss
betha = 8; % Kaiser
nbar = 10; % Taylor
wvtool(kaiser(L,betha), chebwin(L,r), gausswin(L,alpha),tukeywin(L,r), taylorwin(L,nbar,-r));

Para a janela de Kaiser, a estimação do fator e da ordem do filtro são obtidos por:

onde é a atenuação do lóbulo lateral e é a largura da banda de transição em rad/amostra.

A janela de Kaiser é definida por:

onde : é a função de Bessel de ordem zero [1]

Utilizando o Matlab é possível estimar esses valores utilizando a função kaiserord. Exemplo da obtenção de um filtro passa baixa com , , atenuação de 40 dB na "stopband"

fsamp = 8000;
fcuts = [1000 1500];
mags = [1 0];
devs = [0.01 0.01];
[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);

Com os parâmetros é possível projetar o filtro usando a função fir1, que utiliza o método da janela para o projeto do filtro.

h_fir = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
[Hw,w] =freqz(h_fir);
plot(w*fsamp/2/pi,20*log10(abs(Hw)))
title(['Kaiser filter N = ' num2str(n)])
%fvtool(h_fir,1)
  • Ver as funções fir1, kaiserord do Matlab.
  • Ver pag. 266 a 273 de [2]
  • Uso das funções window e 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 20 (02 out)
  • Filtros Digitais: Filtros FIR
  • Projeto de filtro FIR
  • projetar os filtros usando: 1) Janela fixa 2) Janela ajustável 3) Parks-McClellan.
  • garantir que o filtro seja de menor ordem em cada caso, mas que esteja dentro das especificações.
  • se necessário ajustar os valores de fs, fp, Ap, As, e a ordem do filtro, indicando o critério utilizado para o ajuste.


%% Projetar o filtro passa baixas 
fp = 1200 Hz;
fs = 1380 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
%% Projetar o filtro passa altas 
fs = 1200 Hz;
fp = 1380 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
Aula 21 (04 out)
  • Projeto de filtro FIR
  • projetar os filtros usando: 1) Janela fixa 2) Janela ajustável 3) Parks-McClellan.
  • garantir que o filtro seja de menor ordem em cada caso, mas que esteja dentro das especificações.
  • se necessário ajustar os valores de fs, fp, Ap, As, e a ordem do filtro, indicando o critério utilizado para o ajuste.
%% Projetar o filtro passa faixa 
fs1 = 800 Hz;
fp1 = 900 Hz;
fp2 = 1000 Hz;
fs2 = 1300 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
%% Projetar o filtro rejeita faixa 
fp1 = 800 Hz;
fs1 = 900 Hz;
fs2 = 1000 Hz;
fp2 = 1300 Hz;
fa = 8000 Hz;
Ap = 1 dB;
Ar = 50 dB;
Aula 22 (09 out)
  • Uso do [3] para projeto de filtro IIR, FIR equiripple e FIR com janela.
  • Uso do [4] no Simulink.
Aula 23 (23 out)
  • Uso do Simulink
Aula 24 (25 out)

Para configurar o Simulink para sistemas discretos execute o comando dspstartup.m antes de abrir um novo modelo.

Aula 25 (ESTUDOS EXTRACLASSE)
para compensar a palestra da MCC
Unidade 4

Unidade 4

ATUAL

Aula 29 (1 nov)
  • Realização de Filtros
  • Realização de filtros FIR: Forma Direta.
FIR FD MathWorks.png
Figura 1 - Realização de filtros FIR na Forma Direta
  • 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.
FIR FDT MathWorks.png
Figura 2 - Realização de filtros FIR na Forma Transposta
FIR FDT2 MathWorks.png
Figura 3 - Realização de filtros FIR na Forma Transposta
  • Realização de filtros FIR de fase linear: simétrico tipo I e II e antissimétrico tipo III e IV.
FIR Sym2 MathWorks.png
Figura 4 - Realização de filtros FIR de fase linear Simétrico I
FIR Sym1 MathWorks.png
Figura 5 - Realização de filtros FIR de fase linear Simétrico II
FIR AntiSym3 MathWorks.png
Figura 6 - Realização de filtros FIR de fase linear Antisimétrico III
FIR AntiSym4 MathWorks.png
Figura 7 - Realização de filtros FIR de fase linear Antisimétrico IV
  • Realização de Filtros usando o comando realizemdl do MatLab
Fs = 30000;              % Sampling Frequency
Fpass = 12000;           % Passband Frequency
Fstop = 13000;           % Stopband Frequency
Dpass = 0.01;            % Passband Ripple
Dstop = 0.01;            % Stopband Attenuation
flag  = 'scale';         % Sampling Flag

% Calculate the order from the parameters using KAISERORD.
[N,Wn,BETA,TYPE] = kaiserord([Fpass Fstop]/(Fs/2), [1 0], [Dstop Dpass]);

% Calculate the coefficients using the FIR1 function.
b  = fir1(N, Wn, TYPE, kaiser(N+1, BETA), flag);

hFIR = dsp.FIRFilter;
hFIR.Numerator = b;

% Para definir diretamente os coeficientes
realizemdl(hFIR)

% Para definir os coeficientes através de uma matriz de entrada
realizemdl(hFIR,'MapCoeffsToPorts','on');


Unidade 5 - PROJETO FINAL

Unidade 5 - PROJETO FINAL

Avaliações

  • Entrega dos diversas Atividades Extraclasse ao longo do semestre.
  • Entrega do Projeto Final. O projeto é avaliado nos quesitos:
1) Implementação do Sistema,
2) Documentação,
3) Avaliação Global do aluno no projeto.
  • Entrega dos Atividades Extraclasse ao longo do semestre AE1 a AE(N). A entrega, detalhes e prazos de cada AE serão indicados na plataforma Moodle
AP1 - Projeto de Filtros Digitais IIR e FIR (Entrega e prazos ver Moodle)

Esta avaliação visa verificar se você conhece a metodologia de projeto de filtros digitais IIR e FIR:

  • No caso dos filtros IIR, a metodologia envolve a realização de: (a) projeto de um filtro protótipo analógico passa-baixas H(p); (b) transformação em frequência do filtro H(p) -> H(s), obtendo o filtro LP, HP, BP, BS, conforme o tipo de filtro desejado; (c) transformação do filtro analógico em filtro digital H(s) -> H(z) utilizando a transformação "Bilinear" ou pela transformação "Invariante ao Impulso".
  • No caso dos filtros FIR, são solicitadas três técnicas diferentes de projeto de filtro: (a) com janelas fixas, (b) com janela ajustáveis; (b) com o algoritmo de Parks-McCleallan (PM);
  • Nesta avaliação é solicitado que cada equipe projeto os mesmos filtros IIR e FIR. Os detalhes de cada filtro são indicados na tabela abaixo. Para todos os filtros considere como valores default fa = 8 kHz, Gp = 0 dB, Ap = 2 dB e As = 40 dB (exceto caso indicado outro valor na tabela abaixo).
O filtro BP deverão ter apenas o BP1 projetado conforme o procedimento completo, sendo que nos demais deverá ser aproveitado o filtro H(p) para obtê-los.
Equipe Filtro 1 Filtro 2 Filtro 3
Equipe 1 (Maria e Paulo) LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB) HP - (f1 = 950 Hz; f2 = 1300 Hz, As = 30 dB, G0 = 10 dB) BP - (f1 = 627 Hz; f2 = 683 Hz, f3 = 711 Hz; f4 = 767 Hz)
Equipe 2 (Gustavo e Kleiton) LP - (f1 = 950 Hz; f2 = 1300 Hz, As = 25 dB, G0 = 5dB) HP - (f1 = 950 Hz; f2 = 1300 Hz, As = 25 dB) BP - (f1 = 847 Hz; f2 = 922 Hz, f3 = 960 Hz; f4 = 1035 Hz)
Equipe 3 (Renan e Marina) LP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 30 dB) HP - (f1 = 1050 Hz; f2 = 1400 Hz, As = 20 dB) BP - (f1 = 767 Hz; f2 = 835 Hz, f3 = 869 Hz; f4 = 937 Hz, G0 = -10dB)
onde:
LP (Low Pass)- Passa Baixa, HP (High Pass)- Passa Altas, BP (Band Pass)- Passa Faixa, BS (Band Stop)- Rejeita Faixa
- são as "N" frequência de especificação do filtro dadas em Hertz (kHz ou MHz); f_a é a frequência de amostragem dos sinais e do sistema.
- frequência de passagem; - frequência de rejeição, - Atenuação máxima na banda de passagem (dB), - Atenuação mínima na banda de rejeição (dB), - Ganho médio na banda de passagem (dB).

Alguns detalhes sobre o projeto dos filtros para cada equipe.

Equipe Filtro 1 Filtro 2 Filtro 3
Equipe 1 IIR - Chebyshev I, FIR - Janela Fixa (Escolha a mais adequada) IIR - Butterworth, FIR - Janela Ajustável (Kaiser) BP - Eliptico, FIR - PM
Equipe 2 IIR - Butterworth, FIR - Janela Ajustável (Kaiser) IIR - Chebyshev II, FIR - Janela Fixa (Escolha a mais adequada) BP - Eliptico, FIR - PM
Equipe 3 IIR - Eliptico, FIR - Janela Fixa (Escolha a mais adequada) IIR - Butterworth, FIR - Janela Ajustável (Kaiser) BP - Chebyshev II, FIR - PM
  • Os filtros IIR do tipo Butterworth devem ser todos os calculados efetuados a partir das equações, enquanto os demais filtros IIR podem ser projetados obtendo a função H(p) diretamente com funções do Matlab.
  • O filtro FIR de janela fixa ou ajustável podem ter a janela calculada diretamente usando funções do Matlab. Nos dois casos é necessário calcular os valores dos coeficientes da série de Fourier
  • O filtro FIR BP deve ser projetado usando o algoritmo de Parks-McCleallan.
  • Em todos os filtros busque obter a menor ordem que possibilite ter uma resposta de frequência que atende a sua especificação.
  • Se achar necessário utilize o FVTOOL e o FDAtool para a análise dos filtros.
ENTREGAS
  • Deverá ser feita um quadro comparativo dos filtros FIR x IIR indicando no mínimo a ordem dos filtros.
  • A resposta em frequência dos filtros IIR e FIR do mesmo tipo (ganho em dB e fase) deverá ser mostrada em um mesmo gráfico.
  • Utilize uma mascara com cor diferenciada para indicar claramente a especificação do filtro, e crie um segundo gráfico mostrando claramente a banda de passagem conforme ilustrado nas figuras abaixo:

Resposta em frequência - Ganho em dB Detalhe da banda de passagem da resposta em frequência - Ganho em dB

  • Também deverá ser mostrado o atraso de grupo dos filtros (ver função grpdelay do Matlab)
  • O diagrama dos pólos e zeros dos filtros
  • Utilize escala em dB para as respostas em frequência.
  • Tanto no resposta em frequência como no atraso de grupo use nas abcissas utilize uma escala em Hz (kHz ou MHz) adequada ao seu caso.
  • Escreva um relatório técnico em PDF mostrando os resultados obtidos e comentando os resultados obtidos. Não é necessário apresentar a teoria utilizado para o projeto, mas todos os cálculos e metodologia utilizada devem estar documentados.
  • Compare os vários aspectos diferentes dos filtros e faça uma análise sobre as diferenças entre os IIR e FIR.
  • Envie o relatório em pdf e os arquivos ".m" utilizados na plataforma Moodle.


Referências Bibliográficas

  1. 1,0 1,1 1,2 1,3 DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235
  2. 2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,7 SHENOI, B. A. Introduction to Digital Signal Processing and Filter Design. 1.ed. New Jersey: John Wiley-Interscience, 2006. 440 p. ISBN 978-0471464822


Curso de Engenharia de Telecomunicações