python归一化函数_用numpy实现FFT归一化
剛開始使用numpy包,并開始用一個簡單的任務(wù)來計算輸入信號的FFT。代碼如下:import numpy as np
import matplotlib.pyplot as plt
#Some constants
L = 128
p = 2
X = 20
x = np.arange(-X/2,X/2,X/L)
fft_x = np.linspace(0,128,128, True)
fwhl = 1
fwhl_y = (2/fwhl) \
*(np.log([2])/np.pi)**0.5*np.e**(-(4*np.log([2]) \
*x**2)/fwhl**2)
fft_fwhl = np.fft.fft(fwhl_y, norm='ortho')
ampl_fft_fwhl = np.abs(fft_fwhl)
plt.bar(fft_x, ampl_fft_fwhl, width=.7, color='b')
plt.show()
因為我處理的是一個指數(shù)函數(shù),在它之前用π除以某個常數(shù),所以我希望在Fourier空間中得到指數(shù)函數(shù),其中FFT的常數(shù)部分總是等于1(零頻率)。
但是我使用numpy得到的組件的值更大(大約是1,13)。這里我有一個振幅譜,它被標準化為1/(計數(shù)的個數(shù))**0.5(這是我在numpy文檔中讀到的)。我不明白怎么了。。。有人能幫我嗎?
謝謝!
[編輯]問題似乎已經(jīng)解決了,要得到傅里葉積分和FFT的相同結(jié)果,只需要將FFT乘以步長(在我的例子中是X/L)。至于作為numpy.fft.fft(…,norm=”ortho“)選項的規(guī)格化,它只用于保存變換的比例,否則需要將逆fft的結(jié)果除以采樣數(shù)。謝謝大家的幫助!
總結(jié)
以上是生活随笔為你收集整理的python归一化函数_用numpy实现FFT归一化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器usb驱动安装系统安装失败怎么办,
- 下一篇: Confluence 实现公司wiki