想写个DFT分解信号,但运行后发现对余弦信号变换后振幅明显大于1
import math
import matplotlib.pyplot as plt
import numpy as np
import cmath
#直接计算方法
def DFT_M(n,T):
omega=cmath.exp(complex(0,2math.piT/n))
omega_list=[omega**i for i in range((n-1)*2+1)]
M=np.mat([[omega_list[0+ji] for i in range(n)] for j in range(n)])
return M
num=1000
x=0.1*np.array(range(num))
y=[math.cos(i) for i in x ]
y=np.mat(y)
y=y.T
z=y[:num]
H=np.array((DFT_M(num,1)z).T)
#print(H[0])
plt.plot(x[:num],[i.real/(num*(0.5)) for i in H[0]])
不知道是什么原因导致的
解释出现大于值大于1 的原因