Buscar

Trabalho Filtros Digitais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ENGENHARIA DE TELECOMUNICAÇÕES 
 
 
 
 
Filtros Digitais 
 
 
 
Gustavo Siebra Lopes 
 
Fortaleza - Ce 
 
 
 
30 de Novembro de 2013 
RESUMO 
Este trabalho apresenta um estudo em análise e projetos de filtros digitais de resposta finita (FIR) Passa 
Baixa com janela de Hamming, implementação do Filtro (IIR) Passa Baixa com aproximação de Butterworth e filtro 
Notch capaz de rejeitar uma faixa bastante estreita de frequências. O objetivo principal do projeto é comparar os 
resultados obtidos quando se usa estruturas FIR e IIR no áudio do tipo .wav que apresenta dois tipo de ruídos no qual 
as interferências devem ser eliminadas sobre o som da fala humana por meio de análise espectral do áudio e 
identificação dos componentes de frequência da fala humana e interferências. No desenvolvimento do projeto foram 
desenvolvidos programas computacionais para simulações dos filtros, empregando a plataforma MATLAB como 
ambiente de desenvolvimento. 
Palavras-chave: filtro digital, FIR, IIR, Notch, janela de Hamming 
1. INTRODUÇÃO 
Tratando-se em comunicação de dados normalmente nos depararmos com ruído e interferência em um 
canal de comunicação. Ao receber uma transmissão em um receptor, é necessário que se trate o ruído antes de 
manipular a informação em si. 
O processo de tratamento do ruído pode ser feito utilizando-se de filtros digitais ou analógicos. Um filtro 
digital é um filtro que processa sinais digitais utilizando um conversor analógico-digital (ADC), digitaliza-se o sinal a 
filtrar, em seguida este é processado por algum tipo de processador, onde está programado o filtro digital. Para se 
obter de novo um sinal analógico já filtrado, coloca-se um conversor digital-analógico (DAC). 
Comparando filtros digitais e analógicos, podemos apontar várias vantagens e desvantagens de um ou de 
outro. Em geral, filtros analógicos são mais baratos, rápidos e possuem uma grande faixa dinâmica de amplitude e 
frequência. A durabilidade dos componentes electrónicos que constituem um filtro analógico é muito menor que a 
durabilidade do equipamento de aquisição e processamento de sinal que constitui o filtro digital, a relação sinal-ruído, 
SNR (signal-to-noise ratio), que é a relação entre a potência do sinal e a potência do ruído dos filtros digitais é muito 
maior e consegue-se facilmente implementar filtros de ordem elevada, maior facilidade de manipulação e 
modificação, pois sua implementação é por software/firmware. Já o analógico, em geral, é um circuito lógico com 
capacitores, indutores, resistores, diodos e transistores, que precisa de uma modificação física para fazer alguma 
alteração. 
Para que um filtro digital possa manipular dados, é necessária a conversão analógico/digital, ou seja, 
amostrar o sinal. A ideia básica desse projeto é abordarmos o uso de filtros digitais, caracterizando-os e em seguida 
aplicar filtros digitais em sinais impróprios para comunicação. 
2. FUNDAMENTAÇÃO TEÓRICA 
Neste trabalho será dado destaque ao projeto de um filtro para a filtragem de um sinal do tipo .wav, que 
contém dois ruídos, uma sirene e um tom semelhante ao telefônico. Para os ruído foi utilizado os filtros com Resposta 
ao Impulso Infinita IIR, de Butterworth, filtro Notch e um filtro com Resposta ao Impulso Finita, FIR, Passa Baixa 
com janela Hamming. A seguir iremos fundamentar as teorias de filtro FIR, IIR e NOTCH, para posteriormente 
explicar e fundamentar as especificações do trabalho. 
2.1 Filtro Notch 
É recomendado utilizar o filtro de Notch quando o sinal a ser atenuado é bem definido. Pelo fato de atuar 
em faixas reduzidas de frequências, esse tipo de filtro interfere pouco na qualidade do sinal e é do tipo IIR, pois 
apresenta polos e zeros e tem como característica principal bandas de transições rápidas procurando cortar o mais 
próximo possível de uma única frequência. 
 
