Вычисление PSD абсолютной синусоидальной волны в Python - PullRequest
0 голосов
/ 17 июня 2020

Может ли кто-нибудь дать мне представление о том, как сохранить частоту синусоидальной волны при ее преобразовании в абсолютный сигнал, то есть в униполярный сигнал.

T = 1
f = 500
fs = 5000
dt = 1 / fs
t = np.linspace(0, T, T / dt)
x = 5 * np.cos(2 * np.pi * f * t)
x1 = np.abs(5 * np.cos(2 * np.pi * f * t))
ftx = fft(x)
fr = fftfreq(len(x), dt)
ftx1 = fft(x1)
fr1 = fftfreq(len(x1), dt)
fig = plt.subplot(411)
fig.plot(t, x)
fig.set_xlim(0.38, 0.42)
fig = plt.subplot(412)
fig.plot(fr, np.absolute(ftx) / fs)

fig = plt.subplot(413)
fig.plot(t, x1)
fig.set_xlim(0.38, 0.42)
fig = plt.subplot(414)
fig.plot(fr1, np.absolute(ftx1) / fs)
plt.show()

Временная область и psd здесь синусоидальная волна - это результат вышеприведенного кода.

Мне нужно понять, можно ли сохранить исходную частоту (500 Гц) и почему я получаю гармоники и ни одна из них не находится на частоте 500 Гц? Не испортил ли я математику, стоящую за всем этим, пытаясь получить абсолютный сигнал, потому что абсолютный сигнал теперь действует так, как будто это многотональный сигнал, а не однотональный сигнал?

...