E 2 Lab 3 FIR

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

ELECTRÓNICA II

3º Trabalho de Laboratório
FILTRO DIGITAL FIR

Prof. Paulo Flores

Instituto Superior Técnico


Departamento de Engenharia Electrotécnica e de Computadores
Área Científica de Electrónica

1
Objectivo:

O objectivo deste trabalho é projectar e simular filtros FIR (Finite Impulse Response), de
modo a familiarizar o aluno com uma parte do fluxo de projecto filtros, em particular filtros
digitais.

O trabalho a realizar está dividido em três partes/passos conceptuais:


1. Projecto teórico do filtro digital FIR;
2. Projecto e análise do filtro digital FIR;
3. Projecto de outros filtros FIR (com outras características) e comparação das suas
características.

Neste trabalho serão usadas as técnicas aprendidas nas aulas teóricas para o projecto de
filtros FIR e utilizada a ferramenta Octave [1], com o package signal [2] [3], para a análise
e simulação dos filtros projectados. Em alternativa pode ser usada a ferramenta comercial
Matlab, tendo em conta que, licenças válidas devem ser usadas para correr, quer a
ferramenta, quer para ter acesso a alguns pacotes/funções usados neste laboratório.

O sistema que se pretende modelar encontra-se representado na figura seguinte em que o


sinal de entrada analógico será composto por três sinais sinusoidais com diferentes
frequências. O filtro a implementar deverá eliminar as duas componentes de maior
frequência para que o sinal de saída analógico seja uma sinusóide apenas com a
componente de menor frequência do sinal de entrada.

( )= sin( )+ sin( )+ sin( )


( )= sin( + )

Para simplificação do laboratório assume-se que o Sample and Hold (S&H) e o conversor
Analógico-Digital (A/D) estão implementados externamente e fornecem ao filtro o sinal de
entrada amostrado. De igual forma, assume-se que o conversor Digital-Analógico (D/A) e o
Filtro Passa-Baixo (LPF) estão implementados externamente e que, a partir de um sinal
amostrado, obtido pelo filtro digital, geram o respectivo sinal de saída analógico.

2
Conteúdo:

Este trabalho é disponibilizado com os seguintes ficheiros:


• e2Lab3FiltrosFIR.pdf - este guia;
• lab3Conf.m – script Octave com as características do filtro e ondas de entrada;
• lab3FIRcoef.m - script Octave onde os alunos vão calcular os coeficientes do filtro;
• lab3FIR.m – script Octave onde é feita a analise do filtro (gerado graficamente várias
representações no domínio do tempo e da frequência).

1 Projecto teórico do filtro digital FIR


1. Pretende-se projectar um filtro passa-baixo com frequência de corte = 1 , utili-
zando o método da truncatura da resposta impulsional, usando uma janela rectangu-
lar (método das janelas). Considere uma frequência de amostragem = 6 kHz.
No relatório, apresente a expressão e os respectivos parâmetros numéricos que per-
mitem calcular os coeficientes (h0, h1, …, hN-1,) de um filtro FIR com fase linear cons-
tituído = 20 coeficientes.
2. Calcule o atraso teórico apresentado por este filtro?

2 Projecto e análise do filtro digital FIR


1. Observe o script Octave no ficheiro lab3Conf.m onde são definidas as característi-
cas do filtro e das ondas de entrada.
2. No Octave, uma forma de obter os coeficientes de um filtro FIR consiste em usar a
função fir1(…) (disponível após a instalação da biblioteca para processamento de
sinais [3]). Esta função permite calcular os coeficientes de um filtro FIR de forma op-
timizada usando vários tipos de janelas e em que a frequência de corte ocorre apro-
ximadamente a -6dB do ganho de patamar.
3. Os cálculos seguintes devem ser realizados no script Octave com o seguinte nome
lab3FIRcoef.m, onde os coeficientes do filtro devem ser guardados num vector
chamado hn = [...] (1xN);
4. Altere o script lab3FIRcoef.m de forma a guardar no vector hn o valor dos coefici-
entes de um filtro FIR com uma frequência de corte = 1 , com = 20 coefici-
entes para uma frequência de amostragem = 6 kHz e usando uma janela rectan-
gular através da função fir1(…):

hn = fir1(filterOrder, CutOffFreq, "low", rectwin(N));

Consulte os parâmetros a usar na função através do comando: help fir1


(só disponível após o carregamento da biblioteca de processamento de sinal com o
comando: pkg load signal).