Figura 1 – Resposta em Frequência do Filtro Notch de Segunda Ordem. 
Essa resposta em frequência (Figura 1) é obtida resolvendo a equação de transferência do Filtro Notch de 
Segunda Ordem dada a seguir: 
H[z] = K * (z² + 1)/(z² + r²) 
Numa primeira análise verificam-se as posições dos polos e zeros do sistema em estudo. Os zeros devem 
estar no círculo de raio unitário por questão de transmissão zero nesse ponto de frequência. Os polos devem estar 
posicionados próximos aos zeros da função de transferência, porque é desejado cancelar os efeitos dos dois zeros 
quando a função move-se para longe desses zeros. Logo, é usado polos do tipo “j*r”, com “r” < 1, por questão de 
estabilidade, e com isso, quanto mais próximos os polos estiverem dos zeros, mais rápida será a recuperação do 
ganho CC nos dois lados da banda de transição. Isto é, quanto mais próximo “r” estiver de 1. Diante disso, tem-se a 
seguinte análise matemática: 
H[z] = 1 para z = 1, logo: K = (1+r²)/2 (I) 
H[z] = (1 – 2*cos*(Ωc)*z + z²)/(1 - 2*cos(Ωc)*r*z + r²*z²) (II) 
2.2 Filtros Fir 
Filtros do tipo FIR têm como características básicas a resposta ao impulso finita, natureza não recursiva, 
estabilidade BIBO (Bounded In, Bounded Out), fase linear e memória finita. O projeto desse tipo de filtro procura 
aproximar uma resposta ao impulso desejada e sua resposta ao impulso de ordem “M” corresponde à “M+1” 
coeficientes deste filtro, portanto o projeto significa, na prática, escolher de modo a ajustar sua resposta em 
frequência ao que se deseja. 
 
Figura 2 – Estrutura Geral de um Filtro FIR. 
Dentre os projetos de filtros FIR, tem-se o método das janelas, o método interativo de projeto ótimo (Remez 
Multiple Exchange) e amostragem por resposta em frequência. Neste trabalho adotou-se o método das janelas. Esse 
método consiste numa resposta em frequência decorrente de um filtro ideal, mas como este possui resposta em 
frequência infinita, multiplica-se esta resposta por uma janela, um sinal finito, de modo a produzir uma resposta em 
frequência finita. Dois fatores básicos nessa operação são: a convolução no domínio da frequência e o chamado efeito 
de Gibbs. Esse último é causado pela operação de convolução no domínio da frequência, posto que esta operação 
causa oscilações nas regiões de transição. O fenômeno de Gibbs pode ser suavizado com o uso de certas janelas, 
retangular, triangular, hamming, hanning, por exemplo, a janela usada nesse trabalho será a janela de Hamming, pois 
esta janela possui a menor magnitude do lóbulo para uma dada largura de lóbulo principal. Essa janela é geralmente a 
mais utilizada como janela de uso geral, pois tem uma atenuação razoável. 
 
Figura 3 – Resposta em Frequência do Filtro FIR de Ordem 100. 
2.3 Filtros Iir 
Filtros do tipo IIR têm como características a resposta ao impulso infinita, apresentam distorção linear de 
fase, entrada e saída são regidas por equações lineares de diferenças com coeficientes constantes de natureza 
recursiva (Figura 4) e apresentam uma dada resposta ao impulso usando uma ordem menor comparado a um filtro 
FIR. 
 
Figura 4 – Estrutura Geral de um Filtro IIR. 
O projeto desse filtro é feito com base num protótipo analógico. Tal protótipo utiliza uma função de 
aproximação para uma resposta em frequência desejada. Entre essas aproximações destacam-se os filtros de 
Butterworth, Chebyshev tipo 1 e tipo 2 e a Elíptica. 
No presente trabalho é utilizada a aproximação Butterworth, este filtro apresenta um pequeno ripple, 
praticamente inexistente, na banda de passagem e na banda de corte. Essa aproximação é regida pelo protótipo 
analógico: 
 
Figura 5 – Resposta Quadrática de Magnitude de um Filtro Passa Baixa de Butterworth. 
O cálculo da ordem desse filtro é dado pela equação: 
 
Figura 6 – Equação da Ordem de um Filtro Passa Baixa de Butterworth.Onde: 
Rp é o ripple na banda de passagem em dB; 
As é o ripple na banda de transição em dB; 
Ωp é o ponto de corte na banda de passagem; 
Ωs é o ponto de corte na banda de corte. 
Através desses parâmetros, a equação da ordem e resposta quadrática de magnitude, o filtro Passa Baixa 
Butterworth foi adotado nesse trabalho. 
 
