1. 程式人生 > >【機器學習筆記32】短時傅立葉變換

【機器學習筆記32】短時傅立葉變換

傅立葉變換的侷限性

1 需要利用訊號的全部時域資訊;
2 沒有反應頻率隨時間變換的訊號情況;

短時傅立葉變換

1964年Gabor提出了短時傅立葉變換(有叫Gabor變換),即在傳統的傅立葉變換的基礎上加了一個時間窗。如下:

Sw(x,t)=x(τ)m(τt)ejωτdτS_w(x, t) = \int x(\tau) m(\tau-t) e^{-j\omega \tau} d\tau

python 程式
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as
plt import pandas as pd import numpy as np import math if __name__ == '__main__': df = pd.read_csv('./data/test.csv', sep=',') data = df['std_value'].astype(float) #在時序51、52、52加入毛刺型號,該視窗傅立葉變換增加了高頻訊號 data[51] = 10 data[52] = 11 data[53] = 15 # 設定對話方塊大小 fig = plt.gcf(
) fig.set_size_inches(12, 7) for j in range(0, 5): plt.subplot(int('23' + str(j + 1))) plt.plot(np.fft.fft(data[20 * j :20*(j + 1)])) plt.title(' time windows' + str(20*j) + '-' + str(20*(j + 1))) plt.show()

在這裡插入圖片描述