3
5. Calcule as primeiras 25 amostras na saída do filtro (y[n]) para a amostra unitária na
entrada (dirac):

1 n  0
xn   
0 n  0

Use o valor dos coeficientes do filtro que calculou e guardou em hn.


6. No script de Octave lab3FIR.m é feita a análise do filtro projectado. Ou seja, com
os coeficientes hn que gerou anteriormente no script lab3FIRcoef.m, são gerados
uma série de gráficos no tempo e frequência que permitem analisar e observar a
resposta do filtro à onda de entrada compostas por três sinusóides de amplitude 2V
e frequências de 600Hz, 1.1kHz e 2.0kHz.
7. Observe o script de Octave lab3FIR.m para compreender as diferentes operações
e analises/gráficos que irão ser realizados.
8. Execute o script de Octave lab3FIR.m que irá gerar vários gráficos (referidas no
restante guia como: Figure x) que devem ser analisados e comentados no relatório
de acordo com os seguintes pontos do guia.
9. Observe a resposta em frequência e fase do filtro que projectou (Figure 11).
Determine a frequência de corte do filtro a -6dB do ganho de patamar.
Pelo diagrama de fase determine o atraso do filtro.
10. Observe o sinal de entrada, e o respectivo sinal amostado, que vai ser colocado à
entrada do filtro. Este é composto pela soma de três sinais sinusoidais de amplitude
2 e com as frequências de 600Hz, 1.1kHz e 2.0kHz (Figure 21).
11. Observe a representação na frequência de cada uma das sinusóides e o espectro
resultante do sinal de entrada do filtro, que é a soma das três sinusóides (Figure 22).
12. Observe a sobreposição do espectro do sinal de entrada com a sobreposição da res-
posta em frequência do filtro (Figure 23). Comete sobre a capacidade deste filtro ser
um bom passa-baixo com frequência de corte = 1 .
13. Após ser calculado o resultado da saída do filtro, paras o 20ms do sinal de entrada
com a função filter() do Octave, observe o sinal de entrada e o sinal de saída
filtrado (Figure 24). Repare que a maioria das componentes de alta frequência foram
eliminadas.
14. No espectro do sinal de saída (Figure 25) pode-se observar que este é composto por
várias frequências residuais. Determine o valor e as frequências (em Hz) das duas
componentes com maior peso no sinal de saída.
15. O sinal de saída do filtro após ser convertido para um sinal analógico (Figure 26)
apresenta maioritariamente uma componente de 600Hz. Observe e determine o
atraso no sinal de saída face à onda de entrada de 600Hz. Compare com o valor
teórico esperado que determinou anteriormente (ver 1.2).

4
3 Projecto de outros filtros FIR
Nesta parte do trabalho deverá basear-se no filtro projectado (Filtro 0) de modo a obter
outros dois filtros FIR com as seguintes características:
1. (Filtro 1) - Projecte o filtro FIR com 20 coeficientes, mas usando uma janela de
Hamming. Use de novo a função fir1() Octave para obter os coeficientes do filtro:

hn = fir1(filterOrder, cutOffFreq, “low”, hamming(N))

2. (Filtro 2) – Projecte este filtro como o anterior (Filtro 1) mas aumentando o número
de coeficientes do filtro para o dobro (N=40).

Para cada um destes filtros deverá, após adaptado devidamente os vários scripts
(lab3Conf.m e lab3FIRcoef.m), executar o script lab3FIR.m e observe os gráficos
resultantes (em particular os gráficos da Figure 23, que apresenta a resposta em frequência
do filtro sobreposta com o espectro da onda de entrada.).
Observe e compare as diferentes respostas dos três filtros que projectou, analisou.
Compare e comente os filtros projectados em termos de reposta em frequência/tempo
salientado os seguintes aspectos:

 Largura de banda;
 Ripple nas bandas de passagem e atenuação;
 Resposta em fase e respectivo atraso no sinal de saída.

Apresente no relatório apenas os gráficos necessários para suportar as suas comparações


e conclusões.

O relatório não deve ter mais que 10 páginas (capa excluída).

4 Referências
[1] GNU Octave: https://www.gnu.org/software/octave/index

[2] Signal Processing package - Signal processing tools, including filtering, windowing and
display functions: https://octave.sourceforge.io/signal/index.html

[3] GNU Octave Manual - Installing and Removing Packages:


https://octave.org/doc/v6.2.0/Installing-and-Removing-Packages.html

[4] Community Packages: https://octave.sourceforge.io/packages.php

Você também pode gostar