matlab中的spectrogram函數對信號做短時傅立葉分析

2021-01-10 墨塵

對於大多數信號而言, 傅立葉分析絕對是非常有用的,因為頻率分析在大多數情況下都非常重要。 那麼為什麼我們還需要研究短時傅立葉變換呢(STFT)?

原因是因為傅立葉分析有一個非常嚴重的缺點, 在將信號從時間域變換到頻率域去的時候,把時間信息丟失了。 當我們在用傅立葉變化去分析一個具體信號的時候, 我們不知道哪個頻率是對應在哪個時間點出現的,在哪個時間點消失的。

如果一個信號的頻率並不隨著時間變化, 那麼我們稱它為平穩信號。 那麼知道哪一個頻率的信號在哪一個時間點出現的就不那麼重要了。 可是如果現實生活中我們研究的大多數信號都是非平穩信號,他們都許多非常短暫變化的特性, 這些特點對於我們信號分析的特點, 傅立葉分析並不適合去做這種分析,而短時傅立葉變換則可以。

如上圖所示,最上邊的是頻率始終不變的平穩信號。而下邊兩個則是頻率隨著時間改變的非平穩信號,它們同樣包含和最上信號相同頻率的四個成分。做FFT後,我們發現這三個時域上有巨大差異的信號,頻譜(幅值譜)卻非常一致。尤其是下邊兩個非平穩信號,我們從頻譜上無法區分它們,因為它們包含的四個頻率的信號的成分確實是一樣的,只是出現的先後順序不同。

可見,傅立葉變換處理非平穩信號有天生缺陷。它只能獲取一段信號總體上包含哪些頻率的成分,但是對各成分出現的時刻並無所知。因此時域相差很大的兩個信號,可能頻譜圖一樣。

然而平穩信號大多是人為製造出來的,自然界的大量信號幾乎都是非平穩的,所以在比如生物醫學信號分析等領域的論文中,基本看不到單純傅立葉變換這樣naive的方法。

短時傅立葉變換(Short-time Fourier Transform,STFT)

一個簡單可行的方法就是——加窗。 「把整個時域過程分解成無數個等長的小過程,每個小過程近似平穩,再傅立葉變換,就知道在哪個時間點上出現了什麼頻率了。」這就是短時傅立葉變換。

matlab中的spectrogram函數來做短時傅立葉變換,下面是其參數的解釋。

語法:

[S,F,T,P]=spectrogram(x,window,noverlap,nfft,fs)

[S,F,T,P]=spectrogram(x,window,noverlap,F,fs)

說明:當使用時無輸出參數,會自動繪製頻譜圖;有輸出參數,則會返回輸入信號的短時傅立葉變換。當然也可以從函數的返回值S,F,T,P繪製頻譜圖,具體參見例子。

參數:

x---輸入信號的向量。默認情況下,即沒有後續輸入參數,x將被分成8段分別做變換處理,

如果x不能被平分成8段,則會做截斷處理。默認情況下,其他參數的默認值為

window---窗函數,默認為nfft長度的海明窗Hamming

noverlap---每一段的重疊樣本數,默認值是在各段之間產生50%的重疊

nfft---做FFT變換的長度,默認為256和大於每段長度的最小2次冪之間的最大值。

fs---採樣頻率,默認值歸一化頻率 .

Window---窗函數,如果window為一個整數,x將被分成window段,每段使用Hamming窗函數加窗。

如果window是一個向量,x將被分成length(window)段,每一段使用window向量指定的

窗函數加窗。所以如果想獲取specgram函數的功能,只需指定一個256長度的Hann窗.

