C# 通过零填充或欺骗提高fft分辨率
嗨,伙计们,我在寻找一种方法,以便将频率分辨率提高一倍或四倍,我发现了,并问了如下问题: 我用一个零填充一个数组,两个零之间的一个值将使我的频率分辨率加倍,而我的输出箱将与我的实际代码相差一半,因此,将我的零数量加倍,会使我的频率分辨率增加四倍吗 我认为可以提高频率分辨率的另一种方法是修改Aforge代码,直到昨天我发现这个区域时才知道这一点:C# 通过零填充或欺骗提高fft分辨率,c#,fft,aforge,C#,Fft,Aforge,嗨,伙计们,我在寻找一种方法,以便将频率分辨率提高一倍或四倍,我发现了,并问了如下问题: 我用一个零填充一个数组,两个零之间的一个值将使我的频率分辨率加倍,而我的输出箱将与我的实际代码相差一半,因此,将我的零数量加倍,会使我的频率分辨率增加四倍吗 我认为可以提高频率分辨率的另一种方法是修改Aforge代码,直到昨天我发现这个区域时才知道这一点: private const int minLength = 2; private const int max
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值加倍或四倍,它不会因为位操作或其他操作而给我一个奇怪的结果或错误吗
我没有复制整个代码,因为我认为这不合适,但是如果你需要它,尽管你可以在哪里下载,请告诉我
那么,最可靠和/或最有效的方法是什么
提前感谢。使用更长FFT的零填充数据并不能真正提高频率分辨率,因为它能够分离密集的频率峰值。它只是从相同分辨率的频谱中插入额外的点,以使频率图看起来更平滑,并且可能使一些插值的图点更接近感兴趣的频率 但零填充和高质量插值没有什么不同