Você está na página 1de 4

UNIVERSIDADE LUSFONA DE HUMANIDADES E TECNOLOGIAS

Processamento Digital de Sinal


Projecto 1 Correlao de Sinais.

Abstract - O objectivo do presente trabalho, tem como base, explorar a vertente prtica do conceito de correlao utilizando o software MATLAB. Palavras-chave Correlao, Sinal.

I. INT RODUO Este documento acadmico tem como objectivo, a explicao integral da componente prtica realizada. Este trabalho, foi realizado com o objectivo de se compreender os processos de correlao de sinais.

II. DESENVOLVIMENT O A. Problema Dado um sinal udio corrompido com rudo (Quem_Sou_Eu_?.wav), pretende-se compar-lo com dois sinais conhecidos (Metallica.wav e Santana.wav), e decidir de qual se trata. B. Abordagem O primeiro passo para a realizao deste trabalho, foi a captao dos sinais ( Quem_Sou_Eu_? .wav, Metallica.wav e Santana.wav) atravs da funo wavread disponibilizada pelo MATLAB que torna possvel a utilizao do ficheiro de extenso .wav pelo programa, em seguida fez-se a correlao dos sinais, isto , a correlao entre o sinal Santana e o sinal Quem_Sou_Eu_? e o mesmo processo com o sinal Metallica, de modo a decidir de qual se trata.

Figura 1 - Sinais analgico no Dominio do Tempo Para cada ficheiro lido apartir do comando wavread, foi definido um tempo de amostragem ts= 1/fs, onde nos sinais Santana e Quem_Sou_Eu_? temos os mesmos tempos de amostragem (ts) , mas no caso do sinal Metallica temos um tempo de amostragem diferente, isto porque os sinais Santana e Quem_Sou_Eu_? foram amostrados com a mesma frequncia (Fs = 11025[ Hz]), no caso do sinal Metallica a frequncia de amostragem e de Fs= 44.1 [KHz], em relao aos comprimentos ( L = length(sinal)) do sinal, isto a sua durao, sucedesse o mesmo que na frequncia, o sinal Santana e Quem_Sou_Eu_? tem a mesma durao 12 [s], e o sinal Metallica tem a durao de 31 [s], ao construirmos o nosso vector tempo t=(0:ts:(ts*(L-1))), visto que o sinal Santana e quem sou eu, so amostrados a mesma frequncia temos os mesmos tempos de amostragem(ts),e a mesma durao (L).Visto que o vector tempo depende destas duas, este vai ser igual nos sinais Santana e Quem_Sou_Eu_? diferente no sinal Metallica, pois este amostrado a uma

UNIVERSIDADE LUSFONA DE HUMANIDADES E TECNOLOGIAS frequncia diferente dos outros dois sinais a considerar, e tem uma durao superior. A correlao no tem utilidade quando feita entre dois sinais em que os espaos entre amostras so diferentes , visto que um mtodo de comparao utilizado para ver a similaridade entre dois sinais analisando o grfico final desta, e que consiste em pegar nos dois sinais, e passar um pelo outro, multiplicando amostra a amostra e somando todas as multiplicaes em cada deslocamento, tendo assim um sinal final onde se pode analisar e tirar concluses, para isso temos ento que ter um espaamento entre amostras igual em todos os sinais de maneira a conseguirmos resultados satisfatrios e teis para a analise da similaridade dos sinais.

o que sucede entre o sinal Quem_sou_eu? e Metallica, da termos feito um downsample do sinal Metallica, de modo a termos o mesmo espaamento entre amostras nos dois sinais. O comando downsample diminui a taxa de amostragem do sinal, onde no comando definimos um Z, e o comando downsample vai retirar amostras do sinal original de z em z. Esta z e definido para que dividimos a frequncia de amostragem do sinal que queremos alterar, pela frequncia de amostragem que pretendemos. No caso especifico deste trabalho temos que: Z=44.1 kHz / 11025 Hz = 4. Desta maneira conseguimos ter os dois sinais com espamentos entre amostras iguais, e assim fazer a correlao dos sinais. Figura 3 - Envol vente dos Grficos da Correlao

III. RESULT ADOS A partir dos grficos das correlaes e dos valores mximos das correlaes, Valor mximo correlao Santana Quem Sou Eu: 4.283071 x 103 Valor mximo da correlao Metallica Quem Sou Eu: 2.271322 x 104 Podemos verificar que a correlao mais alta e no caso Metallica Quem Sou Eu.

