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, *, data=None, **kwargs)[source] -
Построение спектрограммы.
Вызов функции:
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 : 1-D array or sequence -
Массив или последовательность, содержащая данные.
-
Fs : scalar -
Частота дискретизации (образцов в единицу времени). Она используется для вычисления частот Фурье, freqs, в циклах за единицу времени. Значение по умолчанию равно 2.
-
window : callable or ndarray -
Функция или вектор длины 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 : int -
Количество точек, до которого данные сегмента дополняются при выполнении БПФ. Это может отличаться от NFFT, которое определяет количество точек данных, используемых. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), это может обеспечить больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). Значение по умолчанию — None, что устанавливает pad_to равным NFFT
-
NFFT : int -
Количество точек данных, используемых в каждом блоке для БПФ. Степень 2 наиболее эффективна. Значение по умолчанию — 256. Это НЕ следует использовать для получения нулевого заполнения, иначе масштабирование результата будет неверным. Используйте pad_to для этой цели вместо этого.
-
detrend : {'default', 'constant', 'mean', 'linear', 'none'} or callable -
Функция, применяемая к каждому сегменту перед БПФ, предназначенная для удаления среднего значения или линейной тенденции. В отличие от MATLAB, где параметр detrend является вектором, в matplotlib он является функцией. Модуль
mlabопределяетdetrend_none(),detrend_mean()иdetrend_linear(), но вы также можете использовать пользовательскую функцию. Вы также можете использовать строку для выбора одной из функций. 'default', 'constant' и 'mean' вызываютdetrend_mean(). 'linear' вызываетdetrend_linear(). 'none' вызываетdetrend_none(). -
scale_by_freq : bool, optional -
Указывает, должны ли возвращаемые значения плотности масштабироваться по частоте масштабирования, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать возвращаемые значения частоты. Значение по умолчанию — True для совместимости с MATLAB.
-
mode : {'default', 'psd', 'magnitude', 'angle', 'phase'} -
Тип спектра. Значение по умолчанию — 'psd', которое берёт плотность спектральной мощности. 'complex' возвращает комплекснозначный спектр частоты. 'magnitude' возвращает спектр амплитуды. 'angle' возвращает спектр фазы без разворачивания. 'phase' возвращает спектр фазы с разворачиванием.
-
noverlap : int -
Количество перекрывающихся точек между блоками. Значение по умолчанию — 128.
-
scale : {'default', 'linear', 'dB'} -
Масштабирование значений в spec. 'linear' — без масштабирования. 'dB' возвращает значения в шкале дБ. При mode = 'psd' это дБ мощности (10 * log10). В противном случае это дБ амплитуды (20 * log10). 'default' — 'dB', если mode — 'psd' или 'magnitude', и 'linear' в противном случае. Это должно быть 'linear', если mode — 'angle' или 'phase'.
-
Fc : int -
Центральная частота x (по умолчанию 0), которая смещает области x графика, чтобы отразить диапазон частот, используемый при получении сигнала, а затем фильтрации и дискретизации до базовой полосы.
- cmap :
-
Экземпляр
matplotlib.colors.Colormap; если None, используется значение по умолчанию, определяемое rc -
xextent : None or (xmin, xmax) -
Диапазон изображения по оси x. Значение по умолчанию устанавливает xmin для левой границы первого бина (столбец spectrum) и xmax для правой границы последнего бина. Обратите внимание, что для noverlap>0 ширина бинов меньше, чем у сегментов.
- **kwargs :
-
Дополнительные параметры kwargs передаются в imshow для создания изображения спектрограммы.
Возвращает: -
spectrum : 2-D array -
Столбцы — периодограммы последовательных сегментов.
-
freqs : 1-D array -
Частоты, соответствующие строкам в spectrum.
-
t : 1-D array -
Время, соответствующее серединам сегментов (т.е. столбцам в spectrum).
-
im : instance of class AxesImage -
Изображение, созданное imshow, содержащее спектрограмму
См. также
-
psd() -
psd()отличается значением перекрытия по умолчанию; возвращает среднее значение периодограмм сегментов; не возвращает время; и генерирует линейный график вместо цветовой карты. -
magnitude_spectrum() - Один спектр, аналогичный одному сегменту, когда mode = 'magnitude'. Строит линию вместо цветовой карты.
-
angle_spectrum() - Один спектр, аналогичный одному сегменту, когда mode = 'angle'. Строит линию вместо цветовой карты.
-
phase_spectrum() - Один спектр, аналогичный одному сегменту, когда mode = 'phase'. Строит линию вместо цветовой карты.
Примечания
Параметры detrend и scale_by_freq применяются только когда mode установлен в 'psd'.
Примечание
Помимо описанных выше аргументов, данная функция может принимать ключевой аргумент data. Если такой аргумент data задан, следующие аргументы заменяются на data[<arg>]:
- Все аргументы с именами 'x'.
Объекты, переданные как data, должны поддерживать доступ к элементам (
data[<arg>]) и проверку на членство (<arg> in data). -
Примеры использования matplotlib.pyplot.specgram
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.0.0/api/_as_gen/matplotlib.pyplot.specgram.html