Você está na página 1de 11

UNIVERSIDADE FEDERAL DE SO JOO DEL-REI

CAMPUS ALTO PARAOPEBA


ENGENHARIA DE TELECOMUNICAES

PROCESSAMENTO DIGITAL DE SINAIS:


TRABALHO PRTICO FINAL

VITOR HUGO OLIVEIRA SANSON


144350035

OURO BRANCO-MG
JUNHO DE 2016

INTRODUO E DESCRIO DA ATIVIDADE


A proposta da atividade consistiu em: Capturar trs distintos sinais sonoros
(grave, mdia e agudo) e representa-los em seu domnio de frequncia, capturados a
partir de um aplicativo de celular comum sua taxa de amostragem foi equivalente a
44100 Hz para ambos os trs.
Em seguida plotou-se o espectro no domnio da frequncia de cada um deles
(Figura 1) e o espectro no domnio do tempo de cada um deles (Figura 2). Plotou-se
tambm a soma dos 3 espectros dos udios tanto no domnio do tempo (Figura 3)
quanto no domnio da frequncia (Figura 4), seguido pelo grfico dos 3 tipos de filtro
escolhidos.
Na construo dos filtros, foi escolhida uma tenso de ripple de 5 V e um
ganho de 60 dB. A escolha de cada tipo de filtro foi feita com base no tipo de corte que
era desejado, ou seja, para cortar os sinais dos sons intermedirio e agudo usou-se um
filtro passa baixas do tipo Chebyshev tipo I, filtrando apenas o som grave. Para cortar os
sinais de udio grave e agudo usou-se um filtro passa faixa do tipo Chebyshev tipo I,
onde apenas o som intermedirio seria filtrado. E para cortar os udios grave e
intermedirio usou-se um filtro passa alta do tipo Chebyshev tipo I, onde filtrava apenas
o som agudo.
A Figura 4 representa a soma do espectro dos sinais em conjunto com os
respectivos filtros. Finalmente plotou-se o espectro de cada sinal depois da filtragem
(Figura 5). Comparando a Figura 1 com a Figura 5 percebe-se que os filtros foram bem
implementados, ou seja, v-se nitidamente onde foi feita a filtragem do sinal
comparando-o com o original.

CDIGOS E GRFICOS:

LEITURA E FORMATAO DOS SINAIS DE UDIO (.WAV)


close all;
clear all;
clc;
[y1,Fs1] = audioread('som_batendo_metal.wav');
% Formata os Sinais para que tenham o mesmo tamanho
y1=y1(1:218194,1);
% Carrega dados sobre o sinal de media frequencia
[y2,Fs2] = audioread('som_sirene.wav');
y2 = y2(1:218194,1);

[y3,Fs3] = audioread('som_apito.wav');
y3 = y3(1:218194,1);

CARACTERIZAO DO SINAL CONTENDO BAIXA FREQUNCIA


%Atribui variavel o tamanho do sinal de baixa frequencia
Npontos1 = length(y1);
% Realiza a transformada de fourier
Tf_Y1 = fft(y1);

do som de baixa frequencia

figure (1)
subplot(3,1,1)
%Calcula o espectro de frequencia para 2 lados
espectro2_Y1 = abs(Tf_Y1/Npontos1);
espectro1_Y1 = espectro2_Y1(1:Npontos1/2+1);
%Baseado em em Py12 e em N1 calcula o espectro de um lado apenas
espectro1_Y1(2:end-1) = 2*espectro1_Y1(2:end-1);
%Calculo da frequencia do eixo para y1
f1 = Fs1*((0:Npontos1/2)/Npontos1);
%Plota o grafico do sinal de baixa frequencia no dominio da frequencia
plot(f1,espectro1_Y1,'k')
%Titulo do grafico
title('Espectro de uma amostra contendo BAIXA frequncia');
% Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere linhas de grade no grafico
grid on;
%Formata os eixos x e y
axis([0 3000 0 0.10])

CARACTERIZAO DO SINAL CONTENDO FREQUNCIA MDIA


