1

我想以特定的频率切割信号(这样人类听不到它 - 超声波)。我正在使用 CrossExample 对其进行测试。我使用过滤器如下:

filter = new SuperpoweredFilter(SuperpoweredFilter_Resonant_Lowpass, samplerate);

filter->setResonantParameters(floatToFrequency(1.0f - value), 0.2f);
filter->enable(true);

filter->process(stereoBuffer, stereoBuffer, numberOfSamples);

不幸的是,无论频率参数如何,您总是可以听到一点信号(最大音量 + 靠近扬声器的耳朵),这意味着它没有正确切割。

我做错了什么还是sdk的失败?

4

1 回答 1

2

SuperpoweredFilter 实现了一个经典的 IIR 滤波器。这样的滤波器总是有某种频率曲线,它永远不会“超级尖锐”。如果您需要特定频率的完全静音,则在频域中将它们剪切。查看 SDK 中的 SuperpoweredFrequencyDomain 示例,了解如何执行此操作。

于 2017-05-16T01:29:14.340 回答