Processamento Digital de Siais - Analise de Audio

download Processamento Digital de Siais - Analise de Audio

of 11

Transcript of Processamento Digital de Siais - Analise de Audio

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    1/11

    UNIVERSIDADE FEDERAL DE SO JOO DEL-REICAMPUS ALTO PARAOPEBA

    ENGENHARIA DE TELECOMUNICAES

    PROCESSAMENTO DIGITAL DE SINAIS:TRABALHO PRTICO FINAL

    VITOR HUGO OLIVEIRA SANSON144350035

    OURO BRANCO-MGJUNHO DE 2016

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    2/11

    INTRODUO E DESCRIO DA ATIVIDADEA 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 a44100 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-setambm 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 filtroescolhidos.

    Na construo dos filtros, foi escolhida uma tenso de ripple de 5 V e umganho de 60 dB. A escolha de cada tipo de filtro foi feita com base no tipo de corte queera desejado, ou seja, para cortar os sinais dos sons intermedirio e agudo usou-se umfiltro passa baixas do tipo Chebyshev tipo I, filtrando apenas o som grave. Para cortar ossinais 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 eintermedirio usou-se um filtro passa alta do tipo Chebyshev tipo I, onde filtrava apenaso som agudo.

    A Figura 4 representa a soma do espectro dos sinais em conjunto com osrespectivos 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 bemimplementados, ou seja, v-se nitidamente onde foi feita a filtragem do sinalcomparando-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);

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    3/11

    [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 do som de baixa frequencia Tf_Y1 = fft(y1);

    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

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    4/11

    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]);

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    5/11

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    6/11

    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 TEMPOtempo=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])

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    7/11

    APLICAO DOS FILTROSRsb=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' )

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    8/11

    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])

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    9/11

    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])

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    10/11

    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' )

  • 7/25/2019 Processamento Digital de Siais - Analise de Audio

    11/11

    %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 ;