【发布时间】:2021-01-09 02:22:30
【问题描述】:
我有一些数据,我使用 MATLAB 绘制了功率谱。但我努力将相同的指令翻译成 Python 并获得确切的情节。在 Python 中获得的绘图形状似乎很好,只是 y 值由于某种原因是正的!谁能告诉我哪里出错了?下面,我附上了MATLAB和python中的说明以及获得的两个图。
MATLAB:
N=length(signal);
xdft = fft(signal);
xdft = xdft(1:N/2+1);
psdx=(1/(fs*N))*abs(xdft).^2;
psdx(2:end-1) = 2*psdx(2:end-1);
freq = 0:fs/N:fs/2;
plot(freq, 10*log10(psdx))
Python:
N = len(signal)
psdx = pow(np.fft.rfft(signal),2)
psdx[1:len(psdx)-1] = 2*psdx[1:len(psdx)-1]
f = np.arrange(0, (fs/2) + (1/N), fs/N)
plt.plot(f, (10*np.log10(psdx)))
plt.show()
可以使用以下方式找到信号:https://gofile.io/d/tlJm7F/edit 请注意,您需要先加载/读取文件
【问题讨论】:
-
介意分享一个信号阵列的例子吗?
-
如果你知道了请告诉我