相關焦點

  • 使用 matlab 進行傅立葉分析和濾波
    >快速傅立葉matlab中的快速傅立葉有兩種調用形式:y=fft(x)。下例 是將振幅為1的5Hz正弦波和振幅為0.5的10Hz正弦波相加之後進行傅立葉分析。其他說明:這裡僅以低通濾波器為例,其他巴特沃斯濾波器如高通、帶通、帶阻調用方式類似,只是函數butter的參數略有不同,請參看matlab關於butter函數的介紹。(在matlab中執行help butter)其他濾波器,如橢圓濾波器等,使用方式類似,只是函數名稱不同。
  • matlab下實現FFT信號分析
    對於信號分析,我們需要掌握一個定理:在進行模擬/數位訊號的轉換過程中,當採樣頻率 fs.max大於信號中最高頻率 fmax 的 2 倍時(fs.max > 2fmax),採樣之後的數位訊號完整地保留了原始信號中的信息,一般實際應用中保證採樣頻率為信號最高頻率的2.56~4倍;採樣定理又稱奈奎斯特定理或香農採樣定理。
  • 用matlab對信號進行傅立葉變換
    傅氏變換分析是信號分析中很重要的方法,藉助matlab可以很方便的對各類信號進行傅氏頻域分析。
  • 如何用matlab對信號進行傅立葉變換
    傅氏變換分析是信號分析中很重要的方法,藉助matlab可以很方便的對各類信號進行傅氏頻域分析。
  • 快速傅立葉變換FFT在MATLAB中的實現
    首先,為什麼要進行傅立葉變換?將時域的信號變換到頻域的正弦信號,正弦比原信號更簡單,且正弦函數很早就被充分地研究,處理正弦信號比處理原信號更簡單。正弦信號的頻率保持性:輸入為正弦信號,輸出仍是正弦信號,幅度和相位可能發生變化,但頻率與原信號保持一致,只有正弦信號才擁有這樣的性質。
  • 在MATLAB中如何實現快速傅立葉變換
    將時域的信號變換到頻域的正弦信號,正弦比原信號更簡單,且正弦函數很早就被充分地研究,處理正弦信號比處理原信號更簡單。正弦信號的頻率保持性:輸入為正弦信號,輸出仍是正弦信號,幅度和相位可能發生變化,但頻率與原信號保持一致,只有正弦信號才擁有這樣的性質。
  • 用matlab對信號進行傅立葉變換的入門實例
    來源:博客園-走豈來的博客傅氏變換分析是信號分析中很重要的方法,藉助matlab可以很方便的對各類信號進行傅氏頻域分析
  • Matlab與傅立葉變換
    今天,二狗給大家講一講Matlab實現傅立葉變換。大家都知道,信號分為兩種,確定信號和不確定信號。在確定信號中,有兩個非常重要的類別,時域分析和頻域分析。而將兩者充分結合的,就是我們今天要講的傅立葉變換。絕大多數工科狗在大一或者大二的時候,都或多或少接觸過傅立葉變換。二狗也不例外。當初二狗學《複變函數與積分變換》時,差點被搞成死狗,就是因為傅立葉變換。
  • 什麼是傅立葉變換,如何用MATLAB實現?
    第三場分享的主題是: 傅立葉變換的理解與MATLAB實現直播日期:2021年1月21日(周四)晚18點沒有傅立葉變換,就無法用數學的方法去處理現實世界中的各種各樣的信號。如今幾乎所有信息最終都會數位化,就會用到傅立葉變換及其變種,藉助傅立葉變換才能將信號識別為具體的成分,完成數位化。
  • librosa-madmom:音頻和音樂分析
    安裝pip install librosa分析步驟-專業名詞:- sr:採樣率、hop_length:幀移、overlapping:連續幀之間的重疊部分、n_fft:窗口大小、spectrum:頻譜、spectrogram:頻譜圖或叫做語譜圖、amplitude:振幅、mono:單聲道、stereo:立體聲讀取音頻# 加載音頻data,sample_rate
  • 傅立葉變換
    傅立葉級數實際實際是對周期函數和半周期函數的按基地函數去1、cosx、cos2x、...cosnx、sinx、sin2x、sinnx的展開式。如果定義在(-∞,∞)區間的非周期函數還能進行傅立葉展開嗎?傅立葉計算擴展到連續變換的情況後就是傅立葉積分。已知周期為2π的函數用傅立葉展開式形式如下:
  • MATLAB中的二維傅立葉變換
    那麼,如果我們輸入這個美食(這個美食就是我們的「時域信號」),通過傅立葉變換,就可以得到這份美食的配方(這個配方就是我們的「頻域信號」)如果我們輸入的是這個美食的配方,就可以通過傅立葉反變換得到這份美食
  • 使用Matlab對信號進行頻域分析的方法
    本文引用地址:http://www.eepw.com.cn/article/201808/391336.htm  本文討論使用Matlab對信號進行頻域分析的方法。  說到頻域,不可避免的會提到傅立葉變換,傅立葉變換提供了一個將信號從時域轉變到頻域的方法。之所以要有信號的頻域分析,是因為很多信號在時域不明顯的特徵可以在頻域下得到很好的展現,可以更加容易的進行分析和處理。
  • 第三章 離散傅立葉變換
    本章的主題就是離散傅立葉變換。只講實用的,不講虛的。工程化的講解有助於同學們消化理論知識。
  • 基於MSP430F1611單片機的音頻信號分析
    基於MSP430F1611單片機的音頻信號分析 李 俠,周立文,李 發表於 2011-05-05 09:40:49       本系統將採用集成有μC/OS-Ⅱ作業系統的單片機,利用快速傅立葉變換並加窗函數的方法來實現對音頻信號各項參數的分析
  • 理解傅立葉級數——分析公式
    這一篇中重點關注傅立葉級數兩個式子中的一個,希望看完本篇,各位都能對傅立葉級數的分析原理有一個比較完整的認識。^_^如果沒有看過之前的文章,建議看一下前兩篇的內容(《我眼中的最美公式》和《關於圓周運動的一點討論》),將對理解本篇有很大的幫助。
  • 【基礎教程】Matlab實現傅立葉變換
    傅立葉變換傅立葉變換是一種常見的分析方法,傅立葉變換將滿足一定條件的函數表示為一些函數的加權和(或者積分)。
  • 非周期信號的傅立葉變換
    前面已討論了周期非正弦信號的傅立葉級數展開,下面來分析非周期信號的傅立葉變換。當周期信號的重複周期T無限增大時,周期信號就轉化為非周期信號(單個不重複信號),如對於周期矩形脈衝波,當周期T趨於無窮大時,周期信號就轉化為單個非周期脈衝。從例6-1-2的結果可知,此時信號頻譜間隔趨於零,即譜線從離散轉向連續,而其振幅值則趨於零,信號中各分量都變為無窮小。
  • 非正弦周期信號的傅立葉級數分解
    前面章節中已對直流電路與正弦交流電路的分析計算方法作了詳細介紹,當電路的激勵源為直流或正弦交流電源時,可用所述方法對電路進行分析計算。
  • 基於時頻分析提取股票日內交易數據的量價特徵
    在信號的局部或暫態表徵描述中具有非同一般的優勢。時頻分析根據核函數類型,有非線性變換與線性變換,線性變換描繪信號的時頻變換特性,藉助於線性函數,線性時頻變換最大的優點是不存在交叉項,這類方法主要包括短時傅立葉變換、小波變換、S變換等。