%Variavel recebe o tamanho do vetor de y2 que contem a media frequencia
Npontos2 = length(y2);
%Calcula a Transformada de Fourier do sinal de media frequencia
Tf_Y2 = fft(y2);
%Calcula o espectro de frequencia para 2 lados
espectro2_Y2 = abs(Tf_Y2/Npontos2);
espectro1_Y2 = espectro2_Y2(1:Npontos2/2+1);
%Baseado em em Py12 e em N1 calcula o espectro de um lado apenas
espectro1_Y2(2:end-1) = 2*espectro1_Y2(2:end-1);
%Calculo da frequencia frequencia do eixo para y2
f2 = Fs2*((0:Npontos2/2)/Npontos2);
subplot(3,1,2)
%Plota o grafico do sinal de media frequencia no dominio da frequencia
plot(f2,espectro1_Y2,'g');
%Titulo do grafico

title('Espectro de uma amostra contendo MDIA frequencia');


%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere linhas de grade
grid on;
%Formata os eixos x e y
axis([0 3000 0 0.10]);

CARACTERIZAO DO SINAL CONTENDO FREQUNCIA ALTA


%Variavel recebe o tamanho do vetor de y2 que contem a media frequencia
Npontos3 = length(y3);
%Calcula a Transformada de Fourier do sinal de media frequencia
Tf_Y3 = fft(y3);
%Calcula o espectro de frequencia para 2 lados
espectro2_Y3 = abs(Tf_Y3/Npontos3);
espectro1_Y3 = espectro2_Y3(1:Npontos3/2+1);
%Baseado em em Py12 e em N1 calcula o espectro de um lado apenas
espectro1_Y3(2:end-1) = 2*espectro1_Y3(2:end-1);
%Calculo da frequencia frequencia do eixo para y2
f3 = Fs3*((0:Npontos2/2)/Npontos3);
subplot(3,1,3)
%Plota o grafico do sinal de media frequencia no dominio da frequencia
plot(f3,espectro1_Y3,'b');
%Titulo do grafico
title('Espectro de uma amostra contendo BAIXA frequncia');
%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere linhas de grade
grid on;
%Formata os eixos x e y
axis([0 3000 0 0.10]);

SINAIS GRAVE, MDIO E AGUDO PLOTADOS NO DOMNIO DO TEMPO


tempo=length(y1)/Fs1;
t= 0:1/Fs1:tempo;
t= t(1:end-1);
figure (2)
subplot(3,1,1)
plot(t,y1,'k')
grid on;
xlabel('Tempo');
ylabel('Amplitude');
title('Dominio do tempo para o som Grave');
axis ([0 5 -2 2])
subplot(3,1,2)
plot(t,y2,'g')
grid on;
xlabel('Tempo');
ylabel('Amplitude');
title('Dominio do tempo para o som Mdio');
axis ([0 5 -2 2])
subplot(3,1,3)
plot(t,y3,'b')
grid on;
xlabel('Tempo');
ylabel('Amplitude');
title('Dominio do tempo para o som Agudo');
axis ([0 5 -2 2])

CARACTERIZAO DO SINAL QUE CONTM A SOMA DAS FREQUNCIAS:


Fs = (Fs1+Fs2+Fs3)/3;
y = y1+ y2+ y3;
%Variavel recebe o tamanho do vetor de y que contem a soma dos 3 sinais
Npontos = length(y);
%Realiza a Transformada de Fourier do sinal Y
Tf_Y = fft(y);
%Inicializa uma nova figura
figure(3);
subplot(2,1,1);
%Calcula o espectro de frequencia para 2 lados
espectro2 = abs(Tf_Y/Npontos);
espectro1 = espectro2(1:Npontos/2+1);
%Baseado em em Py12 e em N1 calcula o espectro de um lado apenas
espectro1(2:end-1) = 2*espectro1(2:end-1);
%Calculo da frequencia frequencia do eixo para y
f = Fs*((0:Npontos/2)/Npontos);
%Plota o grafico do sinal das tres frequencias somadas no dominio da
%frequencia
plot(f,espectro1,'r')
title('Espectro de uma amostra contendo a SOMA das frequencias')
%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere Linhas de grade
grid on;
%Formata os eixos x e y
axis([0 3000 0 0.1])

SOMA DOS SINAIS NO DOMNIO DO TEMPO


tempo=length(y)/Fs;
t= 0:1/Fs:tempo;
t= t(1:end-1);
subplot(2,1,2)
plot(t,y,'r')
grid on;
xlabel('Tempo');
ylabel('Amplitude');
title('Soma dos sinais no domnio do tempo');
axis ([0 5 -3 3])

APLICAO DOS FILTROS


