You are on page 1of 6

Junte-se a nós na construção de uma comunidade de aprendizagem colaborativa e amável através do nosso Código de Conduta atualizado .

O que é um espectrograma e como faço para definir seus Perguntar

parâmetros?

Eu estou tentando plotar o espectrograma do meu sinal de domínio de


tempo dado:

N=5000;
phi = (rand(1,N)-0.5)*pi;
a = tan((0.5.*phi));
i = 2.*a./(1-a.^2);
plot(i);
spectrogram(i,100,1,100,1e3);

O problema é que não entendo os parâmetros e quais valores devem ser


dados. Estes valores que estou usando, referi-me a documentação on-
line do MATLAB spectrogram . Eu sou novo no MATLAB e não estou
entendendo a idéia. Qualquer ajuda será muito apreciada!

Matlab -processamento do sinal FFT espectrograma

editado Março 28 '15 às 22:52


Junte-se ao Stack Overflow para aprender, compartilhar conhecimento e construir sua carreira.
Rayryeng
Este site usa cookies para fornecer nossos serviços e mostrar anúncios relevantes e listas de empregos. Ao utilizar nosso site, você reconhece que leu e
80,5k 17 107 135
compreendeu nossa Política de Cookies , Política de Privacidade e nossos Termos de Serviço . Seu uso dos Produtos e Serviços do Stack Overflow, incluindo a Rede
E-maileInscreva-se
de Estouro de Pilha, está sujeito a estas políticas termos. OU FAÇA LOGIN COM
perguntou 28 Google
de março de 2015 àsFacebook
19:40
benzeno
50 1 1 4

1 Você já verificou a ajuda? mathworks.com/help/signal/ref/… - NKN Mar 28 '15


às 20:14

1 resposta

Antes de entrarmos no que o comando do MATLAB faz, você


provavelmente quer saber o que é um espectrograma. Dessa forma, você
terá mais significado em como cada parâmetro funciona.

Um espectrograma é uma representação visual da Transformada de


Fourier de Curto Prazo . Pense nisso como pegando pedaços de um sinal
de entrada e aplicando uma Transformada de Fourier local em cada
pedaço. Cada parte tem uma largura especificada e você aplica uma
Transformada de Fourier a este pedaço. Você deve observar que cada
parte tem uma distribuição de frequência associada. Para cada pedaço
que é centrado em um ponto de tempo específico no seu sinal de tempo,
você obtém um monte de componentes de frequência. A coleção de
todos esses componentes de freqüência em cada pedaço e plotados
todos juntos é essencialmente um espectrograma.

O espectrograma é um mapa de calor visual 2D, onde o eixo horizontal


representa o tempo do sinal e o eixo vertical representa o eixo da
frequência. O que é visualizado é uma imagem em que as cores mais
escuras significam que, para um determinado ponto de tempo e uma
determinada frequência, quanto menor for a magnitude do componente
de frequência, mais escura será a cor. Da mesma forma, quanto maior a
magnitude do componente de frequência, mais clara será a cor.

Aqui está um exemplo perfeito de um espectrograma:


Fonte:
Wikipedia

Portanto, para cada ponto de tempo, vemos uma distribuição de


componentes de frequência. Pense em cada coluna como a
decomposição de freqüência de um pedaço centralizado neste ponto de
tempo. Para cada coluna, vemos um espectro variado de cores. Quanto
mais escura a cor, menor o componente de magnitude nessa freqüência e
vice-versa.

Então! ... agora você está armado com isso, vamos ver como o MATLAB
funciona em termos de função e seus parâmetros. A maneira como você
está chamando spectrogram está em conformidade com esta versão da
função:

spectrogram(x,window,noverlap,nfft,fs)

Vamos percorrer cada parâmetro um por um para que você possa


entender melhor o que cada um faz:

x - Este é o sinal do domínio do tempo de entrada para o qual você


deseja encontrar o espectrograma. Não pode ficar muito mais
simples que isso. No seu caso, o sinal que você quer encontrar no
espectrograma é definido no seguinte código:

N=5000;
phi = (rand(1,N)-0.5)*pi;
a = tan((0.5.*phi));
i = 2.*a./(1-a.^2);

Aqui, i é o sinal que você quer encontrar o espectrograma de.


window - Se você se lembra, nós decompomos a imagem em
pedaços, e cada pedaço tem uma largura especificada. window define
a largura de cada pedaço em termos de amostras . Como este é um
sinal de tempo discreto, você sabe que este sinal foi amostrado com
uma freqüência de amostragem e um período de amostragem
específicos. Você pode determinar o tamanho da janela em termos
de amostras:
Casa
window_samples = window_time/Ts

PÚBLICO
Ts é o tempo de amostragem do seu sinal. Definir o tamanho da
Estouro de pilha janela é realmente muito empírico e requer muita experimentação.
Basicamente, quanto maior o tamanho da janela, melhor a resolução
Tag de freqüência que você obtém ao capturar mais das freqüências,
mas a localização do tempo é ruim. Da mesma forma, quanto menor
Comercial
o tamanho da janela, melhor a localização que você tem no tempo,
Empregos mas não obtém uma decomposição de frequência tão grande. Eu
não tenho nenhuma sugestão aqui sobre qual é o tamanho mais
ideal ... é por isso que as wavelets são preferidas quando se trata de
Equipas decomposição de freqüência de tempo. Para cada "pedaço", os
Q & A para o trabalho pedaços são decompostos em pedaços menores de largura dinâmica
para que você obtenha uma mistura de tempo e localização de
Criar Equipa frequência.
noverlap - Outra maneira de garantir boa localização de frequência é
que os pedaços estão sobrepostos . Um espectrograma adequado
garante que cada pedaço tenha um certo número de amostras que
se sobreponham para cada pedaço e noverlap define quantas
amostras são sobrepostas em cada janela. O padrão é 50% da
largura de cada pedaço.
nfft - Você está essencialmente tomando o FFT de cada pedaço.
nfft informa quantos pontos FFT são desejados para serem
computados por trecho. O número padrão de pontos é o maior de
256, ou floor(log2(N)) onde N é o comprimento do sinal.
nfft também fornece uma medida de quão detalhada será a
resolução da frequência. Um número maior de pontos FFT daria
maior resolução de freqüência e, portanto, mostrando detalhes finos
ao longo do eixo de freqüência do espectrograma, se visualizado.
fs - A frequência de amostragem do seu sinal. O padrão é 1 Hz,
mas você pode substituir isso para qualquer frequência de
amostragem em que seu sinal esteja.

Portanto, o que você provavelmente deve tirar disso é que eu não posso
dizer como definir os parâmetros. Tudo depende do sinal que você tem,
mas esperamos que a explicação acima lhe dê uma idéia melhor de
como definir os parâmetros.

Boa sorte!

editado fevereiro 8 '17 em 15:01


Comunidade ♦
1 1

respondeu 28 de março de 2015 às


Rayryeng
80,5k 17 107 135

Esta é uma ótima resposta. Gostaria apenas de acrescentar que nfft dá uma
medida de quão fina a resolução de freqüência será. Um número mais elevado
de pontos FFT daria uma resolução de frequência mais alta, mostrando
detalhes detalhados ao longo do eixo de frequência do espectrograma, se
visualizado. - AruniRC 15 de agosto '16 às 16:01

@ AruniRC Isso é muito verdadeiro. Vou colocar isso dentro Obrigado! -


Rayryeng 15 de agosto de 2016 às 16:09

1 resposta maravilhosa! - angryip 22 de março às 18:28


protegido por rayryeng 30 de março de 2015 às 14:46
Obrigado pelo seu interesse nesta questão. Por ter atraído respostas de
baixa qualidade ou spam que precisaram ser removidas, postar uma
resposta agora requer 10 de reputação neste site (o bônus de associação
não conta ).

Gostaria de responder a uma dessas perguntas não respondidas ?

You might also like