一、什麼是STFT
短時傅里葉變換(Short-Time Fourier Transform,STFT)是一種在頻譜分析中常用的算法,它的基本思想是將長時序信號通過窗函數分成多個較短的時間段,對每個時間段內的信號進行傅里葉變換得到頻譜圖,可以觀察信號在不同時間段內頻率成分的變化。STFT最早在語音信號的處理中被廣泛使用,現在已經在音樂信號分析、圖像處理、語音識別等多個領域得到了應用。
二、Matlab STFT函數
Matlab中提供了多個STFT相關函數,如stft、spectrogram等,其中stft是最基本的函數,可以對信號進行STFT分析並繪製譜圖。以下代碼是一個基本的stft調用示例。
fs=1000;
t=0:1/fs:5;
x=cos(2*pi*100*t)+0.5*cos(2*pi*200*t)+0.2*cos(2*pi*300*t);
w=hamming(128);
noverlap=numel(w)-1;
nfft=256;
[S,F,T]=stft(x,fs,'Window',w,'OverlapLength',noverlap,'FFTLength',nfft);
surf(T,F,abs(S))
其中,fs為採樣頻率,t為時域數組,x為信號數組,w為窗函數,noverlap為重疊長度,nfft為傅里葉變換長度,S、F、T是分別代表STFT譜、頻率、時間的輸出。
三、stft函數的參數
stft函數已經被廣泛使用,它提供了大量的參數供用戶選擇和設置,這些參數將直接影響到函數的執行效果和分析結果。以下列舉了一部分stft函數的常用參數。
1、窗函數
窗函數(Window)是一個用於把原始信號分割成多個片段的函數,窗函數之間的選擇能夠影響到整個STFT分析的結果和性能。在Matlab中,STFT函數提供了多種窗函數可供選擇,如矩形窗(rectwin)、漢明窗(hamming)、黑曼窗(blackman)等。
% 使用矩形窗
w=rectwin(128);
% 使用漢明窗
w=hamming(128);
% 使用黑曼窗
w=blackman(128);
2、重疊長度
重疊長度(OverlapLength)是指相鄰兩個窗函數之間交疊的長度,相當於窗函數的移動距離。在實際應用中,通常採取50%的重疊長度,能夠較好地平滑分段信號,在Matlab中可以這樣設置。
w=hamming(128);
noverlap=numel(w)/2;
3、FFT長度
FFT長度(FFTLength)是指FFT計算中所採用的數據點數目,也稱為零填充長度,零填充是為了避免頻譜圖中出現泄漏(leakage)現象。一般情況下,FFT長度應該盡量選取小的值以節省計算時間,但是有時候由於分析需求,需要選取較大的值對於細節進行分析。
四、STFT譜圖分析
STFT譜圖是一種可以顯示信號隨時間變化的頻譜圖,直觀地表現信號在不同時間段內的頻率成分。在Matlab中,可以使用surf函數將STFT譜圖繪製成三維圖形,同時也可以使用imagesc、pcolor等函數繪製二維圖形。
下面的代碼展示了繪製譜圖的基本方法,其中S、F、T是分別代表STFT譜、頻率、時間的輸出,surf函數將譜圖繪製成3D形式展示。
fs=1000;
t=0:1/fs:5;
x=cos(2*pi*100*t)+0.5*cos(2*pi*200*t)+0.2*cos(2*pi*300*t);
w=hamming(128);
noverlap=numel(w)-1;
nfft=256;
[S,F,T]=stft(x,fs,'Window',w,'OverlapLength',noverlap,'FFTLength',nfft);
surf(T,F,abs(S))
繪製出來的STFT譜圖如下圖所示。
五、STFT譜圖應用
由於STFT譜圖可以反映信號在不同時刻的頻域信息,因此在多個領域得到了廣泛的應用。
1、音頻信號處理
在音頻信號處理領域,STFT譜圖被廣泛應用於音樂分析、語音識別、聲音合成等方面。例如,通過對音樂信號進行STFT分析,可以提取出某個時間段內的主旋律、和聲、節奏等音樂元素,可以做到自動和弦識別、樂器分類、音符對齊等。
2、圖像處理
在圖像處理領域,STFT譜圖被廣泛應用於紋理分析、邊緣檢測、特徵提取等方面。由於圖像在空間和頻率兩個維度上具有不同的特性,因此採用STFT譜圖可以通過頻域信息反映出圖像的紋理、條紋等信息。
3、語音識別
在語音識別領域,STFT譜圖可以用於提取音頻信號的特徵,進而用於語音識別。例如,通過對語音STFT分析,可以提取出某個時間段內的共振峰、形狀等信息,進而提取出語音信號的語音特徵。
六、總結
本文對STFT的概念、Matlab的STFT函數以及譜圖繪製和應用進行了較為詳細的闡述,希望可以對讀者有所啟示。在實際應用中,需要根據問題的需求採用合適的參數和窗函數,根據STFT譜圖的特點進行分析和處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/284938.html