Figura 7 – Resposta em Frequência do Filtro IIR com Aproximação de Butterworth de Ordem 10. 
3 METODOLOGIA 
A metodologia do trabalho foi feita através de pesquisa bibliográfica para fazer o cálculo da ordem, 
resposta em frequência e ao impulso, como também da filtragem do sinal por meio do software de simulação 
numérica MATLAB (MATrix LABoratory). 
3.1 Filtrando Sinal com Filtro NOTCH 
O sinal em questão consiste no áudio de fala com um ruído da sirene e um tom, onde esse tom assemelha-se 
a um tom telefônico. Como base para o projeto do filtro é analisado a priori a resposta em frequência. 
 
Figura 8 – Espectro de Frequência do Sinal 
Diante desse espectro de frequências do sinal, nota-se que a frequência do ruído é de 200 Hertz, portanto 
um filtro que remova essa faixa de frequência funcionará perfeitamente no modelo apresentado. Daí o uso do Filtro 
Notch para esse sinal. Dois fatores importantes no uso desse filtro são a resolução da equação II do tópico 2.3 e a 
determinação da frequência de corte mostrada a seguir: 
Ωc = (2*π*fc)/Fs 
Onde: 
Ωc é a frequência de corte discreta; 
fc e a frequência de corte contínua; 
Fs é a frequência de amostragem. 
Para a resolução da equação de determinação do “r” foi feita uma rotina em MATLAB para o cálculo 
desses valores (Anexo 5.5) e verificou-se que o valor de “r” é 0.9926. A resposta em frequência do filtro está 
apresentada na Figura 7. Após a operação de filtragem é obtido o seguinte espectro de frequência: 
 
Figura 9 – Espectro de Frequência do Sinal Filtrado Notch. 
Conforme o esperado, o espectro correspondente ao ruído foi eliminado causando o mínimo de perdas e 
distorções nas componentes de sua vizinhança. 
3.2 Filtrando Sinal com Filtro FIR 
Tomando a figura 9 como base, projetou-se um filtro FIR para filtragem desse sinal. Nota-se que a voz 
concentra-se nas componentes de baixas frequências, isto é, até cerca de mil (1000) Hertz. Portanto será usado um 
filtro Passa Baixa com essa mesma frequência. 
 
Figura 10 – Diagrama de Blocos do Filtro FIR ordem 100 
Lembrando que o filtro FIR precisa de uma janela para efetivar os cálculos no domínio da frequência e 
neste trabalho foi adotada a janela de Hamming. Essa janela é descrita pela equação a seguir: 
W[n] = 0.54 – 0.46 * cos(2π*n/M); 
Com “n” variando de zero (0) até a ordem do filtro (M) e zero (0) para os valores acima de M. Essa janela 
deixa o filtro com ripple em torno de 41 dB, valor comumente encontrado em livros e em outros trabalhos. O filtro 
projetado tem seu cálculo realizado no Anexo 5.2. e a resposta em frequência encontra-se na Figura 3. A ordem do 
filtro foi determinada empiricamente, pois na literatura não deixa claro um método único e/ou unânime para o cálculo 
da ordem desse tipo de filtro. 
 
Figura 11 – Espectro de Frequência do Sinal Filtrado por um Filtro FIR Passa Baixa com janela de 
Hamming de Ordem 100. 
Diante da figura acima o sinal foi filtrado satisfatoriamente causando apenas uma distorção na voz original, 
deixando um pouco mais grave. 
3.3 Filtrando Sinal com Filtro IIR 
Tomando como base a mesma Figura 9, do tópico anterior, agora sendo implementado um filtro IIR com 
aproximação de Butterworth, cuja resposta em frequência encontra-se na Figura 7. 
A ordem desse filtro foi determinada pela equação descrita na figura 6. Para o cálculo da ordem foi 
desenvolvida uma rotina em MATLAB no qual resolve-se a equação e a compara com o resultado da função buttord 
presente neste software, e por meio da função é achado os coeficientes do filtro de acordo com a tabela abaixo. 
INDICE NUMERADOR DENOMINADOR 
1 1 1,48E-09 
2 -8,17886781 1,48E-08 
3 30,24273499 6,65E-08 
4 -66,55816036 1,77E-07 
5 96,52414693 3,10E-07 
6 -96,36074449 3,72E-07 
7 67,05012262 3,10E-07 
8 -32,10406358 1,77E-07 
9 10,12126913 6,65E-08 
10 -1,896903059 1,48E-08 
11 0,160467122 1,48E-09 
Tabela 1 – Coeficientes do Filtro FIR 
 Com os coeficientes da tabela acima é feita a montagem do diagrama de blocos do filtro IIR. 
 
Figura 12 – Diagrama de Blocos do Filtro IIR de ordem 10 
No Anexo 5.5 deste trabalho temos a rotina e precisa-se atentar para a questão dos arredondamentos, pois o 
buttord arredonda o inteiro próximo menor e na prática arredondamos para o inteiro próximo maior, em virtude das 
perdas serem menor adotando o critério de arredondamento “para cima”. A seguir o espectro do sinal filtrado pelo 
filtro de Butterworth: 
 
Figura 13 – Espectro de Frequência do Sinal Filtrado por um Filtro IIR Passa Baixa com aproximação de 
Butterworth de Ordem 10. 
 Por fim, nota-se que obtemos um resultado semelhante ao do filtro FIR, porém com uma ordem 
dez (10) vezes menor para a mesma frequência de corte. O mesmo efeito de distorção é observado nesse modelo. 
4 CONCLUSÃO 
Nesse projeto foi colocado em prática o conhecimento de filtros digitais acumulado em sala de aula, 
fazendo a comparação sobre qual filtro é melhor verificou-se que o Filtro IIR obteve um comportamento melhor, 
porque foi obtido o mesmo resultado com uma ordem dez vezes menor em relação ao Filtro FIR que para conseguir 
cortes agressivos de frequência precisa ter ordens muito elevadas, normalmente ordens maiores que 100, ou seja, 
determinar 100 coeficientes pode ser bastante complexo. O Filtro Notch, comportou-se satisfatoriamente para a 
aplicação ao qual foi destinado. 
A implementação de filtros digitais facilita a tarefa de filtragem de um sinal, pois os parâmetros são fáceis 
de serem modificados, podendo adequar-se o filtro ao sinal com menor dificuldade do que em um filtro analógico. 
5 ANEXOS 
5.1 Análise e Filtragem do Sinal usando Filtro Notch 
%Instituto Federal de Educação, Ciência e Tecnologia do Ceará 
%Disciplina: Filtros Digitais 
%ALUNO: GUSTAVO SIEBRA 
 
%-------------------------------------------------------------------------- 
% Implementação do Filtro Notch 
%-------------------------------------------------------------------------- 
 
clear all %limpa todas as variáveis do workspace 
close all %fecha todas as janelas abertas 
clc %limpa a tela de prompt 
 
