0

我在 Android 上使用 Superpowered 库。我正在使用SuperpoweredFrequencyDomain该类进行一些 fft 处理,但我遇到了一个奇怪的问题。首先,我创建一个SuperpoweredFrequencyDomain11fftLogSize的对象。在那之后,如果我创建更多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(),但这也没有让它工作。

无论我在转换中使用极坐标模式还是复杂模式,我都会遇到同样的问题。

我做错了什么还是这是图书馆的限制/错误?我在文档中看不到任何关于它的内容。

4

1 回答 1

0

也许你 fft3->advance() 有一个固定的数字,与 11 的 fft 日志大小有关?

于 2018-04-10T08:32:02.530 回答