matplotlib.pyplot.specgram #

matplotlib.pyplot. specgram ( x , NFFT = Nenhum , Fs = Nenhum , Fc = Nenhum , detrend = Nenhum , janela = Nenhum , noverlap = Nenhum , cmap = Nenhum , xextent = Nenhum , pad_to = Nenhum , lados = Nenhum , scale_by_freq = Nenhum , modo = Nenhum, escala = Nenhum , vmin = Nenhum , vmax = Nenhum , * , dados = Nenhum , ** kwargs ) [fonte] #

Traçar um espectrograma.

Calcule e plote um espectrograma de dados em x . Os dados são divididos em segmentos de comprimento NFFT e o espectro de cada seção é calculado. A janela de função de janelamento é aplicada a cada segmento e a quantidade de sobreposição de cada segmento é especificada com noverlap . O espectrograma é plotado como um mapa de cores (usando imshow).

Parâmetros :
x matriz 1-D ou sequência

Array ou sequência contendo os dados.

Fs flutuante, padrão: 2

A frequência de amostragem (amostras por unidade de tempo). É usado para calcular as frequências de Fourier, freqs , em ciclos por unidade de tempo.

janela chamável ou ndarray, padrão:window_hanning

Uma função ou um vetor de comprimento NFFT . Para criar vetores de janela, consulte window_hanning, window_none, numpy.blackman, numpy.hamming, numpy.bartlett, scipy.signal, scipy.signal.get_windowetc. Se uma função for passada como argumento, ela deve receber um segmento de dados como argumento e retornar a versão em janela do segmento.

lados {'padrão', 'onesided', 'twosided'}, opcional

De quais lados do espectro retornar. 'padrão' é unilateral para dados reais e bilateral para dados complexos. 'onesided' força o retorno de um espectro unilateral, enquanto 'twosided' força bilateral.

pad_to int, opcional

O número de pontos para os quais o segmento de dados é preenchido ao executar a FFT. Isso pode ser diferente do NFFT , que especifica o número de pontos de dados usados. Embora não aumente a resolução real do espectro (a distância mínima entre picos resolvíveis), isso pode dar mais pontos no gráfico, permitindo mais detalhes. Isso corresponde ao parâmetro nfft na chamada para . O padrão é None, que define pad_to igual a NFFT

NFFT int, padrão: 256

O número de pontos de dados usados ​​em cada bloco para a FFT. A potência 2 é mais eficiente. Isso NÃO deve ser usado para obter preenchimento zero, ou a escala do resultado ficará incorreta; use pad_to para isso.

detrend {'none', 'mean', 'linear'} ou callable, padrão: 'none'

A função aplicada a cada segmento antes do fft-ing, projetada para remover a média ou tendência linear. Ao contrário do MATLAB, onde o parâmetro de tendência é um vetor, no Matplotlib é uma função. O mlab módulo define detrend_none, detrend_meane detrend_linear, mas você também pode usar uma função personalizada. Você também pode usar uma string para escolher uma das funções: 'none' calls detrend_none. chamadas 'más' detrend_mean. chamadas 'lineares' detrend_linear.

scale_by_freq bool, padrão: True

Se os valores de densidade resultantes devem ser dimensionados pela frequência de escala, que fornece a densidade em unidades de 1/Hz. Isso permite a integração sobre os valores de frequência retornados. O padrão é True para compatibilidade com MATLAB.

modo {'padrão', 'psd', 'magnitude', 'ângulo', 'fase'}

Que tipo de espectro usar. O padrão é 'psd', que usa a densidade espectral de potência. 'magnitude' retorna o espectro de magnitude. 'ângulo' retorna o espectro de fase sem desembrulhar. 'phase' retorna o espectro de fase com desempacotamento.

noverlap int, padrão: 128

O número de pontos de sobreposição entre os blocos.

escala {'padrão', 'linear', 'dB'}

A escala dos valores no arquivo spec . 'linear' não é escala. 'dB' retorna os valores na escala dB. Quando o modo é 'psd', esta é a potência dB (10 * log10). Caso contrário, esta é a amplitude dB (20 * log10). 'padrão' é 'dB' se o modo for 'psd' ou 'magnitude' e 'linear' caso contrário. Deve ser 'linear' se o modo for 'ângulo' ou 'fase'.

Fc int, padrão: 0

A frequência central de x , que compensa as extensões x do gráfico para refletir a faixa de frequência usada quando um sinal é adquirido e, em seguida, filtrado e reduzido para a banda base.

cmap Colormap, padrão: rcParams["image.cmap"](padrão: 'viridis')
xextent Nenhum ou (xmin, xmax)

A extensão da imagem ao longo do eixo x. O padrão define xmin para a borda esquerda do primeiro bin ( coluna do espectro ) e xmax para a borda direita do último bin. Note que para noverlap>0 a largura dos bins é menor que a dos segmentos.

objeto indexável de dados , opcional

Se fornecidos, os seguintes parâmetros também aceitam uma string s, que é interpretada como data[s](a menos que isso gere uma exceção):

x

** kwargs

Argumentos de palavras-chave adicionais são passados ​​para imshow o que cria a imagem do specgram. O argumento da palavra-chave origin não é suportado.

Devoluções :
matriz 2D de espectro

As colunas são os periodogramas de segmentos sucessivos.

matriz 1-D de frequências

As frequências correspondentes às linhas no espectro .

t matriz 1-D

Os tempos correspondentes aos pontos médios dos segmentos (ou seja, as colunas no espectro ).

Eu estouAxesImage

A imagem criada por imshow contendo o espectrograma.

Veja também

psd

Difere na sobreposição padrão; ao retornar a média dos periodogramas do segmento; em tempos de não retorno; e na geração de um gráfico de linha em vez de um mapa de cores.

magnitude_spectrum

Um único espectro, semelhante a ter um único segmento quando o modo é 'magnitude'. Traça uma linha em vez de um mapa de cores.

angle_spectrum

Um único espectro, semelhante a ter um único segmento quando o modo é 'ângulo'. Traça uma linha em vez de um mapa de cores.

phase_spectrum

Um único espectro, semelhante a ter um único segmento quando o modo é 'fase'. Traça uma linha em vez de um mapa de cores.

Notas

Os parâmetros detrend e scale_by_freq só se aplicam quando o modo é definido como 'psd'.