Rsb=5;
Rpb=0.1;
Wpb=2*pi*100 ;
Wsb=2*pi*500;
[nb,wnb]=ellipord(Wsb,Wpb,Rpb,Rsb,'s');
[numb,denb]=ellip(nb,Rpb,Rsb,wnb,'high','s');
omega5=1:1:size(y);
HBaixas=freqs(numb,denb,omega5*pi);
figure(4)
subplot(3,2,1)
plot(omega5/2*pi,HBaixas,'k');
title('SOMA das frequencias')
%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere Linhas de grade
legend('F.Chebshev I - PB');
grid on;
%Formata os eixos x e y
axis([0 3000 0 0.1])
Saida1 = Tf_Y'.*HBaixas;
subplot(3,2,2)
plot(omega5,abs(Saida1),'k')

title('Som Agudo filtrado')


%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere Linhas de grade
grid on;
%Formata os eixos x e y
axis([0.25E4 0.5E4 0 0.2E4])

FILTROS CHEBYSHEV BANDA DE PASSAGEM.


Rs=25;
Rp=1;
Wp=2*pi*[500 1000] ;
Ws=2*pi*[499 1001];
[na,wna]=ellipord(Ws,Wp,Rp,Rs,'s');
[numa,dena]=ellip(na,Rp,Rs,wna,'bandpass','s');
omega4=1:1:218194;
HMedias=freqs(numa,dena,omega4);

subplot(3,2,3)
plot(omega4,HMedias,'g');
title('SOMA das frequencias')
%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
legend('F.Chebshev I-BP');
%Insere Linhas de grade
grid on;
%Formata os eixos x e y
axis([0 3000 0 0.1])
Saida2=Tf_Y'.*HMedias;
subplot(3,2,4)
plot(omega4,abs(Saida2),'g')
title('Som Mdio filtrado')
%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere Linhas de grade
grid on;
%Formata os eixos x e y
axis([0.25E4 0.5E4 0 0.2E4])

FREQUNCIAS DA BANDA PASSANTE E BANDA DE REJEIO.


Rs=25;
Rp=1;
Wp=2*pi*[500 1000] ;
Ws=2*pi*[499 1001];
Rs=5;
Rp=3;
Wp=2*pi*1500;
Ws=2*pi*2500;

FILTROS CHEBYSHEV BANDA DE PASSAGEM.


[na,wna]=buttord(Ws,Wp,Rp,Rs,'s');
[numa,dena]=butter(na,wna,'high','s');
omega4=1:1:218194;
HAltas=freqs(numa,dena,omega4);

subplot(3,2,5)
plot(omega4,HAltas);
title('SOMA das frequencias')
%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere Linhas de grade
legend('F. Chebshev I - PA');
grid on;
%Formata os eixos x e y
axis([0 3000 0 0.1])
Saida3=Tf_Y'.*HAltas;
subplot(3,2,6)
plot(omega4,abs(Saida3),'b')
title('Som Grave filtrado')
%Titulo do eixo x
xlabel('frequncia (Hz)')
%Titulo do eixo y
ylabel('Ampitude');
%Insere Linhas de grade
grid on;
%Formata os eixos x e y
axis([1.3E5 2.3E5 0 1.3E4])

FAZENDO A TRANSFORMADA INVERSA;


tempo=length(y1)/Fs1;
t= 0:1/Fs1:tempo;
t= t(1:end-1);
Tfi_y1= real(ifft((Saida1)));
figure(7)
subplot(3,1,1)
plot(t,Tfi_y1,'k')
%Titulo do grafico
title('Domnio do Tempo som Agudo');
%Titulo do eixo x
xlabel('Tempo')
%Titulo do eixo y
ylabel('Ampitude');
%Insere linhas de grade
grid on;
Tfi_y2= real(ifft((Saida2)));
tempo=1:1:218194;
subplot(3,1,2)
plot(t,Tfi_y2,'g')
%Titulo do grafico
title('Domnio do Tempo som Mdia');
%Titulo do eixo x
xlabel('Tempo')

%Titulo do eixo y
ylabel('Ampitude');
%Insere linhas de grade
grid on;
Tfi_y3 = real(ifft(Saida3));
subplot(3,1,3)
plot(t,Tfi_y3,'b')
%Titulo do grafico
title('Domnio do Tempo som Grave');%Titulo do eixo x

xlabel('Tempo')
%Titulo do eixo y
ylabel('Ampitude');
%Insere linhas de grade
grid on;