我正在閱讀我的講座并找到了這個圖: 頻域中的采樣信號
所以,我采樣后得到的連續函式,在頻域中,應該重復原始連續函式的模式。但是在我的 Python 代碼中,我只得到一個正方形,它應該有更多的正方形重復。我是信號的新手(我不是工程師,這是一門附加課程)所以我對我的代碼有點困惑。我錯過了什么嗎?對不起,如果這是愚蠢的或概念誤解。
def g(t):
if t == 0:
return 1
return np.sin(1.5*np.pi*t) / (1.5*np.pi*t)
if __name__ == '__main__':
n = 40
fs = 100 # 0.01
t = np.arange(-n, n, 1.0/fs)
y = [g(i) for i in t]
plt.plot(t, y)
plt.xlim(-5, 5)
plt.show()
# Impulse train
n = 40
T = 1.0/2.5
tn = np.arange(-n, n, T)
# y2 = [1 for i in range(len(tn))]
nT = tn*T
y2 = [g(i) for i in nT]
# Sampled g
plt.stem(nT, y2, 'r', markerfmt='C3o', use_line_collection=True)
plt.xlim(-0.9, 0.9)
plt.show()
fft_s = fft(y2)
plt.plot(fftshift(fftfreq(len(fft_s ))),
fftshift(np.abs(fft_s )))
plt.show()
uj5u.com熱心網友回復:
a Fourier-Transformation(您在圖中具有)和 a FFT(您正在計算)之間存在細微但重要的區別。的FFT是傅里葉變換的離散(和計算上有效的)版本。然而,由于 FFT 是一種在樣本上定義的方法,它從 -Fs/2 到 Fs/2,其中 Fs 是采樣率。我相信您已經將頻率標準化,因此它從 -0.5 變為 0.5。但是,您所描述的效果只能在高于采樣頻率一半的頻率下看到(因此剛好在 FFT 之外)。
您提供的圖片顯示的是采樣對“真實”即連續光譜的影響。通過定義和一些積分求解函式實際計算傅立葉變換,您可能會看到這種效果。
在使用 FFT 時,您可以看到當采樣頻率選擇不正確時會發生什么,即采樣頻率大于信號帶寬的兩倍(這被稱為奈奎斯特定理)。在這種情況下,外部頻譜“移動”得非常接近原始頻譜,以至于它們重疊并導致所需信號不正確。在這種情況下,重建不再可能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/383411.html
標籤:Python 麻木的 matplotlib 信号处理
上一篇:矩陣對角線上的亂數(可能重復)
