1

嗨,伙计们,我正在寻找一种方法来将我的频率分辨率提高一倍或四倍,我发现了这个问题并问了这样的问题:

“我假设零填充一个数组(两个零之间的一个值)会使我的频率分辨率加倍(我的输出箱将是我实际代码的一半),所以,将我的零数量加倍,我的频率分辨率会增加四倍吗? "

我认为可以提高频率分辨率的另一种方法是修改 Aforge 代码,直到昨天我发现这个区域时才知道:

    private const int       minLength   = 2;
    private const int       maxLength   = 16384;
    private const int       minBits     = 1;
    private const int       maxBits     = 14;
    private static int[][]  reversedBits = new int[maxBits][];
    private static Complex[,][] complexRotation = new Complex[maxBits, 2][];

如果我将 maxLength 和 maxBits 值加倍或四倍,由于位操作或它所做的任何事情,它不会给我一个奇怪的结果或错误吗?

我没有复制整个代码,因为你认为它不合适,但如果你需要它,请告诉我,虽然这里是你可以下载它的网站。

那么,最可靠和/或最有效的方法是什么?

提前致谢。

4

1 回答 1

0

使用较长 FFT 的零填充数据并不能真正提高频率分辨率(如分离紧密间隔的频率峰值的能力)。它只是从相同的分辨率频谱中插入额外的点,以使频率图看起来更平滑,并且可能使一些内插的绘图点更接近感兴趣的频率。

但是零填充与高质量插值没有什么不同。

于 2013-08-02T05:02:58.417 回答