簡體   English   中英

正確的擺幅fft

[英]correct amplitude of pwelch fft

我有一個簡單的鼻竇信號,但有些雜音。 如果我嘗試一種簡單的FFT算法,則會得到信號(23)和頻率(2)的幅度。 如果我嘗試使用帶有Hanning窗口的Matlab進行安裝,則得到的頻率正確,但是幅度是錯誤的。 如何獲得真實振幅? 這是我正在使用的代碼:

time = 0:0.01:50;
frequency = 2;
amplitude = 23;
y = amplitude * sin (2 * pi * frequency * time);
y= y + 6 * randn(size(time));
y = y - mean(y);
N = length(y);
Fs = 100;
NFFT = 2^nextpow2(N);
M = 4396;
w = hanning(M);
[Pyy,Fy] = pwelch(y, w,[],M,Fs);
plot(Fy,Pyy);

恕我直言,由於頻譜泄漏 ,您不能這樣做。 如果看到正在使用的Hanning窗口,則它是低通濾波器(居中並歸一化時)。 它將降低主頻率上的功率,並將引入其他頻率上的功率,即平滑。 但是,它是在頻域中具有無限持續時間的非周期性信號,無法計算。

figure; 
plot(w);
title(['Hanning window with ', num2str(M), 'points']);

在此處輸入圖片說明

您可以在這里閱讀更多內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM