Я видел похожие вопросы, о которых я спрашивал, но я просто не могу понять, что это правильно. Надеюсь, вы догадываетесь, может помочь, если я неправильно понимаю что-то концептуально или кодовое. В основном я делаю чириканье от 1 кГц до 10 кГц с длительностью 1 с с частотой 48 кГц. Я просто хочу построить частоту spetrum/fft этого chirp с правой амплитудой. Код:fft амплитуда chirp в python
from scipy.fftpack import fft
N = 48000
fs = 48000.0
sine_list_x = []
K = (10000.0 - 1000.0)/(48000.0)
for x in range(N):
sine_list_x.append(sin(2*pi*(1000.0*(x/48000.0)+(K/2.0)*(x**2)/(48000.0))))
xf = np.linspace(0.0, fs/2.0, N/2)
yf = fft(sine_list_x)
yf = yf/sqrt(N)
#yf = yf/N
fig3 = pl.figure()
ax3 = fig3.add_subplot(111)
ax3.plot(xf, abs(yf[0:N/2]))
сюжет из приведенного выше кода я показано здесь
Я знаю, что функция FFT не нормализуется, но я вроде получить противоречивые данные от подобных вопросов, которые говорят так нормализуют путем sqrt (N), N и другие вещи.
То, что я ожидал увидеть на графике, если бы я нормализовался правильно, было амплитудой 1, поскольку это амплитуда чирпа. Это неправильное предположение? Или я просто делаю что-то неправильно в нормализации?