大家好我正在寻找一种方法,以便将频率分辨率提高一倍或四倍,我发现THIS QUESTION并问了类似这样的事情:
“我认为零填充数组(两个零之间的一个值)会使我的频率分辨率加倍(我的输出分档将与实际代码相差一半),因此,将零的数量加倍,会使我的频率分辨率翻两番吗?“
我认为我可以提高频率分辨率的另一种方法是修改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值加倍或四倍,它会不会因为位操作或其他操作而给我一个奇怪的结果或错误?
我没有复制整个代码,因为y认为这是不合适的,但是如果你需要它,请告诉我,尽管here is the website你可以下载它。
那么,最可靠和/或最有效的方式是什么?
提前致谢。
答案 0 :(得分:0)
使用较长FFT的零填充数据并不能真正提高频率分辨率(如分隔紧密间隔的频率峰值的能力)。它只是插入来自相同分辨率光谱的附加点,以允许频率图看起来更平滑,并且可能使一些插值绘图点更接近感兴趣的频率。
但零填充与高质量插值没有区别。