2016-07-07 10 views
0

Я хочу найти связь между осью Y моих данных и вертикальной осью моей БПФ (амплитуда). Для этого я проверяю, как изменяется амплитуда моего БПФ, когда я изменяю ось y своих данных. Например, я построил sin (t) от 0 до 2 * pi и взял БПФ с использованием пакета FFT от Numpy и получил частоту приблизительно 1/(2 * pi). Затем я добавил 1 ко всем моим значениям y только для того, чтобы сдвинуть мою синусоидальную функцию на 1 единицу повсюду; однако, когда я взял БПФ, у меня было что-то, что не имело смысла. Почему FFT полностью отличается, когда я просто переключаю свою синусоидальную функцию вверх? Любая помощь будет принята с благодарностью. Заранее спасибо.Проблема с множественным выпуском FFT при перемещении данных по вертикальной оси

import math 
import numpy as np 
import numpy.fft as fft 
import matplotlib.pyplot as plt 

t = np.linspace(0, 2*math.pi, 10) 
y1 = np.sin(t) 
y2 = np.sin(t) + 1 
plt.plot(t, y2) # y1 can be used instead 
plt.xlabel('time') 
plt.ylabel('height') 
plt.show() 

fft_power = fft.fft(y2) # y1 can be used instead 
rfft_power = fft.rfft(y2) # y1 can be used instead 

sample_spacing = 0.6981317 

frequency = fft.fftfreq(len(fft_power), sample_spacing) 
real_frequency = fft.rfftfreq(len(fft_power), sample_spacing) 

plt.plot(real_frequency.real, rfft_power.real) 
plt.xlabel('frequency') 
plt.ylabel('amplitude') 
plt.show() 

initial data FFT shifted data FFT

+1

Не ответ, но почему бы не использовать 'y1 = np.sin (t)' и 'y2 = np.sin (t) + 1'? – mgilson

+0

Возьмите этот ответ с солью, так как я не работал с трансформаторами Фурье какое-то время, но я считаю, что вы видите эффекты сглаживания. Если вы используете мое предложение для создания 'y1' и' y2', а затем сверните количество точек (скажем, до 1000), вы получите гораздо более похожий результат. – mgilson

+0

Ты совершенно прав. Я должен был изменить это и просто сделал. Благодаря! –

ответ

0

Попробуйте, это будет убедить вас, что все работает хорошо:

t = np.linspace(0, 2*math.pi, 10000) 
y2 = np.sin(200*t) + 1 

1-добавляет очень сильный пик при 0 частоте. Но и грешный пик.