在iOS上渲染极高频率的声音

4
我正在尝试使用AudioUnit为iPhone项目渲染一系列高频声音(8-20KHz左右),但是12KHz以上的所有内容都会严重失真和/或完全错误的音调。我已经将波形呈现为图像,并意识到,由于iPhone的硬件采样率为44,100Hz,混叠是罪魁祸首(我的22KHz正弦波变成了更像100Hz正弦波)。
有什么解决方法吗?我在商店中看到了许多“狗哨”应用程序,但我猜它们不太可能是“真的”。更改AudioStreamBasicDescription的采样率似乎并没有太大帮助,但也许我做错了什么。
1个回答

2

在44.1KHz的采样率下,无法完美呈现22KHz的正弦波,且最大采样率无法超过此值。我认为你或许可以使用48KHz,我模糊地记得这是受支持的采样率。

另一方面,在44.1KHz的采样率下,绝对可以做到22.05 KHz的方波,该方波将具有一些极高的谐波频率。也许这就是狗哨应用程序的工作方式?

如果绝对频率控制不是关键,则通过将频率四舍五入为采样率的倍数可获得更好的结果。这样,你至少可以确保混叠不会给你带来低频拍动。


在44KHz采样率下,22KHz正弦波和同一频率的方波没有区别。你会得到两个样本:高和低。输出DAC几乎肯定会呈现它们而不带任何疯狂的高谐波。 - Seamus Campbell
好的提示!我最终在freemosquitoringtones.org上复制了mp3文件(我注意到一些应用程序只是嵌入它们)。 - David Cairns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接