Многоконусный спектральный анализ со спектром в PythonPython

Программы на Python
Ответить
Anonymous
 Многоконусный спектральный анализ со спектром в Python

Сообщение Anonymous »

Я использую мультиконусный анализ с использованием библиотеки спектра на Python (https://pyspectrum.readthedocs.io/en/la ... stall.html), но не могу полностью понять амплитуду выходных данных.
Вот фрагмент кода для иллюстрации:

Код: Выделить всё

from spectrum import *
N=500
dt=2*10**-3
# Creating a signal with 2 sinus waves.
x = np.linspace(0.0, N*dt, N)
y = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)

# classical FFT
yf = fft.fft(y)
xf = np.linspace(0.0, 1.0/(2.0*dt), N//2)

# The multitapered method
NW=2.5
k=4
[tapers, eigen] = dpss(N, NW, k)
Sk_complex, weights, eigenvalues=pmtm(y, e=eigen, v=tapers, NFFT=500, show=False)

Sk = abs(Sk_complex)
Sk = np.mean(Sk * np.transpose(weights), axis=0)

# ploting both the results
plt.plot(xf,abs(yf[0:N//2])*dt*2)

plt.plot(xf,Sk[0:N//2])
Оба результата схожи и обнаруживают пик частоты при 50 и 80 Гц.
Классическое БПФ также находит хорошую амплитуду (1 и 0,5)
Но метод с несколькими конусами не находит правильную амплитуду. В этом примере это примерно в 5 раз важнее.
Кто-нибудь знает, как правильно отображать результаты?
спасибо

Подробнее здесь: https://stackoverflow.com/questions/628 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»