SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
Laborat ´orio de Sistemas e Sinais 
An´alise Espectral 
Lu´ıs Caldas de Oliveira 
Abril 2009 
O objectivo deste trabalho de laborat ´orio ´e o de ensinar a analisar sinais no dom´ınio da frequˆencia. Utilizaremos 
dois m´etodos. O primeiro consiste em representar graficamente os coeficientes da s´erie discreta de Fourier de sinais 
de durac¸ ˜ao finita. O segundo m´etodo representa os coeficientes de segmentos de durac¸ ˜ao limitada de sinais que 
variam no tempo, criando o que ´e chamado de espectrograma. 
1 Introduc¸ ˜ao 
Um sinal em tempo discreto de durac¸ ˜ao finita com p amostras pode ter a seguinte expans˜ao em s´erie de Fourier: 
x(n) = A0 + 
p−1 
2 
X 
k=1 
Ak cos(k!0n + k) (1) 
se p for um n´umero ´ımpar e 
x(n) = A0 + 
p 
2 
X 
k=1 
Ak cos(k!0n + k) (2) 
se p for par. 
Um sinal de durac¸ ˜ao finita pode ser considerado como um ciclo de um sinal peri ´odico com frequˆencia funda-mental 
!0 = 2/p em radianos por amostra, ou f = 1/p em Hertz. Neste laborat ´orio assumiremos que p ´e sempre 
par e faremos a representac¸ ˜ao gr´afica de cada uma das componentes em frequˆencia |A0|, . . . , |Ap/2| para diversos 
sinais com o objectivo de compreender o significado desses coeficientes. 
De notar que cada |Ak| d´a a amplitude da componente sinusoidal do sinal `a frequˆencia k!0 = k2/p, que 
tem como unidades radianos por amostra. Para interpretar estes coeficientes poder´a ser conveniente converter esta 
unidade para Hertz. Se a frequˆencia de amostragem for fs amostras por segundo, ent˜ao a convers˜ao poder´a ser 
feita atrav´es de: 
(k2/p)[radianos/amostra] fs[amostras/segundo] 
2[radianos/ciclo] 
= 
k fs 
p 
[ciclos/segundo] 
Assim, cada |Ak| d´a a amplitude da componente sinusoidal com frequˆencia k fs/p Hz. 
Note que o Matlab n˜ao tem nenhuma func¸ ˜ao pr´e-definida para calcular os coeficientes da s´erie de Fourier, 
tendo no entanto uma func¸ ˜ao que calcula a transformada r´apida de Fourier, chamada fft. Esta func¸ ˜ao pode ser 
usada para calcular os coeficientes da s´erie de Fourier atrav´es da seguinte func¸ ˜ao serieFourier: 
function [amplitude, fase] = serieFourier(x) 
% SERIEFOURIER - Retorna a amplitude e a fase de cada componente 
% sinusoidal da expans˜ao em s´erie de Fourier do sinal dado como 
% argumento, que ´e interpretado como um ciclo de um sinal 
% peri´odico. Assume-se que o argumento tem um n´umero de amostras p que 
% ´e par. O primeiro valor de retorno ´e um vector contendo as 
% amplitudes da componentes sinusoidais na expans˜ao em s´erie de 
% Fourier com frequˆencias 0, 1/p, 2/p, ... 1/2. O segundo valor de 
% retorno ´e um vector com as fases das componentes sinusoidais. Ambos 
% os vectores tˆem comprimento de (p/2)+1. 
1
p = length(x); 
f = fft(x)/p; 
amplitude(1) = abs(f(1)); 
upper = p/2; 
amplitude(2:upper) = 2*abs(f(2:upper)); 
amplitude(upper+1) = abs(f(upper+1)); 
fase(1) = angle(f(1)); 
fase(2:upper) = angle(f(2:upper)); 
fase(upper+1) = angle(f(upper+1)); 
Se se tiver um vector x com comprimento par, pode-se usar a func¸ ˜ao para obter os coeficientes da DFS: 
[A, phi] = serieFourier(x); 
Os vectores A e phi contˆem a amplitude e a fase de cada coeficiente. 
Para representar graficamente as amplitudes dos coeficientes em func¸ ˜ao da frequˆencia basta fazer: 
p = length(x); 
frequencias = [0:fs/p:fs/2]; 
plot(frequencias, A); 
xlabel(’frequencia em Hertz’); 
ylabel(’amplitude’); 
Em que fs ter´a o valor da frequˆencia de amostragem em amostras por segundo. A linha 
frequencias = [0:fs/p:fs/2]; 
requer uma an´alise mais cuidada. Produz um vector com o mesmo comprimento de A, ou seja 1 + p/2, em 
que p ´e o comprimento do vector x. Os elementos do vector frequencias s˜ao as frequˆencias em Hertz de cada 
componente da s´erie de Fourier. 
2 Trabalho para os Alunos 
1. Considere o sinal produzido da seguinte forma: 
t = [0:1/8000:1-1/8000]; 
x = sin(2*pi*800*t); 
Isto corresponde a 8000 amostras de uma sinus´oide de 800 Hz amostrada a 8 kHz. Oic¸a o vector x. Utilize 
a func¸ ˜ao serieFourier descrita anteriormente para representar graficamente a amplitude dos coeficientes 
da s´erie de Fourier de x. 
2. O sinal da al´ınea anterior pode ser visto como a amostragem da sinus´oide cont´ınua: 
x(t) = sin(2800t) 
Repare que a frequˆencia angular da sinus´oide ´e a derivada em ordem ao tempo do argumento da func¸ ˜ao seno: 
! = 
d 
dt 
2800t = 2800 
Considere agora o sinal 
y(t) = sin(2800t2) 
A este sinal d´a-se o nome de chirp. A frequˆencia instant ˆanea pode ser obtida pela derivada do argumento 
da func¸ ˜ao seno: 
!(t) = 
d 
dt 
2800t2 = 4800t 
Num sinal chirp a frequˆencia varia constantemente com o tempo. 
Considere a amostragem a 8 kHz de y(t): 
2
t = [0:1/8000:1-1/8000]; 
y = sin(2*pi*800*(t.*t)); 
Oic¸a o sinal e represente graficamente os coeficientes da s´erie de Fourier. Que gama de valores toma a 
frequˆencia instantˆanea? 
3. Os coeficientes de Fourier que calculou anteriormente, descrevem a gama de frequˆencias do chirp bem, nas 
n˜ao a sua dinˆamica. Represente graficamente os coeficientes da s´erie de Fourier do sinal z dado por: 
z = y(8000:-1:1) 
Oic¸a o sinal. Compare o som de z com o de y e compare os gr´aficos dos coeficientes de Fourier. 
4. O sinal chirp tem uma representac¸ ˜ao em frequˆencia que varia com o tempo. Mais precisamente, existem 
certas propriedades do sinal que mudam suficientemente devagar para o nosso ouvido as entender como uma 
variac¸ ˜ao na composic¸ ˜ao em frequˆencia do sinal em vez de o considerar como pertencente ao pr ´oprio sinal 
(como o timbre ou conte´udo tonal). Note que o nosso ouvido n˜ao ´e sens´ıvel a frequˆencias abaixo dos 30 
Hz. Em vez disso, o nosso c´erebro entende essas variac¸ ˜oes como variac¸ ˜oes na natureza do som e n˜ao como 
conte´udo no dom´ınio da frequˆencia. Os m´etodos de an´alise de Fourier usados anteriormente n˜ao reflectem 
esse fen´omeno psico-ac´ustico. 
A s´erie de Fourier localizada procura resolver este problema. O sinal chirp tem 8000 amostras num se-gundo, 
mas como n˜ao ouvimos variac¸ ˜oes abaixo dos 30 Hz como conte´udo na frequˆencia, pode fazer sentido 
re-analisar o sinal ao ritmo de 30 vezes por segundo. Isto pode ser feito com a seguinte func¸ ˜ao: 
function espectrogramaCascata(s, fs, amostrasespectro, numdeespectros) 
% ESPECTROGRAMACASCATA - Faz o gr´afico 3-D do espectrograma do sinal 
% s. 
% 
% Argumentos: 
% s - o sinal. 
% fs - frequˆencia de amostragem em amostras por segundo. 
% amostrasespectro - o n´umero de amostras usadas para calcular cada 
% espectro. 
% numdeespectros - n´umero de espectros a calcular. 
frequencias = [0:fs/amostrasespectro:fs/2]; 
offset = floor((length(s)-amostrasespectro)/numdeespectros); 
for i=0:(numdeespectros-1) 
start = i*offset; 
[A, phi] = serieFourier(s((1+start):(start+amostrasespectro))); 
amplitude(:,(i+1)) = A’; 
end 
waterfall(frequencias, 0:(numdeespectros-1), amplitude’); 
xlabel(’frequencia’); 
ylabel(’tempo’); 
zlabel(’amplitude’); 
Esta func¸ ˜ao pode ser chamada do seguinte modo: 
t = [0:1/8000:1-1/8000]; 
y = sin(2*pi*800*(t.*t)); 
espectrogramaCascata(y, 8000, 400, 30); 
Que produz o gr´afico da figura 4. O gr´afico mostra 30 conjuntos distintos de coeficientes de Fourier, cada 
um calculado com 400 das 8000 amostras dispon´ıveis. Explique como ´e que este gr´afico descreve o que 
ouviu. Crie um gr´afico semelhante para o chirp invertido z. 
3
0 
1000 
2000 
3000 
4000 
0 
10 
20 
0.6 
0.5 
0.4 
0.3 
0.2 
0.1 
0 
30 
tempo frequencia 
amplitude 
Figura 1: Representac¸ ˜ao da s´erie de Fourier localizada de um sinal chirp 
5. A figura 4 ´e f´acil de interpretar grac¸as `a estrutura relativamente simples do sinal chirp. Sinais mais inte-ressantes 
s˜ao mais dif´ıceis de analisar desta forma. Uma forma de visualizac¸ ˜ao alternativa do conte´udo em 
frequˆencia ´e o espectrograma. Um espectrograma ´e um gr´afico como o da figura 4, mas visto de cima. A 
altura de cada ponto ´e representada por uma cor diferente (ou intensidade numa imagem a preto-e-branco). 
No Matlab existe uma func¸ ˜ao pr´e-definida para gerar um espectrograma: 
specgram(y,512,8000); 
Isto resulta na imagem apresentada na figura 5. Nessa imagem utilizou-se o mapa de cores por omiss˜ao 
(jet). Pode experimentar com outros mapas de cores usando o comando colormap. Um particularmente 
´util ´e: 
colormap(hot) 
Crie uma imagem semelhante para o chirp invertido z. Determine a gama de variac¸ ˜ao da frequˆencia ins-tant 
ˆanea. 
6. Junto a este relat ´orio encontra alguns ficheiros de ´audio. Use os seguintes comandos para os ouvir e visuali-zar: 
[y,fs] = wavread(’audio1.wav’); 
soundsc(y,fs) 
subplot(2,1,1); specgram(y,1024,fs,[],900) 
subplot(2,1,2); plot(y) 
4
Time 
Frequency 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 
4000 
3500 
3000 
2500 
2000 
1500 
1000 
500 
0 
Figura 2: Representac¸ ˜ao da s´erie de Fourier localizada de um sinal chirp 
Interprete os resultados 
7. Para o sinal chirp usado anteriormente: 
t = [0:1/8000:1-1/8000]; 
y = sin(2*pi*800*(t.*t)); 
produza os coeficientes da s´erie de Fourier usando a func¸ ˜ao serieFourier. Escreva uma func¸ ˜ao Matlab 
que use a equac¸ ˜ao 2 para reconstruir o sinal original a partir dos coeficientes. A sua func¸ ˜ao Matlab dever´a 
comec¸ar da seguinte forma: 
function x = reconstroi(amplitude, fase) 
% RECONSTROI - Dado um vector de amplitudes e um vector de fases, 
% constroi um sinal que tem estes valores como coeficientes da s´erie 
% de Fourier. Assume-se que os argumentos tˆem comprimento ´ımpar, 
% p/2+1, e que o vector de retorno tem comprimento p. 
E dever´a realizar a seguinte equac¸ ˜ao: 
8n 2 {m 2 š|m  p}, x(n) = 
p/2 
X 
k=0 
Ak cos(2 fkn + k) 
em que Ak e k s˜ao respectivamente a amplitude e a fase dos coeficientes da s´erie de Fourier. Tenha em 
atenc¸ ˜ao que os ´ındices dos vectores em Matlab comec¸am em 1. 
Note que esta func¸ ˜ao requere um n´umero elevado de operac¸ ˜oes. Se o seu computador n˜ao for suficientemente 
potente, construa os coeficientes de Fourier para as primeira 1000 amostras em vez das 8000 e reconstrua 
5
o sinal a partir desses coeficientes. Para verificar que a reconstruc¸ ˜ao funciona, subtraia o sinal reconstru´ıdo 
do sinal original e examine a diferenc¸a. A diferenc¸a poder´a n˜ao ser exactamente zero, mas dever´a ser muito 
pequena quando comparada com o sinal original. Desenhe o gr´afico do sinal de diferenc¸a. 
8. Iremos agora estudar sinais de batimento que correspondem `a combinac¸ ˜ao de sinais sinusoidais comfrequˆencias 
pr ´oximas. Comece por usar as relac¸ ˜oes de Euler para mostrar que: 
2 cos(!ct) cos(!t) = cos((!c + !)t) + cos((!c − !)t) 
em que !c,!, t 2 ’. 
Esta identidade significa que a multiplicac¸ ˜ao de dois sinais sinusoidais com frequˆencias !c e ! ´e igual `a 
soma de duas sinus´oides com frequˆencias !c + ! e !c − !. 
9. Construa um sinal com a soma de duas sinus´oides de frequˆencias 790 e 810 Hz, amostradas `a frequˆencia 
de 8 kHz e com a durac¸ ˜ao de 1 segundo. Oic¸a o sinal resultante e descreva o que ouve. Desenhe o gr´afico 
das primeiras 800 amostras. Mostre como ´e que o gr´afico ilustra o que ouviu e utilize a identidade da al´ınea 
anterior para explicar o gr´afico. 
10. Qual ´e o per´ıodo do sinal da al´ınea anterior? Qual ´e a frequˆencia fundamental da sua expans˜ao em s´erie de 
Fourier? Apresente o gr´afico da amplitude dos seus coeficientes de Fourier usando a func¸ ˜ao serieFourier. 
Desenhe o espectrograma usando specgram. Escolha cuidadosamente os parˆametros de specgram para a 
imagem ser mais clara. Qual dos dois gr´aficos representa melhor o que ouviu? 
6

Mais conteúdo relacionado

Mais procurados

PROJETO DE FILTROS DIGITAIS E SIMULAÇÕES NO MATLAB
PROJETO DE FILTROS DIGITAIS  E SIMULAÇÕES NO MATLAB PROJETO DE FILTROS DIGITAIS  E SIMULAÇÕES NO MATLAB
PROJETO DE FILTROS DIGITAIS E SIMULAÇÕES NO MATLAB Ciro Marcus
 
Sistemas 2009 1
Sistemas 2009 1Sistemas 2009 1
Sistemas 2009 1Eli Brito
 
Vibracoes
VibracoesVibracoes
Vibracoesaluno29
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Júlio Rocha
 
Séries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de FourierSéries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de FourierCiro Marcus
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 
Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...
Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...
Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...Felipe De Almeida
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
 
Transformada de Fourrier
Transformada de FourrierTransformada de Fourrier
Transformada de FourrierJoão Batista
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeDelacyr Ferreira
 
Aula24 filtros digitais
Aula24 filtros digitaisAula24 filtros digitais
Aula24 filtros digitaisJaudir Lopes
 
Ripple fonte de tensão
Ripple fonte de tensãoRipple fonte de tensão
Ripple fonte de tensãoalexandre10mga
 
Séries fourier cap_6 Funções Contínuas por Partes
Séries fourier cap_6 Funções Contínuas por PartesSéries fourier cap_6 Funções Contínuas por Partes
Séries fourier cap_6 Funções Contínuas por PartesCiro Marcus
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em CCaique Silva
 

Mais procurados (19)

15444311 tutorial-mat lab
15444311 tutorial-mat lab15444311 tutorial-mat lab
15444311 tutorial-mat lab
 
PROJETO DE FILTROS DIGITAIS E SIMULAÇÕES NO MATLAB
PROJETO DE FILTROS DIGITAIS  E SIMULAÇÕES NO MATLAB PROJETO DE FILTROS DIGITAIS  E SIMULAÇÕES NO MATLAB
PROJETO DE FILTROS DIGITAIS E SIMULAÇÕES NO MATLAB
 
Sistemas 2009 1
Sistemas 2009 1Sistemas 2009 1
Sistemas 2009 1
 
Aula 6.
Aula   6.Aula   6.
Aula 6.
 
Vibracoes
VibracoesVibracoes
Vibracoes
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
Séries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de FourierSéries fourier cap_3 Exemplos de Séries de Fourier
Séries fourier cap_3 Exemplos de Séries de Fourier
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...
Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...
Aplicação da Transformada de Laplace na Determinação de Tensões e Correntes e...
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Transformada de Fourrier
Transformada de FourrierTransformada de Fourrier
Transformada de Fourrier
 
Aula 4
Aula   4Aula   4
Aula 4
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Aula24 filtros digitais
Aula24 filtros digitaisAula24 filtros digitais
Aula24 filtros digitais
 
Aula 7
Aula   7Aula   7
Aula 7
 
Aula 5
Aula   5Aula   5
Aula 5
 
Ripple fonte de tensão
Ripple fonte de tensãoRipple fonte de tensão
Ripple fonte de tensão
 
Séries fourier cap_6 Funções Contínuas por Partes
Séries fourier cap_6 Funções Contínuas por PartesSéries fourier cap_6 Funções Contínuas por Partes
Séries fourier cap_6 Funções Contínuas por Partes
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em C
 

Semelhante a Analise de sinais apostila

TRANSFORMADA DE FOURIER PYTHON.pdf
TRANSFORMADA DE FOURIER PYTHON.pdfTRANSFORMADA DE FOURIER PYTHON.pdf
TRANSFORMADA DE FOURIER PYTHON.pdfJeanLima84
 
Cap_1 - Análise de Sinais. Espectro de Frequência
Cap_1 - Análise de Sinais. Espectro de FrequênciaCap_1 - Análise de Sinais. Espectro de Frequência
Cap_1 - Análise de Sinais. Espectro de FrequênciaManuelMbenza
 
Exercicio 5 transformada de fourier no tempo continuo
Exercicio 5   transformada de fourier no tempo continuoExercicio 5   transformada de fourier no tempo continuo
Exercicio 5 transformada de fourier no tempo continuoAlessandro Beda
 
Análise espectral de séries temporais através de ondaletas
Análise espectral de séries temporais através de ondaletasAnálise espectral de séries temporais através de ondaletas
Análise espectral de séries temporais através de ondaletasSebastian Krieger
 
PDS_Aula_Série_de_Fourier.pdf
PDS_Aula_Série_de_Fourier.pdfPDS_Aula_Série_de_Fourier.pdf
PDS_Aula_Série_de_Fourier.pdfAngilbertoMuniz3
 
Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...
Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...
Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...Marco Polo Moreno
 
Princípios de Comunicação - UFPI
Princípios de Comunicação - UFPI Princípios de Comunicação - UFPI
Princípios de Comunicação - UFPI Bruno Mesquita
 
Largura de banda.docx
Largura de banda.docxLargura de banda.docx
Largura de banda.docxJeanLima84
 

Semelhante a Analise de sinais apostila (20)

TRANSFORMADA DE FOURIER PYTHON.pdf
TRANSFORMADA DE FOURIER PYTHON.pdfTRANSFORMADA DE FOURIER PYTHON.pdf
TRANSFORMADA DE FOURIER PYTHON.pdf
 
Fundamentos sobre ruídos
Fundamentos sobre ruídosFundamentos sobre ruídos
Fundamentos sobre ruídos
 
Cap_1 - Análise de Sinais. Espectro de Frequência
Cap_1 - Análise de Sinais. Espectro de FrequênciaCap_1 - Análise de Sinais. Espectro de Frequência
Cap_1 - Análise de Sinais. Espectro de Frequência
 
Exercicio 5 transformada de fourier no tempo continuo
Exercicio 5   transformada de fourier no tempo continuoExercicio 5   transformada de fourier no tempo continuo
Exercicio 5 transformada de fourier no tempo continuo
 
60104 2
60104 260104 2
60104 2
 
Modulação PAM.pdf
Modulação PAM.pdfModulação PAM.pdf
Modulação PAM.pdf
 
FT_Aula_02_2022.pptx
FT_Aula_02_2022.pptxFT_Aula_02_2022.pptx
FT_Aula_02_2022.pptx
 
Fourier
FourierFourier
Fourier
 
Análise espectral de séries temporais através de ondaletas
Análise espectral de séries temporais através de ondaletasAnálise espectral de séries temporais através de ondaletas
Análise espectral de séries temporais através de ondaletas
 
PDS_Aula_Série_de_Fourier.pdf
PDS_Aula_Série_de_Fourier.pdfPDS_Aula_Série_de_Fourier.pdf
PDS_Aula_Série_de_Fourier.pdf
 
Movimentocircular1 fisica
Movimentocircular1   fisicaMovimentocircular1   fisica
Movimentocircular1 fisica
 
Analisador de vibrações I - Modo de funcionamento
Analisador de vibrações I - Modo de funcionamentoAnalisador de vibrações I - Modo de funcionamento
Analisador de vibrações I - Modo de funcionamento
 
Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...
Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...
Espectroscopia coerente em vapor atômico usando um trem de pulsos ultracurtos...
 
Princípios de Comunicação - UFPI
Princípios de Comunicação - UFPI Princípios de Comunicação - UFPI
Princípios de Comunicação - UFPI
 
Experimental7relatorio
Experimental7relatorioExperimental7relatorio
Experimental7relatorio
 
Filtro pb
Filtro pbFiltro pb
Filtro pb
 
Aula 13
Aula   13Aula   13
Aula 13
 
Aula 12
Aula   12Aula   12
Aula 12
 
Largura de banda.docx
Largura de banda.docxLargura de banda.docx
Largura de banda.docx
 
Lista 05
Lista 05Lista 05
Lista 05
 

Analise de sinais apostila

  • 1. Laborat ´orio de Sistemas e Sinais An´alise Espectral Lu´ıs Caldas de Oliveira Abril 2009 O objectivo deste trabalho de laborat ´orio ´e o de ensinar a analisar sinais no dom´ınio da frequˆencia. Utilizaremos dois m´etodos. O primeiro consiste em representar graficamente os coeficientes da s´erie discreta de Fourier de sinais de durac¸ ˜ao finita. O segundo m´etodo representa os coeficientes de segmentos de durac¸ ˜ao limitada de sinais que variam no tempo, criando o que ´e chamado de espectrograma. 1 Introduc¸ ˜ao Um sinal em tempo discreto de durac¸ ˜ao finita com p amostras pode ter a seguinte expans˜ao em s´erie de Fourier: x(n) = A0 + p−1 2 X k=1 Ak cos(k!0n + k) (1) se p for um n´umero ´ımpar e x(n) = A0 + p 2 X k=1 Ak cos(k!0n + k) (2) se p for par. Um sinal de durac¸ ˜ao finita pode ser considerado como um ciclo de um sinal peri ´odico com frequˆencia funda-mental !0 = 2/p em radianos por amostra, ou f = 1/p em Hertz. Neste laborat ´orio assumiremos que p ´e sempre par e faremos a representac¸ ˜ao gr´afica de cada uma das componentes em frequˆencia |A0|, . . . , |Ap/2| para diversos sinais com o objectivo de compreender o significado desses coeficientes. De notar que cada |Ak| d´a a amplitude da componente sinusoidal do sinal `a frequˆencia k!0 = k2/p, que tem como unidades radianos por amostra. Para interpretar estes coeficientes poder´a ser conveniente converter esta unidade para Hertz. Se a frequˆencia de amostragem for fs amostras por segundo, ent˜ao a convers˜ao poder´a ser feita atrav´es de: (k2/p)[radianos/amostra] fs[amostras/segundo] 2[radianos/ciclo] = k fs p [ciclos/segundo] Assim, cada |Ak| d´a a amplitude da componente sinusoidal com frequˆencia k fs/p Hz. Note que o Matlab n˜ao tem nenhuma func¸ ˜ao pr´e-definida para calcular os coeficientes da s´erie de Fourier, tendo no entanto uma func¸ ˜ao que calcula a transformada r´apida de Fourier, chamada fft. Esta func¸ ˜ao pode ser usada para calcular os coeficientes da s´erie de Fourier atrav´es da seguinte func¸ ˜ao serieFourier: function [amplitude, fase] = serieFourier(x) % SERIEFOURIER - Retorna a amplitude e a fase de cada componente % sinusoidal da expans˜ao em s´erie de Fourier do sinal dado como % argumento, que ´e interpretado como um ciclo de um sinal % peri´odico. Assume-se que o argumento tem um n´umero de amostras p que % ´e par. O primeiro valor de retorno ´e um vector contendo as % amplitudes da componentes sinusoidais na expans˜ao em s´erie de % Fourier com frequˆencias 0, 1/p, 2/p, ... 1/2. O segundo valor de % retorno ´e um vector com as fases das componentes sinusoidais. Ambos % os vectores tˆem comprimento de (p/2)+1. 1
  • 2. p = length(x); f = fft(x)/p; amplitude(1) = abs(f(1)); upper = p/2; amplitude(2:upper) = 2*abs(f(2:upper)); amplitude(upper+1) = abs(f(upper+1)); fase(1) = angle(f(1)); fase(2:upper) = angle(f(2:upper)); fase(upper+1) = angle(f(upper+1)); Se se tiver um vector x com comprimento par, pode-se usar a func¸ ˜ao para obter os coeficientes da DFS: [A, phi] = serieFourier(x); Os vectores A e phi contˆem a amplitude e a fase de cada coeficiente. Para representar graficamente as amplitudes dos coeficientes em func¸ ˜ao da frequˆencia basta fazer: p = length(x); frequencias = [0:fs/p:fs/2]; plot(frequencias, A); xlabel(’frequencia em Hertz’); ylabel(’amplitude’); Em que fs ter´a o valor da frequˆencia de amostragem em amostras por segundo. A linha frequencias = [0:fs/p:fs/2]; requer uma an´alise mais cuidada. Produz um vector com o mesmo comprimento de A, ou seja 1 + p/2, em que p ´e o comprimento do vector x. Os elementos do vector frequencias s˜ao as frequˆencias em Hertz de cada componente da s´erie de Fourier. 2 Trabalho para os Alunos 1. Considere o sinal produzido da seguinte forma: t = [0:1/8000:1-1/8000]; x = sin(2*pi*800*t); Isto corresponde a 8000 amostras de uma sinus´oide de 800 Hz amostrada a 8 kHz. Oic¸a o vector x. Utilize a func¸ ˜ao serieFourier descrita anteriormente para representar graficamente a amplitude dos coeficientes da s´erie de Fourier de x. 2. O sinal da al´ınea anterior pode ser visto como a amostragem da sinus´oide cont´ınua: x(t) = sin(2800t) Repare que a frequˆencia angular da sinus´oide ´e a derivada em ordem ao tempo do argumento da func¸ ˜ao seno: ! = d dt 2800t = 2800 Considere agora o sinal y(t) = sin(2800t2) A este sinal d´a-se o nome de chirp. A frequˆencia instant ˆanea pode ser obtida pela derivada do argumento da func¸ ˜ao seno: !(t) = d dt 2800t2 = 4800t Num sinal chirp a frequˆencia varia constantemente com o tempo. Considere a amostragem a 8 kHz de y(t): 2
  • 3. t = [0:1/8000:1-1/8000]; y = sin(2*pi*800*(t.*t)); Oic¸a o sinal e represente graficamente os coeficientes da s´erie de Fourier. Que gama de valores toma a frequˆencia instantˆanea? 3. Os coeficientes de Fourier que calculou anteriormente, descrevem a gama de frequˆencias do chirp bem, nas n˜ao a sua dinˆamica. Represente graficamente os coeficientes da s´erie de Fourier do sinal z dado por: z = y(8000:-1:1) Oic¸a o sinal. Compare o som de z com o de y e compare os gr´aficos dos coeficientes de Fourier. 4. O sinal chirp tem uma representac¸ ˜ao em frequˆencia que varia com o tempo. Mais precisamente, existem certas propriedades do sinal que mudam suficientemente devagar para o nosso ouvido as entender como uma variac¸ ˜ao na composic¸ ˜ao em frequˆencia do sinal em vez de o considerar como pertencente ao pr ´oprio sinal (como o timbre ou conte´udo tonal). Note que o nosso ouvido n˜ao ´e sens´ıvel a frequˆencias abaixo dos 30 Hz. Em vez disso, o nosso c´erebro entende essas variac¸ ˜oes como variac¸ ˜oes na natureza do som e n˜ao como conte´udo no dom´ınio da frequˆencia. Os m´etodos de an´alise de Fourier usados anteriormente n˜ao reflectem esse fen´omeno psico-ac´ustico. A s´erie de Fourier localizada procura resolver este problema. O sinal chirp tem 8000 amostras num se-gundo, mas como n˜ao ouvimos variac¸ ˜oes abaixo dos 30 Hz como conte´udo na frequˆencia, pode fazer sentido re-analisar o sinal ao ritmo de 30 vezes por segundo. Isto pode ser feito com a seguinte func¸ ˜ao: function espectrogramaCascata(s, fs, amostrasespectro, numdeespectros) % ESPECTROGRAMACASCATA - Faz o gr´afico 3-D do espectrograma do sinal % s. % % Argumentos: % s - o sinal. % fs - frequˆencia de amostragem em amostras por segundo. % amostrasespectro - o n´umero de amostras usadas para calcular cada % espectro. % numdeespectros - n´umero de espectros a calcular. frequencias = [0:fs/amostrasespectro:fs/2]; offset = floor((length(s)-amostrasespectro)/numdeespectros); for i=0:(numdeespectros-1) start = i*offset; [A, phi] = serieFourier(s((1+start):(start+amostrasespectro))); amplitude(:,(i+1)) = A’; end waterfall(frequencias, 0:(numdeespectros-1), amplitude’); xlabel(’frequencia’); ylabel(’tempo’); zlabel(’amplitude’); Esta func¸ ˜ao pode ser chamada do seguinte modo: t = [0:1/8000:1-1/8000]; y = sin(2*pi*800*(t.*t)); espectrogramaCascata(y, 8000, 400, 30); Que produz o gr´afico da figura 4. O gr´afico mostra 30 conjuntos distintos de coeficientes de Fourier, cada um calculado com 400 das 8000 amostras dispon´ıveis. Explique como ´e que este gr´afico descreve o que ouviu. Crie um gr´afico semelhante para o chirp invertido z. 3
  • 4. 0 1000 2000 3000 4000 0 10 20 0.6 0.5 0.4 0.3 0.2 0.1 0 30 tempo frequencia amplitude Figura 1: Representac¸ ˜ao da s´erie de Fourier localizada de um sinal chirp 5. A figura 4 ´e f´acil de interpretar grac¸as `a estrutura relativamente simples do sinal chirp. Sinais mais inte-ressantes s˜ao mais dif´ıceis de analisar desta forma. Uma forma de visualizac¸ ˜ao alternativa do conte´udo em frequˆencia ´e o espectrograma. Um espectrograma ´e um gr´afico como o da figura 4, mas visto de cima. A altura de cada ponto ´e representada por uma cor diferente (ou intensidade numa imagem a preto-e-branco). No Matlab existe uma func¸ ˜ao pr´e-definida para gerar um espectrograma: specgram(y,512,8000); Isto resulta na imagem apresentada na figura 5. Nessa imagem utilizou-se o mapa de cores por omiss˜ao (jet). Pode experimentar com outros mapas de cores usando o comando colormap. Um particularmente ´util ´e: colormap(hot) Crie uma imagem semelhante para o chirp invertido z. Determine a gama de variac¸ ˜ao da frequˆencia ins-tant ˆanea. 6. Junto a este relat ´orio encontra alguns ficheiros de ´audio. Use os seguintes comandos para os ouvir e visuali-zar: [y,fs] = wavread(’audio1.wav’); soundsc(y,fs) subplot(2,1,1); specgram(y,1024,fs,[],900) subplot(2,1,2); plot(y) 4
  • 5. Time Frequency 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 4000 3500 3000 2500 2000 1500 1000 500 0 Figura 2: Representac¸ ˜ao da s´erie de Fourier localizada de um sinal chirp Interprete os resultados 7. Para o sinal chirp usado anteriormente: t = [0:1/8000:1-1/8000]; y = sin(2*pi*800*(t.*t)); produza os coeficientes da s´erie de Fourier usando a func¸ ˜ao serieFourier. Escreva uma func¸ ˜ao Matlab que use a equac¸ ˜ao 2 para reconstruir o sinal original a partir dos coeficientes. A sua func¸ ˜ao Matlab dever´a comec¸ar da seguinte forma: function x = reconstroi(amplitude, fase) % RECONSTROI - Dado um vector de amplitudes e um vector de fases, % constroi um sinal que tem estes valores como coeficientes da s´erie % de Fourier. Assume-se que os argumentos tˆem comprimento ´ımpar, % p/2+1, e que o vector de retorno tem comprimento p. E dever´a realizar a seguinte equac¸ ˜ao: 8n 2 {m 2 š|m p}, x(n) = p/2 X k=0 Ak cos(2 fkn + k) em que Ak e k s˜ao respectivamente a amplitude e a fase dos coeficientes da s´erie de Fourier. Tenha em atenc¸ ˜ao que os ´ındices dos vectores em Matlab comec¸am em 1. Note que esta func¸ ˜ao requere um n´umero elevado de operac¸ ˜oes. Se o seu computador n˜ao for suficientemente potente, construa os coeficientes de Fourier para as primeira 1000 amostras em vez das 8000 e reconstrua 5
  • 6. o sinal a partir desses coeficientes. Para verificar que a reconstruc¸ ˜ao funciona, subtraia o sinal reconstru´ıdo do sinal original e examine a diferenc¸a. A diferenc¸a poder´a n˜ao ser exactamente zero, mas dever´a ser muito pequena quando comparada com o sinal original. Desenhe o gr´afico do sinal de diferenc¸a. 8. Iremos agora estudar sinais de batimento que correspondem `a combinac¸ ˜ao de sinais sinusoidais comfrequˆencias pr ´oximas. Comece por usar as relac¸ ˜oes de Euler para mostrar que: 2 cos(!ct) cos(!t) = cos((!c + !)t) + cos((!c − !)t) em que !c,!, t 2 ’. Esta identidade significa que a multiplicac¸ ˜ao de dois sinais sinusoidais com frequˆencias !c e ! ´e igual `a soma de duas sinus´oides com frequˆencias !c + ! e !c − !. 9. Construa um sinal com a soma de duas sinus´oides de frequˆencias 790 e 810 Hz, amostradas `a frequˆencia de 8 kHz e com a durac¸ ˜ao de 1 segundo. Oic¸a o sinal resultante e descreva o que ouve. Desenhe o gr´afico das primeiras 800 amostras. Mostre como ´e que o gr´afico ilustra o que ouviu e utilize a identidade da al´ınea anterior para explicar o gr´afico. 10. Qual ´e o per´ıodo do sinal da al´ınea anterior? Qual ´e a frequˆencia fundamental da sua expans˜ao em s´erie de Fourier? Apresente o gr´afico da amplitude dos seus coeficientes de Fourier usando a func¸ ˜ao serieFourier. Desenhe o espectrograma usando specgram. Escolha cuidadosamente os parˆametros de specgram para a imagem ser mais clara. Qual dos dois gr´aficos representa melhor o que ouviu? 6