【问题标题】:FFT faulty results for high frequencies?高频的 FFT 错误结果?
【发布时间】:2014-08-27 21:05:42
【问题描述】:

我已经对采样频率为 50 KHz 的逆变器的 50Hz 输出电流进行了 1 分钟的采样。我应该将时间划分为 200 毫秒包(主信号的 0.2 秒或 10 个周期)并对每个包进行 FFT。所以这意味着我在每个包中有 10000 个样本(如果不是我零填充或截断,那并没有太大的区别)。我还应该提取高达 9 KHz 的频谱。低频的结果还可以,但我的结果错误(这些值是高频的一半)。你能帮我理解我做错了什么吗?!

我有一个想法,也许像下面的代码这样的事情发生在我的 FFT 上。只需将 SF 更改为 10000,看看结果将如何更改!

in this code if you change the SF(sampling frequency) from 30000 to 10000, 
the results for high frequncies will be distorted and disordered . why ?

SF = 30000; %sampling frequency

% signal 
t = 0:1/SF:1-1/SF; %  sample points
wave=15*sin(2*pi*1*t)+1*sin(2*pi*123*t)+2*sin(2*pi*203*t)+3*sin(2*pi*223*t)+4*sin(2*pi*331*t)+5*sin(2*pi*2812*t)+6*sin(2*pi*5752*t)+7*sin(2*pi*7993*t);


wavefft = fft(wave);

L=floor(size(wave,2)/2)+1; % removing the mirror side of spectrum
MagSpec = abs(wavefft(1:L))/(SF/2);  %% removing the mirror side of the spectrum 
and ranging the domain 

plot(MagSpec);

【问题讨论】:

  • 您是否正在对包进行窗口化? FFT 假定周期性,因此您应该在 FFT 之前应用窗口,否则您将获得额外的高频分量。
  • 可能是您做错了什么,因为您没有使用大小为 n^2 的样本窗口,并且在此过程中您得到了错误的结果。一次尝试 16384 或 8912 个样本...
  • 保罗,我认为窗口化没有问题,我不允许根据我的工作的含义窗口化我的数据!
  • Daniel,如果我使用 8912 或 16384 个样本数量,那么我的包将不再是 200 毫秒,并且更多的 matlab 在我的样本之间进行插值以达到 2 的下一个幂!

标签: matlab signal-processing fft


【解决方案1】:

你看到的是aliasing

您可以通过使用 50kHz 的采样率比较结果看到

以及使用 10kHz 的采样率

频率低于 10kHz (Nyquist frequency) 采样率一半的正弦信号,即 1Hz、123Hz、203Hz、223Hz、331Hz 和 2812Hz 的正弦信号不受影响。 5752Hz 和 7993Hz 分别别名为 4248Hz 和 2007Hz。

您仍然可以对 200 毫秒或 10000 个样本执行 FFT,但采样率在 50kHz 时保持不变。那就是你会:

SF = 50000; %sampling frequency

% signal 
t = 0:1/SF:1-1/SF; %  sample points
wave=15*sin(2*pi*1*t)+1*sin(2*pi*123*t)+2*sin(2*pi*203*t)+3*sin(2*pi*223*t)+4*sin(2*pi*331*t)+5*sin(2*pi*2812*t)+6*sin(2*pi*5752*t)+7*sin(2*pi*7993*t);

用于信号生成,但您可以将生成的波信号分成块进行处理:

for i=1:floor(length(wave)/10000)
  wavefft = fft(wave(1+(i-1)*10000:i*10000))
  % do somthing with the wavefft result
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2011-12-02
    • 2017-09-28
    • 1970-01-01
    相关资源
    最近更新 更多