Escolar Documentos
Profissional Documentos
Cultura Documentos
ENGENHARIA DE TELECOMUNICAÇÕES
Nesse projeto será estudos práticos e teóricos para o desenvolvimento das etapas
presentes no projeto que estarão presentes filtros digitais do tipo FIR (Finite Impulse
Response) e IIR (Infinite Impulse Response). Esses filtros serão utilizados para retirar
os ruídos do sinais de áudios.
2. Fundamentos Teóricos
2.1. Filtros
Um filtro digital é feito com o objetivo de retirar interferências e ruídos que estão
presentes no sinal de entrada e esse processo é dividido em algumas etapas. No começo
de tudo, o sistema de comunicação parte da entrada de um sinal analógico, no domínio
do tempo contínuo, esse sinal é convertido em digital por um conversor analógico-
digital (A/D) que que gera uma sequêcia de números, que são gerados após a realzação
de cálculos, que são feitos multiplicando os valores de entrada por constantes e
somando os produtos restantes, também são utilizadas técnicas matemáticas como a
transformada de Fourier. Esta sequência numérica é transmitida pra um processador que
contém o filtro desejado, para que dessa forma os dados sejam filtrados. Após a
filtragem da informação, o sinal é passado novamente para um conversor digital-
analógico (D/A). A saída desse conversor é encaminhada para um filtro de reconstrução
que tem como propósito gerar um sinal senoidal, além de ter a função de filtro
passabaixa, reduzindo ruídos causados pelo conversor D/A. Após reconstruído, o sinal é
enviado ao destino.
O filtro FIR são filtros digitais do tipo não recursivo,ou seja, não possuem
realimentação, ou seja, os valores de saída passados não influenciam nos valores de
saída atuais. Os filtros FIR são caracterizados pela seguinte função de transferência:
Entre as propriedades do filtro está a que realiza uma resposta em frequência com fase
linear, dessa maneira, facilitando o processo de aproximação ao projetar um filtro FIR.
Também apresentam memória finita, oq faz com que se tenha duração limitada, são
também BIBO estável, ou seja, para todo sinal de amplitude limitada aplicado em sua
entrada, o mesmo ocorre com o sinal de saída que acaba sendo limitado, por fim, pode
implementada um resposta em módulo com resposta em fase linear, sem haja distorção
de fase. Os filtros FIR são utilizados principalmente no processamento de áudio,
imagem e na transmissão de dados. Os filtros FIR são colocados em prática de dois
modos: no domínio do tempo e no domínio da frequência. Na frequência, o filtro possui
poucos coeficientes utilizados e a filtragem acontece devido uma convolução do 3 Σ
sinal de entrada com estes coeficientes.
Nos pontos de descontinuidade da série de Fourier que não convergiam foi descoberto
que havia uma pertubação, para reduzir essa oscilação em um filtro FIR são utilizadas
funcões de ponderação com objetivo de modificar seus coeficientes. Essa técnica das
funções no domíno do tempo são conhecidas com funções de janelas.
Levando em conta que as funções de janelas e que o projeto de um filtro FIR tem como
objetivo determinar os coeficientes de maneira a reduzir uma função de custo, sendo
que a mais usada é a do erro quadrático.
Para aproximar a resposta em frequência do filtro do valor real, é preciso que a janela
retangular tenha valor unitário. Isso é representado no gráfico abaixo:
2. Função transferência
3. Equação de diferença
3. Metodologia e Resultados
O projeto tem como objetivo eliminar as interferências no áudio original que está no
arquivo som3.wav (primeira parte) e no arquivo pig_ruido.wav (segunda parte). Para
filtrar esses áudios será utilizados o conhecimento adquirido sobre os filtros.
O próximo passo é aplicar o filtro que nesse caso será o Notch, pois como o ruido está
na frequência de 5000 Hz é necessário um filtro que haja com precisão em uma
determinada faixa de frequência, pois como é um sinal estreito que estava dentro do
sinal da voz, assim escolhemos um parâmetro r = 0,99 que é o suficiente para extrair
apenas o sinal do ruído sem comprometer o sinal que desejamos.
Local onde o filtro irá atuar
Por fim, podemos analisar o gráfico com a resposta ao impulso do filtro projetado.
3.2. Segunda Parte (Filtro IIR e FIR)
3.3. IIR
Nessa parte do projeto será utilizado o arquivo pig_ruido.wav, sabendo disso abro o
octave para realizar uma análise espectral do áudio e com isso poder descobrir onde está
o ruido e como ele é.
O próximo passo é a aplicar o filtro que nesse caso será o IIR(Chebyshev Tipo I), para
retirar “assobio” que está atrapalhando a música.
( A parte da banda passante e de rejeição não ficaram muito visiveis no print, mas
abrindo pelo octave da pra ver tranquilo.)
Após isso o filtro foi implementado e com isso o ruido foi retirado ficando da seguinte
maneira.
Ao final da realização da filtragem, um arquivo de áudio foi gravado em
”pig_ruido.FiltroIIR.wav”. Observando a imagem abaixo, podemos ver o sinal filtrado
no domínio do tempo.
Por fim, podemos analisar o gráfico com a resposta ao impulso do filtro projetado.
3.4. FIR
Por fim, o arquivo pig_ruido.wav será utilizadado novamente, sabendo disso abro o
octave para realizar uma análise espectral do áudio e com isso poder descobrir onde está
o ruido e como ele é.
O próximo passo é a aplicar o filtro que nesse caso será o FIR, para retirar “assobio”
que está atrapalhando a música.
Após isso o filtro foi implementado e com isso o ruido foi retirado ficando da seguinte
maneira.
4. Conclusão
close all;
clear all;
clc;
%ANALISE ESPECTRAL
[x,fa] = audioread('som3.wav'); %Ler do audio
n = length(x);
X = fft(x);
N = length(X);
X = X/(N/2);
f = [0:N-1]*fa/(N-1);
figure ()
plot(f(1:N/2), abs(X(1:N/2)));
pkg load signal
figure ()
plot(f(1:N/2), abs(X(1:N/2))); %Mostra o sinal
hold on
pkg load signal
figure ()
plot(f(1:N/2), abs(K(1:N/2))); %Grafico depois que o ruido foi eliminado
hold on
pkg load signal
figure ()
plot(k);
hold on
pkg load signal
filename = 'som.FiltroNotch.wav';
audiowrite (filename,k,fa);
%RESPOSTA AO IMPULSO
d = zeros(1, 5000);
l = [1 d];
h = filter(b_notch, a_notch, l);
figure ()
plot(h);
pkg load signal
6.3. IIR
% ANALISE ESPECTIRAL
[x,fa] = audioread('pig_ruido.wav'); %faz a leitura do arquivo
n = length(x);
X = fft(x);
N = length(X);
X = X/(N/2);
f = [0:N-1]*fa/(N-1);
figure ()
plot(f(1:N/2), abs(X(1:N/2))); %grafico de filtragem
hold on
pkg load signal
% FILTRO IIR
figure ()
plot(f(1:N/2), abs(X(1:N/2))); %grafico de filtragem
hold on
plot(W_cheby, abs(H_cheby));
pkg load signal
figure ()
plot(f(1:N/2), abs(K(1:N/2))) %Grafico com o ruido eliminado
figure ()
plot(k); %Grafico com audio filtrado
%RESPOSTA AO IMPULSO
d = zeros(1, 2800);
l = [1 d];
h = filter(b_cheby, a_cheby, l);
figure ()
plot(h); %Grafico da resposta do impulso
6.4. FIR
close all;
clear all;
clc;
function s=filtro_fir(b,x)
N = length(b);
M = length(x);
y = zeros(1,M);
aux = zeros(N,1);
for i = 1:M
aux = shift(aux,1);
aux(1) = x(i);
s(i) = b*aux;
endfor
endfunction
n = length(x);
X = fft(x);
N = length(X);
X = X/(N/2);
f = [0:N-1]*fa/(N-1);
figure ()
plot(f(1:N/2), abs(X(1:N/2))); %Mostra o sinal sem a parte simetrica
pkg load signal
%--------FILTRO FIR--------%
figure ()
plot(W_fir, abs(H_fir));
pkg load signal
k = filtro_fir(c, x);
K = fft(k);
K = K/(N/2);
figure ()
plot(k); %grafico com audio filtrado
pkg load signal
d = zeros(1, 2800);
l = [1 d];
h = filter(c, 1, l);
figure ()
plot(h); %grafico da resposta ao impulso
pkg load signal