IV. CONCLUSES Com este estudo construmos uma ferramenta que nos permite verificar a similaridade entre dois sinais. Neste caso tnhamos um sinal corrompido com rudo que a nvel audvel era impossvel de inferir qual era o sinal em questo. Construmos ento uma ferramenta que nos permite decidir qual era o sinal em questo, para tal fizemos a correlao entre sinais e vimos que o sinal corrompido (Quem_Sou_Eu_?) correspondia ao sinal Metallica corrompido com rudo.

Figura 2 - Correlao Sinais

UNIVERSIDADE LUSFONA DE HUMANIDADES E TECNOLOGIAS V. A PNDICE %======================================== ================================== % Universidade Lusofona de Humanidades e Tecnologias % PROCESSAMENTO DIGITAL DE SINAIS % Docente: Eduardo Bolas % Discentes: Tiago Pires Dores , N 20073781 % Andr Filipe Matos, N 20075419 % 1.Comparao de Sinais %======================================== ================================== clear all;close all;clc; %%%%%%%%%%% Sinal Quem Sou eu [quem,f2]=wavread('Quem_sou_eu_.wav'); % Sinal Quem sou eu; ts2 = 1/f2; % Tempo de amostragem; L2 = length(quem); % Durao do sinal; t2 = (0:ts2:(ts2*(L2-1))); % Vector tempo; x2=abs(quem); x22=quem; %%%%%%%%%%% Sinal Santana [sant,f1]=wavread('santana.wav'); % Sinal santana; ts1 = 1/f1; % Tempo de amostragem; L1 = length(sant); % Durao do sinal; t1 = (0:ts1:ts1*(L1-1)); % Vector tempo; x1=abs(sant); x11=sant; %%%%%%%%%%% Sinal Metallica [metal,f3]=wavread('Metallica.wav'); % Sinal Metallica; z=f3/f2; % Factor de downsample (~=length(metal)/length(quem)); metal=metal(:,1); % Eliminar uma coluna, de forma a transformar o sinal stereo(2 colunas) em mono (1 coluna); metal_d=downsample(metal,z); % Diminuir o numero de amostras; ts3 = 1/f3; L3 = length(metal); % Durao do sinal; t3 = (0:ts3:ts3*(L3-1)); % Vector tempo; x3=abs(metal); x3_c=abs(metal_d); % Parte positiva do sinal metallica em mono; x33_c=metal_d; % Todas as componentes positiva e negativa do sinal metallica em mono; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(1) subplot(3,1,1) plot(t1,x1/(max(x1))) ylim([0 1.2]); title('Sinal Analgico Santana') xlabel('t[s]') ylabel('x(t)') subplot(3,1,2) plot(t3,x3/(max(x3))) ylim([0 1.2]); title('Sinal Analgico Metallica') xlabel('t[s]') ylabel('x(t)') subplot(3,1,3) plot(t2,x2/(max(x2))) ylim([0 1.2]); title('Sinal Analgico Quem Sou Eu') xlabel('t[s]') ylabel('x(t)') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c = xcorr(x1,x2); sprintf('Valor mximo da correlao Santana - Quem sou eu: %d', max(c)) c2 = xcorr(x3_c,x2); sprintf('Valor mximo da correlao Metallica - Quem sou eu: %d', max(c2)) c3 = xcorr(x1,x1);

figure(2) subplot(3,1,1) plot(c/max(c)) ylim([0 1.2]); title('Correlao Santana - Quem sou eu') subplot(3,1,2) plot(c2/max(c2)) ylim([0 1.2]); title('Correlao Metallica - Quem sou eu') subplot(3,1,3) plot(c3/max(c3)) ylim([0 1.2]); title('Auto-Correlao Santana') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c1 = xcorr(x11,x22); c21 = xcorr(x33_c,x22); c31 = xcorr(x11,x11); figure(3) subplot(3,1,1) plot(c1/max(c1)) ylim([0 1.2]); title('Correlao Santana - Quem sou eu') 3

UNIVERSIDADE LUSFONA DE HUMANIDADES E TECNOLOGIAS subplot(3,1,2) plot(c21/max(c21)) ylim([0 1.2]); title('Correlao Metallica - Quem sou eu') subplot(3,1,3) plot(c31/max(c31)) ylim([0 1.2]); title('auto-Correlao Santana')

Você também pode gostar