使用不同的fftLogSize创建SuperpoweredFrequencyDomain

时间:2018-03-29 10:31:40

标签: android superpowered

我在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);

然后fft1fft2正常工作。 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(),但这并没有让它发挥作用。

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

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

1 个答案:

答案 0 :(得分:0)

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