色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 高斯偽譜

黃文隆2年前8瀏覽0評論

Python是當今世界最為流行的編程語言之一。從web開發、數據分析到人工智能領域都有廣泛應用。其中,高斯偽譜在信號處理領域非常常用,它可以用來分析信號頻譜的特點。下面是一個簡單的Python高斯偽譜程序。

import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 構建樣本數據
N = 500
t = np.linspace(0, 2 * np.pi, N)
x = np.sin(25 * t) + np.cos(50 * t)
# 計算高斯偽譜
f, t, Sxx = signal.spectrogram(x, window='hamming', nperseg=100, noverlap=90, nfft=512,
detrend=False, scaling='spectrum')
# 繪制高斯偽譜圖
plt.pcolormesh(t, f, np.log(Sxx))
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

上述程序首先使用Numpy構建了一個500個采樣值的樣本數據,并且信號中包含兩個頻率分別為25Hz和50Hz的正弦和余弦信號。接下來,使用Scipy中的signal庫計算高斯偽譜Sxx,并且使用Matplotlib將偽譜圖繪制出來。

高斯偽譜Sxx是一個二維矩陣,其中每一列對應一個時間片段,每一行對應一個頻率。在上述程序中,時間片段的長度為100個采樣點,窗口函數選擇的是Hamming窗,選擇這個窗口函數主要是因為它能夠幫助我們更好的去除信號的雜波和干擾。窗口的步長為90,這意味著會存在10個采樣點的重疊,這也是為了避免信號邊緣效應。nfft是快速傅里葉變換的點數,選擇512是為了讓計算結果更加精確。

運行上述程序,我們可以得到一個高斯偽譜圖,橫軸為時間,單位為秒,縱軸為頻率,單位為赫茲。我們可以清晰的看到,樣本數據中存在兩個頻率分別為25Hz和50Hz的正弦和余弦信號。