使用周期图进行噪声分析。不同分辨率的问题

信息处理 fft 噪音 功率谱密度 带宽
2022-02-09 07:22:22

我不明白我的模拟中发生了什么。我想在两种估计频带功率的方法之间进行权衡。我想检测杂散频率。

第一种方法:

我构建了一个噪声向量并计算了没有窗口的周期图。例如,对于 1048576 的向量长度和 1024 的 FFT 长度,我将噪声方差降低了 1 倍 1024.

第二种方法:

我构建了一个噪声向量并计算了没有窗口的周期图。例如,对于 1048576 的向量长度和 262144 的 FFT 长度,我将噪声方差降低了一个因子 16.

在这两种方法之间,我可以使用第一种方法执行较低的峰值检测(等于 bin 中的噪声功率)。但如果我的巅峰有很大的力量;26dB比我的噪音大,许多 FFT 箱会像第二个一样受到影响。但第二种方法的频率分离更好。

我已经尝试了两种方法的测试组合。添加 16 个连续的 bin 以重建第一种方法的等效周期图。

对我来说,我增加了噪声方差,因为我总结了 16 个“正常”(χ2事实上)法律,但与第一种方法的结果相比,我增加了我的虚假比较。

事实上,我已经减少了噪声方差。它与第一种方法相同:1024.

我的第一反应是认为我将法律视为独立是错误的,但我该如何验证呢?

有人可以帮助我提供任何文件参考或演示吗?

下面是 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')
0个回答
没有发现任何回复~