我在Android上使用Superpowered库。我使用SuperpoweredFrequencyDomain
类进行一些fft处理,但我遇到了一个奇怪的问题。首先,我创建一个SuperpoweredFrequencyDomain
,其中fftLogSize
为11.在此之后,如果我使用相同的SuperpoweredFrequencyDomain
创建更多fftLogSize
个对象,那么一切正常。但是,如果我使用不同的fftLogSize
创建一个,那么它似乎无法正常工作(即使直接转换为频率,然后直接回到时域也无法正常工作)。
例如,如果我这样做:
SuperpoweredFrequencyDomain fft1 = new SuperpoweredFrequencyDomain(11,4);
SuperpoweredFrequencyDomain fft2 = new SuperpoweredFrequencyDomain(11,4);
SuperpoweredFrequencyDomain fft3 = new SuperpoweredFrequencyDomain(13,4);
然后fft1
和fft2
正常工作。 fft3
不起作用 - 在转换为频率后,信号与原始信号不相似(有时您可以听到原始信号的乱码,有时它只是噪音)。
如果我一次只有一个对象,那也是如此:
SuperpoweredFrequencyDomain fft1 = new SuperpoweredFrequencyDomain(11,4);
delete fft1;
SuperpoweredFrequencyDomain fft2 = new SuperpoweredFrequencyDomain(11,4);
delete fft2;
SuperpoweredFrequencyDomain fft3 = new SuperpoweredFrequencyDomain(13,4);
此时fft3
无法正常工作。我也试过了fft3->reset()
,但这并没有让它发挥作用。
无论我在转换中使用极性模式还是复杂模式,我都会遇到同样的问题。
我做错了什么或这是图书馆的限制/错误?我无法在文档中看到任何关于它的内容。
答案 0 :(得分:0)
也许你fft3-> advance()有一个固定数字,与fft日志大小相关11?