#iphone #core-audio #audiounit #aliasing
#iPhone #ядро-аудио #audiounit #сглаживание звука
Вопрос:
Я пытаюсь использовать AudioUnit для рендеринга диапазона высокочастотных звуков для проекта iPhone (порядка 8-20 кГц), но все, что выше 12 кГц, получается сильно искаженным и / или совершенно не того тона. Я преобразовал формы сигналов в изображение и понял, что, поскольку аппаратная частота дискретизации iPhone составляет 44 100 Гц, виновато сглаживание (моя синусоидальная волна 22 кГц больше похожа на синусоидальную волну 100 Гц).
Есть ли какое-либо решение для этого? Я вижу в магазине несколько приложений «собачий свисток», но я предполагаю, что они вряд ли «по-настоящему». Изменение частоты дискретизации AudioStreamBasicDescription, похоже, не очень помогает, но, возможно, я делаю это неправильно.
Ответ №1:
Вы не можете действительно отлично выполнить рендеринг синусоидальной волны 22 кГц со скоростью 44,1 тыс. сэмплов в секунду, и вы не можете увеличить максимальную частоту дискретизации выше этого, я полагаю. Вы могли бы использовать 48 кГц, я смутно помню, что это поддерживаемая частота.
С другой стороны, вы абсолютно точно можете создать прямоугольную волну 22,05 кГц со скоростью 44,1 кбит / с, которая будет иметь безумно высокие гармонические частоты. Может быть, именно так работают приложения dog whistle?
Если абсолютный контроль частоты не критичен, вы получите лучшие результаты, округлив ваши частоты до кратных частоте дискретизации. Таким образом, вы можете, по крайней мере, убедиться, что сглаживание не приводит к появлению низкочастотных биений.
Комментарии:
1. При частоте дискретизации 44 кГц нет разницы между синусоидальной волной 22 кГц и прямоугольной волной на той же частоте. Вы получаете два сэмпла: высокий и низкий. Выходной ЦАП почти наверняка будет воспроизводить их без каких-либо безумно высоких гармоник.
2. Хороший совет! В итоге я подражал mp3 на freemosquitoringtones.org (я заметил, что некоторые приложения просто внедряют).