我正在嘗試驗證我撰寫的一個簡單的 IDFT 例程 -
###############################################################
#My IDFT Routines
###############################################################
def simple_idft(data_f):
data_t_r = []
data_t_i = []
for ii in range(0,len(data_f)):
tmp_r=0.00
tmp_i=0.00
scale = 1.00/len(data_f)
for jj in range(0,len(data_f)):
tmp_r = data_f[jj].real*math.cos(2.00*math.pi*ii*jj/len(data_f)) - data_f[jj].imag*math.sin(2.00*math.pi*ii*jj/len(data_f))
tmp_i = data_f[jj].real*math.sin(2.00*math.pi*ii*jj/len(data_f)) data_f[jj].imag*math.cos(2.00*math.pi*ii*jj/len(data_f))
tmp_r *=scale
tmp_i *=scale
data_t_r.append(tmp_r)
data_t_i.append(tmp_i)
return data_t_r, data_t_i
def rms_idft(data_t_r, data_t_i):
rms = []
for ii in range(0,len(data_t_r)):
rms.append(math.sqrt(data_t_r[ii]**2 data_t_i[ii]**2))
return rms
def do_idft(data_t):
data_t_r, data_t_i = simple_idft(data_t)
rms = rms_idft(data_t_r, data_t_i)
return(rms)
針對 numpy IDFT 例程 -
################################################################
#Transform OFDM Data to time domain
################################################################
def IDFT(OFDM_data):
return np.fft.ifft(OFDM_data)
當我運行這些(64 點資料)時,我似乎得到了非常不同的結果 -
OFDM_time = IDFT(OFDM_data)
print ("Number of OFDM samples in time-domain before CP: ", len(OFDM_time))
print(OFDM_time)
plt.plot(OFDM_time)
plt.show()

rms = []
rms = do_idft(OFDM_data)
plt.plot(rms,label='raj')
plt.legend()
plt.show()

你能看出我的演算法有什么錯誤嗎?
uj5u.com熱心網友回復:
好吧,我發現了問題...... Numpy IDFT 例程輸出的繪圖是錯誤的,而應該是 -
################################################################
#Transform OFDM Data to time domain
################################################################
def IDFT(OFDM_data):
return np.fft.ifft(absOFDM_data)
OFDM_time = IDFT(OFDM_data)
print ("Number of OFDM samples in time-domain before CP: ", len(OFDM_time))
print(OFDM_time)
plt.plot(abs(OFDM_time)) **##need to take the absolute val**
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/533782.html
標籤:Python麻木的
下一篇:Tomcat9使用TemurinJDK11.0.13導致webapp在連接到SendGrid郵件服務時生成SSLHandshakeException