% Ler um arquivo no formato wav 
[x,Fs,Nbit] = wavread('C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do Ceara\Filtros 
Digitais\Trabalho Gustavo\Trabalho Final\356312-fala_sirene_tm'); 
 
%x; É o conjunto de dados amostrados 
%Nbit; Número de bits por amostra 
%Fs; Frequência de amostragem 
 
n = length(x); %Armeza o tamanho do vetor x 
i = [0:1:n-1]; %Vetor variando de 0 a 110033 com passo 1 
f = 0:Fs/n:Fs; %Vetor de freqências 
f = f(1:end-1); 
figure, plot(x); 
X= abs(fft(x)); %transformada de Fourier dos valores das amostras do sinal(x) 
subplot(1,1,1), plot(f(1:n/2), X(1:n/2)); 
title('Espectro de Frequência do Sinal'); 
 
fc = 200; %Frequencia a ser eliminada 
r = 0.9926; %coeficiente para regulação 
wc = (2*pi*fc)/Fs; %Conversao da frequencia de corte do tempo continuo para discreto 
num = [1 -2*cos(wc) 1]; %Coeficientes do numerador do filtro 
den = [1 -2*r*cos(wc) r^2]; %Coeficientes do denominador do filtro 
[H,W] = freqz(num, den, 1024); %Resposta em Frequencia do Filtro Notch 
hold on; 
plot(W*(Fs/(2*pi)), abs(H*6000), 'r'); %Resposta em frequência do filtro Notch 
title('Resposta em frequência do filtro Notch'); 
c = filter (num, den, x); 
Y = abs(fft(c)); 
figure, plot(f(1:n/2),Y(1:n/2)); 
title('Espectro de Frequência do Sinal Filtrado Notch '); 
 
% Resposta ao impulso do filtro NOTCH 
[I,T] = impz(den,num); % Calculo da resposta ao impulso do filtro notch 
figure, plot(T,abs(I),'LineWidth',0.5); % Resposta ao impulso do filtro notch 
xlabel('Tempo [n]') 
ylabel('h[n]') 
h = legend('Filtro Notch'); 
title('Resposta ao impulso do filtro NOTCH'); 
 
 
 
Figura 14 – Resposta ao Impulso do filtro Notch 
%Salvando Sinal Filtrado 
wavwrite(c,Fs,Nbit,'C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do Ceara\Filtros 
Digitais\Trabalho Gustavo\Trabalho Final\teste_fala_notch.wav'); 
%wavplay(c, Fs); %toca o sinal filtrado 
 
5.2 Análise e Filtragem do Sinal usando Filtro FIR 
%Instituto Federal de Educação, Ciência e Tecnologia do Ceará 
%Disciplina: Filtros Digitais 
%ALUNO: GUSTAVO SIEBRA 
 
%-------------------------------------------------------------------------- 
% Implementação do Filtro FIR 
% Passa Baixa com janela de Hamming 
%-------------------------------------------------------------------------- 
 
close all %fecha todas as janelas abertas 
clear all %limpa todas as variáveis do workspace 
clc %limpa a tela de prompt 
 
%Analisando o sinal a ser filtrado 
[x,Fs,Nbit] = wavread('C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do Ceara\Filtros 
Digitais\Trabalho Gustavo\Trabalho Final\teste_fala_notch.wav'); 
 
%x; É o conjunto de dados amostrados 
%Nbit; Número de bits por amostra 
%Fs; Frequência de amostragem 
 
n = length(x); %tamanho do vetor de amostras 
i = [0:1:n-1]; %vetor de indices 
alfa = Fs/(n-1); %fator de conversao: Indices ~ Frequencia em Hz 
f = i .* (alfa); %vetor de frequencias em Hz 
beta = (2 * pi)/(Fs); 
fw = f .* beta; %vetor de frequencias discretas 
X= abs(fft(x)); %espectro de frequencia do sinal de audio 
 
figure, plot(i, x); %Plotando com eixo dos indices da fft 
title('Eixo dos indices da FFT'); 
figure, plot(f(1:n/2), X(1:n/2)); %Plotando com eixo de frequencias em Hz 
title('Eixo de Freq. em Hz'); 
figure, plot(fw(1:n/2), X(1:n/2)); %grafico do espectro do sinal de audio 
title('Espectro do sinal de audio'); 
 
%Projetando o filtro FIR 
 
fc = 1000*(2/Fs); %Frequencia de corte 
wc = [fc]; %Frequencia de corte discreta normalizada 
 
num = fir1(100, wc, 'low'); %filtro FIR Passa Baixa com Janela Hamming de ordem 100 
 %Resposta em frequência do filtro 
[H, w]= freqz(num, 1); %filtros fir não tem zeros. 
subplot(1,1,1), plot(w*(Fs/(2*pi)), abs(H*6000), 'r'); %Resposta em frequência FIR 
title('Resposta em frequência FIR'); 
 
y = filter(num, 1, x); 
Y = abs(fft(y)); %Resposta em frequencia do sinal filtrado 
figure, plot (f(1:n/2), Y(1:n/2)); 
title('Resposta em frequencia do sinal filtrado FIR') 
 
% Resposta ao impulso do filtro FIR 
[I,T] = impz(num,1); % Calculo da resposta ao impulso do filtro FIR 
figure; % Resposta ao impulso do filtro FIR 
plot(T,abs(I),'LineWidth',0.5); 
xlabel('Tempo [n]') 
ylabel('h[n]') 
h = legend('Filtro FIR'); 
title('Resposta ao impulso do filtro FIR'); 
 
 
 
Figura 15 – Resposta ao Impulso do filtro FIR 
%Salvando Sinal Filtrado 
wavwrite(y,Fs,Nbit,'C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do Ceara\Filtros 
Digitais\Trabalho Gustavo\Trabalho Final\teste_fala_fir.wav'); 
[z, Fa, Nbitsa] = wavread('C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do 
Ceara\Filtros Digitais\Trabalho Gustavo\Trabalho Final\teste_fala_fir.wav'); 
a = 2*z; %aumenta o "volume" do sinal 
%wavplay(a, Fs); %tocar sinal filtrado 
 
5.3 Análise e Filtragem do Sinal usando Filtro IIR 
%Instituto Federal de Educação, Ciência e Tecnologia do Ceará 
%Disciplina: Filtros Digitais 
%ALUNO: GUSTAVO SIEBRA 
 
%-------------------------------------------------------------------------- 
% Implementação do Filtro IIR 
% Passa Baixa com aproximação de Butterworth 
%-------------------------------------------------------------------------- 
 
close all %fecha todas as janelas abertas 
clear all %limpa todas as variáveis do workspace 
clc %limpa a tela de prompt 
 
%Analisando o sinal a ser filtrado 
[x,Fs,Nbit] = wavread('C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do Ceara\Filtros 
Digitais\Trabalho Gustavo\Trabalho Final\teste_fala_notch.wav'); 
 
%x; É o conjunto de dados amostrados 
%Nbit; Número de bits por amostra 
%Fs; Frequência de amostragem 
 
n = length(x); %tamanho do vetor de amostras 
i = [0:1:n-1]; %vetor de indices 
alfa = Fs/(n-1); %fator de conversao: Indices ~ Frequencia em Hz 
f = i .* (alfa); %vetor de frequencias em Hz 
beta = (2 * pi)/(Fs); 
fw = f .* beta; %vetor de frequencias discretas 
X= abs(fft(x)); %espectro de frequencia do sinal de audio 
 
figure, plot(i, x); %Plotando com eixo dos indices da fft 
title('Eixo dos indices da FFT'); 
figure, plot(f(1:n/2), X(1:n/2)); %Plotando com eixo de frequencias em Hz 
title('Eixo de Freq. em Hz'); 
hold on 
plot(fw(1:n/2), X(1:n/2)); %grafico do espectro do sinal de audio 
 
%Projetando o filtro IIR 
 
fc = 1000*(2/Fs); %Frequencia de corte 
wc = [fc]; %Frequencia de corte discreta normalizada 
 
%Filtro de Butterworth Passa Baixa de Decima Ordem 
%Resposta em frequência do filtro 
[den, num] = butter(10, wc, 'low'); %ordem do filtro determinado pelo projeto do filtro. 
[H, w]= freqz(den, num, 1024); %Resposta em frequência do filtro 
subplot(1,1,1), plot(w*(Fs/(2*pi)), abs(H*6000), 'r'); %Resposta em frequência IIR 
title('Resposta em frequência IIR'); 
 
y = filter(den,num,x); %filtrando o sinal 
Y = abs(fft(y)); %Resposta em frequencia do sinal filtrado 
figure, plot (f(1:n/2), Y(1:n/2)); 
title('Resposta em frequencia do sinal filtrado IIR'); 
 
% Resposta ao impulso do filtro IIR 
[I,T] = impz(den, num); % Calculo da resposta ao impulso do filtro IIR 
figure; % Resposta ao impulso do filtro IIR 
plot(T,abs(I),'LineWidth',0.5); 
xlabel('Tempo [n]') 
ylabel('h[n]') 
h = legend('Filtro IIR'); 
title('Resposta ao impulso do filtro IIR'); 
 
 
 
Figura 16 – Resposta ao Impulso do filtro IIR 
%Salvando Sinal Filtrado 
wavwrite(y,Fs,Nbit,'C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do Ceara\Filtros 
Digitais\Trabalho Gustavo\Trabalho Final\teste_fala_iir.wav'); 
[z, Fa, Nbitsa] = wavread('C:\Users\Ibyte\Dropbox\[IFCE] Instituto Federal do 
Ceara\Filtros Digitais\Trabalho Gustavo\Trabalho Final\teste_fala_iir.wav'); 
a = (2)*z; %aumenta o "volume" do sinal. 
%wavplay(a, Fs); % tocar o sinal filtrado 
 
5.4 Projeto do Filtro Notch 
%Instituto Federal de Educação, Ciência e Tecnologia do Ceará 
%Disciplina: Filtros Digitais 
%ALUNO: GUSTAVO SIEBRA 
 
%-------------------------------------------------------------------------- 
% Projeot do Filtro Notch 
%-------------------------------------------------------------------------- 
close all %fecha todas as janelas abertas 
clear all %limpa todas as variáveis do workspace 
clc %limpa a tela de prompt 
 
%Rotina para Análise do Filtro de Notch 
clear all %limpa todas as variáveis do workspace 
close all %fecha todas as janelas abertas 
clc %limpa a tela de prompt 
 
%Projeto do Filtro 
fc = 200;%frequencia a ser eliminada 
Fs = 22050;%Tirado a partir do sinal lido do wavread 
wc = (2*pi*fc)/Fs;%conversao da frequencia de corte do tempo continuo para discreto 
hz = [1 -1.9926 0.9926];%resposta em frequencia para H[1] = 1, isto é, z = 1 <-> H[z] = 
1 
r = roots(hz);%coeficiente ajustado para melhor resolução 
r = r'; 
num = [1 -2*cos(wc) 1];%coeficientes do numerador do filtro 
den1 = [1 -2*r(1)*cos(wc) r(1).^2];%coeficientesdo denominador do filtro 
den2 = [1 -2*r(2)*cos(wc) r(2).^2];%coeficientes do denominador do filtro 
 
%Analise da Resposta em Frequencia do Filtro 
[H1, w1] = freqz(num, den1, 1024);%Resposta em Frequencia do Filtro 
[H2, w2] = freqz(num, den2, 1024);%Resposta em Frequencia do Filtro 
plot(w1, abs(H1)); 
hold on 
plot(w2, abs(H2), 'k'); 
5.5 Projeto de Filtro IIR Passa Baixa com Aproximação de Butterworth 
%Instituto Federal de Educação, Ciência e Tecnologia do Ceará 
%Disciplina: Filtros Digitais 
%ALUNO: GUSTAVO SIEBRA 
 
%-------------------------------------------------------------------------- 
% Calculando a frequência de corte mínima do filtro de Butterworth 
%-------------------------------------------------------------------------- 
 
close all %fecha todas as janelas abertas 
clear all %limpa todas as variáveis do workspace 
clc %limpa a tela de prompt 
 
%parametros do filtro 
fs = 22050; %frequencia de amostragem do sinal. 
fc1 = 1000; %frequencia de corte. 
 
wc = fc1*(2/fs);%frequencia de corte normalizada. 
 
e = 10; %ripple de 10 dB na banda de passagem. 
A = 40; %ripple de 40 dB na banda de corte. 
 
As = -10*log10(1/(A^2)); %calculo do ripple na banda de corte em dB. 
Rp = -10*log10(1/(1+(e^2))); %calculo do ripple na banda de passagem em dB. 
wp = (2*pi*1000)/fs; %ponto de corte na banda de passagem. 
ws = (2*pi*1150)/fs; %ponto de corte na banda de corte. 
p1 = (10^(Rp/10) - 1); %parcela 1 
p2 = (10^(As/10) - 1); %parcela 2 
p3 = (2*(log10(wp/ws))); %parcela 3 
 
N = (log10(p1/p2)/p3); %Calculo da ordem do filtro. 
[n, wn] = buttord(wp, ws, Rp, As); %função que retorna a ordem do filtro. 
 
o = ceil(N); %arredonda para o inteiro superior mais proximo. 
oi = ceil(n) + 1; %arredonda para o inteiro superior mais proximo. 
 
if o == oi 
 [b, a] = butter(o, wc); 
 [H, w]= freqz(b, a, 1024); 
 figure, plot(w, abs(H)); 
end 
 
6 Referências 
Chapman, S. J. Programação em Matlab para Engenheiros. São Paulo: Thomson, 2006. 
Hanselman, D. Matlab 6 Curso Completo. São Paulo: Prentice Hall, 2007. 
Haykin, S.; Veen, B. V. Sinais e Sistemas. Porto Alegre: Bookman, 2001. 
Lathi, B. P. Sinais e Sistemas Lineares. Porto Alegre: Bookman, 2004. 
Mello, C. A. Processamento Digitais de Sinais. Pernambuco: Centro de Informática, UFPE, 2011.

Outros materiais