短時傅利葉變換原理解

2021-07-24 09:30:04 字數 1288 閱讀 1477

前一段時間專案需要學習了短時傅利葉變換,今天我來總結一下現階段對短時傅利葉變換的理解。

短時傅利葉變換是最常用的一種時頻分析方法,它通過時間窗內的一段訊號來表示某一時刻的訊號特徵。在短時傅利葉變換過程中,窗的長度決定頻譜圖的時間解析度和頻率解析度,窗長越長,擷取的訊號越長,訊號越長,傅利葉變換後頻率解析度越高,時間解析度越差;相反,窗長越短,擷取的訊號就越短,頻率解析度越差,時間解析度越好,也就是說短時傅利葉變換中,時間解析度和頻率解析度之間不能兼得,應該根據具體需求進行取捨。

簡單來說,短時傅利葉變換就是先把乙個函式和窗函式進行相乘,然後再進行一維的傅利葉變換。並通過窗函式的滑動得到一系列的福利也變化結果,將這些結果排開便得到乙個二維的表象。

短時傅利葉變換的公式為

其中z(t)為源訊號,g(t )為窗函式。

為方便計算機處理,一般把訊號進行離散化處理,具體公式為

短時傅利葉變換的程式設計思路如下:

1.第一步,確定相關引數。主要包括原訊號,窗函式,窗長,重疊點數,取樣頻率,傅利葉點數等。

其中傅利葉點數主要用於在傅利葉變換過程中使用,當訊號長度小於傅利葉點數時,系統會自動進行補零,然後再進行快速傅利葉變換。

2.第二步,計算把源訊號和窗函式轉換為列向量。計算訊號長度,並根據訊號長度nx、窗長winlen以及重疊點數noverlap計算出窗滑動的次數n,也就是指後面把源訊號分成列時訊號的列數。

n=fix((nx-noverlap)/(winlen-noverlap))

3.把每次窗函式滑動所選取的訊號表示為列,確定每一列的值,得到乙個列數為n,行數為winlen的矩陣fig。

colindex = (0:(t-1))*(winlen-noverlap);

rowindex = (1:winlen)';

xin = zeros(frame_length,t);

xin(:) = x(rowindex(:,ones(1,t))+colindex(ones(winlen,1),:));

4.把轉換為列向量的窗函式擴充套件為n列的矩陣w,並對矩陣fig和w進行點乘,並對點乘的結果進行快速傅利葉變換,得到時頻矩陣。

xin = win(:,ones(1,t)).*xin;

5.根據時頻矩陣,輸出頻譜圖。

以上就是我對短時傅利葉變換實現過程的理解,後面如果有新的理解,我會繼續修改進行完善!

短時傅利葉變換

短時傅利葉變換 stft,short time fourier transform,或 short term fourier transform 是和傅利葉變換相關的一種數學變換,用以確定時變訊號其區域性區域正弦波的頻率與相位。它的思想是 選擇乙個時頻區域性化的窗函式,假定分析窗函式g t 在乙個短...

短時傅利葉變換

時間解析度和頻率解析度 時間解析度 訊號頻率隨時間變化,要將這種頻率變化分辨出來。自然,窗越短越好,以使得在窗內訊號頻率近似不變。例如,100hz的訊號和100.1hz的訊號疊加,一兩個週期恐怕看不出來,必須要足夠多的週期才能區別開。短時傅利葉變換可以看做移位訊號x n m 通過窗w m 的傅利葉變...

短時傅利葉變換

首先用一張直觀的圖來看一下什麼是傅利葉變換 圖1 平穩訊號的傅利葉變換 做完fft 快速傅利葉變換 後,可以在頻譜上看到清晰的四條線,訊號包含四個頻率成分。傅利葉變換是一種分析訊號的方法,它可分析訊號的成分,也可用這些成分合成訊號。在分析訊號時,主要應用於處理平穩訊號,通過傅利葉變換可以獲取一段訊號...