2023-05-04 librosa的spectrogram

import librosa
def get_spectrogram(waveform, fs, nfft=128, overlap_pct=0.8):
    """
    Get the spectrogram of a single channel
    Inputs:
    :param waveform: single channel temporal signal
    :param fs: the sampling frequency (Hz)
    :param nfft: number of time samples used for the STFT. Default 128
    :param overlap_pct: percentage of overlap in the spectrogram. Default 0.8
    Outputs:
    :return: a spectrogram and associated time & frequency vectors
    """

    spectrogram = np.abs(librosa.stft(
        y=waveform, n_fft=nfft,
        hop_length=int(np.floor(nfft * (1 - overlap_pct)))))

    # Axis
    height = spectrogram.shape[0]
    width = spectrogram.shape[1]

    tt = np.linspace(0, len(waveform)/fs, num=width)
    ff = np.linspace(0, fs / 2, num=height)

    p = 10 * np.log10(spectrogram * 10 ** 9)

    return p, tt, ff
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 如果我不在學校做老師了 一,那我就在家做一名全職太太,負責相夫教子,做的好的話,那絕對是再了不起了的了。 二,像鎮(zhèn)...
    暖暖的蘭花兒閱讀 117評論 0 0
  • 一個人有兩個我,一個在黑暗中醒著,一個在光明中睡著。我是烈火,我也是枯枝,一部分的我消耗了另一部分的我?!o伯倫《...
    祈風_ddf7閱讀 81評論 0 0
  • 保定影像之街道(一二三一) 2018年12月25日,星期二。農(nóng)歷戊戌年甲子月辛卯日 (狗年)十一月十九。河北省保定...
    我_4b6f閱讀 54評論 0 0
  • 第一戰(zhàn)名稱“群雄討董:璀璨紛雜的時代” 這一章內(nèi)容很多,從關(guān)鍵點開始吧。這一章講的主要人物有曹操、孫堅、袁紹、公孫...
    懷特海森堡的簡書閱讀 501評論 0 0
  • 人其實是很難做到自洽的,我們總是夾在中間,又想顯得灑脫,先鋒一點,又還是虛榮地接受不了自己會被大多數(shù)人評價為“怪異...
    protect0401閱讀 119評論 0 1

友情鏈接更多精彩內(nèi)容