我不明白我的模拟中发生了什么。我想在两种估计频带功率的方法之间进行权衡。我想检测杂散频率。
第一种方法:
我构建了一个噪声向量并计算了没有窗口的周期图。例如,对于 1048576 的向量长度和 1024 的 FFT 长度,我将噪声方差降低了 1 倍 .
第二种方法:
我构建了一个噪声向量并计算了没有窗口的周期图。例如,对于 1048576 的向量长度和 262144 的 FFT 长度,我将噪声方差降低了一个因子 .
在这两种方法之间,我可以使用第一种方法执行较低的峰值检测(等于 bin 中的噪声功率)。但如果我的巅峰有很大的力量;比我的噪音大,许多 FFT 箱会像第二个一样受到影响。但第二种方法的频率分离更好。
我已经尝试了两种方法的测试组合。添加 16 个连续的 bin 以重建第一种方法的等效周期图。
对我来说,我增加了噪声方差,因为我总结了 16 个“正常”(事实上)法律,但与第一种方法的结果相比,我增加了我的虚假比较。
事实上,我已经减少了噪声方差。它与第一种方法相同:.
我的第一反应是认为我将法律视为独立是错误的,但我该如何验证呢?
有人可以帮助我提供任何文件参考或演示吗?
下面是 Scilab 中的一个示例:
nfft = 1024;
nbPts = 1024*nfft;
nfft2 = 16*nfft;
noise = (grand(1, nbPts, "nor", 0, 1) +%i * grand(1, nbPts, "nor", 0, 1))/sqrt(2);
myfft = zeros(1,nfft);
myfft2 = zeros(1,nfft2);
// perform 1st periodogram
for cnt=1:nbPts/nfft
myfft = myfft + abs(fft(noise((cnt-1)*nfft+1:cnt*nfft))/nfft).^2;
end
myfft = 10*log10(myfft/(nbPts/nfft));
// perform 2nd periodogram
for cnt=1:nbPts/nfft2
myfft2 = myfft2 + abs(fft(noise((cnt-1)*nfft2+1:cnt*nfft2))/nfft2).^2;
end
// sum it
fftsum = zeros(1,nfft);
for cnt=1:nfft,
fftsum(cnt) = 10*log10(sum(myfft2((cnt-1)*nfft2/nfft+1:cnt*nfft2/nfft))/(nbPts/nfft2));
end
// visualization
figure(0)
set(gca(),"auto_clear","on")
plot(1:nfft,myfft)
set(gca(),"auto_clear","off")
plot(1:nfft,fftsum,'r')