Рендеринг очень высокочастотных звуков на iOS - PullRequest
4 голосов
/ 13 апреля 2011

Я пытаюсь использовать AudioUnit для воспроизведения диапазона высокочастотных звуков для проекта iPhone (порядка 8–20 кГц), но все, что выше 12 кГц, получается сильно искаженным и / или совершенно неправильным тоном.Я преобразовал сигналы в изображение и понял, что, поскольку аппаратная частота дискретизации iPhone составляет 44,100 Гц, виноват псевдоним (моя синусоидальная волна 22 кГц выглядит больше как синусоида 100 Гц).Есть ли решение этого?Я вижу несколько приложений "собачьего свистка" в магазине, но я предполагаю, что они вряд ли "для настоящих".Изменение частоты дискретизации AudioStreamBasicDescription, похоже, не сильно помогает, но, возможно, я делаю это неправильно.

1 Ответ

2 голосов
/ 13 апреля 2011

Вы не можете сделать большую работу по рендерингу синусоидального сигнала 22 кГц со скоростью 44,1 кГц в секунду, и вы не можете увеличить максимальную частоту дискретизации выше этого, я полагаю. Вы могли бы иметь возможность использовать 48 кГц, я смутно помню, что это поддерживаемая частота.

С другой стороны, вы можете сделать прямоугольную волну 22,05 кГц со скоростью 44,1 кбит / с, которая будет иметь некоторые безумно высокие частоты гармоник. Может быть, так работают приложения для собак со свистком?

Если абсолютный контроль частоты не критичен, вы получите лучшие результаты, округлив частоты до кратности частоты дискретизации. Таким образом, вы можете по крайней мере убедиться, что псевдоним не даст вам низкочастотные ритмы.

...