У меня есть некоторые данные, и я использовал 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. что вам нужно сначала загрузить/прочитать файл