4

AudioUnit を使用して、iPhone プロジェクト (8 ~ 20KHz 程度) の高周波サウンドの範囲をレンダリングしようとしていますが、12KHz を超えるすべてのサウンドが大きく歪んだり、完全に間違ったトーンになったりします。波形を画像にレンダリングしたところ、iPhone のハードウェア サンプル レートが 44,100Hz であるため、エイリアシングが原因であることに気付きました (私の 22KHz 正弦波は 100Hz 正弦波のように出力されます)。

これに対する解決策はありますか?ストアには「犬笛」アプリがたくさんありますが、「本物」ではない可能性が高いと思います。AudioStreamBasicDescription のサンプル レートを変更してもあまり効果がないように見えますが、私のやり方が間違っているのかもしれません。

4

1 に答える 1

2

22KHz の正弦波を 44.1K サンプル/秒でレンダリングするという素晴らしい仕事を実際に行うことはできず、それ以上に最大サンプル レートを上げることはできないと思います。48KHz を使用できる場合があります。サポートされているレートであることを漠然と覚えています

一方、22.05 KHz の方形波を 44.1ks/s で絶対に実行できますが、これには非常に高い高調波周波数が含まれます。たぶんそれが犬笛アプリの仕組みですか?

絶対的な周波数制御が重要でない場合は、周波数をサンプル レートの倍数に丸めると、より良い結果が得られます。そうすれば、少なくともエイリアシングによって低周波ビートが発生しないようにすることができます。

于 2011-04-13T16:49:24.993 に答える