matplotlib.pyplot.specgram
-
matplotlib.pyplot.specgram(x, NFFT=None, Fs=None, Fc=None, detrend=None, window=None, noverlap=None, cmap=None, xextent=None, pad_to=None, sides=None, scale_by_freq=None, mode=None, scale=None, vmin=None, vmax=None, hold=None, data=None, **kwargs) -
Построение спектрограммы.
Вызов:
specgram(x, NFFT=256, Fs=2, Fc=0, detrend=mlab.detrend_none, window=mlab.window_hanning, noverlap=128, cmap=None, xextent=None, pad_to=None, sides='default', scale_by_freq=None, mode='default', scale='default', **kwargs)Вычисление и построение спектрограммы данных в x. Данные разбиваются на сегменты длиной NFFT, и вычисляется спектр каждого сегмента. Функция окна window применяется к каждому сегменту, а величина перекрытия сегментов задаётся параметром noverlap. Спектрограмма строится в виде цветовой карты (используя imshow).
Параметры: x : одномерный массив или последовательность
Массив или последовательность, содержащая данные.
Fs : скаляр
Частота дискретизации (образцов в единицу времени). Она используется для вычисления частот Фурье, freqs, в циклах на единицу времени. Значение по умолчанию равно 2.
window : вызываемая функция или массив
Функция или вектор длиной NFFT. Для создания векторов окон см.
window_hanning(),window_none(),numpy.blackman(),numpy.hamming(),numpy.bartlett(),scipy.signal(),scipy.signal.get_window()и т.д. Значение по умолчаниюwindow_hanning(). Если в качестве аргумента передана функция, она должна принимать сегмент данных и возвращать оконную версию сегмента.sides : [ ‘default’ | ‘onesided’ | ‘twosided’ ]
Указывает, какие стороны спектра возвращать. Значение по умолчанию даёт поведение по умолчанию, которое возвращает односторонний спектр для вещественных данных и двусторонний для комплексных данных. ‘onesided’ принудительно возвращает односторонний спектр, а ‘twosided’ — двусторонний.
pad_to : целое число
Количество точек, до которых дополняется сегмент данных при выполнении FFT. Это может отличаться от NFFT, которое определяет количество точек данных, используемых.
NFFT : целое число
Количество точек данных, используемых в каждом блоке для FFT. Мощность 2 наиболее эффективна. Значение по умолчанию равно 256. Этого параметра не следует использовать для нулевого заполнения, иначе масштабирование результата будет неверным. Используйте pad_to для этого.
detrend : {‘default’, ‘constant’, ‘mean’, ‘linear’, ‘none’} или вызываемая функция
Функция, применяемая к каждому сегменту перед выполнением FFT, предназначенная для удаления среднего значения или линейной тенденции. В отличие от MATLAB, где параметр detrend является вектором, в matplotlib он является функцией. Модуль
pylabопределяетdetrend_none(),detrend_mean(), иdetrend_linear(), но вы также можете использовать пользовательскую функцию. Вы также можете использовать строку, чтобы выбрать одну из функций. ‘default’, ‘constant’, и ‘mean’ вызываютdetrend_mean(). ‘linear’ вызываетdetrend_linear(). ‘none’ вызываетdetrend_none().scale_by_freq : boolean, необязательно
Указывает, следует ли масштабировать возвращаемые значения плотности в соответствии с частотой масштабирования, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать по возвращаемым частотным значениям. По умолчанию значение True для совместимости с MATLAB.
mode : [ ‘default’ | ‘psd’ | ‘magnitude’ | ‘angle’ | ‘phase’ ]
Какой тип спектра использовать. По умолчанию ‘psd’, что берёт плотность спектральной мощности. ‘complex’ возвращает комплекснозначный спектр частот. ‘magnitude’ возвращает спектр величины. ‘angle’ возвращает спектр фазы без развёртывания. ‘phase’ возвращает спектр фазы с развёртыванием.
noverlap : целое число
Количество перекрывающихся точек между блоками. Значение по умолчанию равно 128.
scale : [ ‘default’ | ‘linear’ | ‘dB’ ]
Масштабирование значений в spec. ‘linear’ — без масштабирования. ‘dB’ возвращает значения в шкале dB. Когда mode равен ‘psd’, это dB мощности (10 * log10). В противном случае это dB амплитуды (20 * log10). ‘default’ — ‘dB’, если mode равен ‘psd’ или ‘magnitude’, и ‘linear’ в противном случае. Это должно быть ‘linear’, если mode равен ‘angle’ или ‘phase’.
Fc : целое число
Центральная частота x (по умолчанию 0), которая смещает границы оси x графика, чтобы отразить диапазон частот, используемых при получении сигнала, а затем его фильтрации и сэмплирования с понижением частоты до базовой полосы.
cmap :
экземпляр
matplotlib.colors.Colormap; если None, используется значение по умолчанию, определённое rcxextent : [None | (xmin, xmax)]
Диапазон изображения по оси x. Значение по умолчанию устанавливает xmin в левую границу первого бина (столбец spectrum) и xmax в правую границу последнего бина. Обратите внимание, что при noverlap>0 ширина бинов меньше, чем у сегментов.
**kwargs :
Дополнительные аргументы kwargs передаются imshow, который создаёт изображение спектрограммы
Возвращаемое значение: spectrum : двумерный массив
Столбцы — периодограммы последовательных сегментов.
freqs : одномерный массив
Частоты, соответствующие строкам в spectrum.
t : одномерный массив
Времена, соответствующие серединам сегментов (т.е., столбцам в spectrum).
im : экземпляр класса
AxesImageИзображение, созданное imshow, содержащее спектрограмму
См. также
-
psd() -
psd()отличается по умолчанию перекрытием; по возвращению среднего значения периодограмм сегментов; по отсутствию возвращаемых времён; и по генерации линейного графика вместо цветовой карты. -
magnitude_spectrum() - Один спектр, аналогично одному сегменту, когда mode равен ‘magnitude’. Строит линию вместо цветовой карты.
-
angle_spectrum() - Один спектр, аналогично одному сегменту, когда mode равен ‘angle’. Строит линию вместо цветовой карты.
-
phase_spectrum() - Один спектр, аналогично одному сегменту, когда mode равен ‘phase’. Строит линию вместо цветовой карты.
- В дополнение к вышеописанным аргументам, эта функция может принимать ключевой аргумент data. Если такой аргумент data задан, следующие аргументы заменяются на data[<arg>]: * Все аргументы с указанными именами: ‘x’.
Примечания
detrend и scale_by_freq применяются только тогда, когда mode установлен в ‘psd’
-
Примеры использования matplotlib.pyplot.specgram
© 2012–2017 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/2.1.0/api/_as_gen/matplotlib.pyplot.specgram.html