Адаптивное формирование луча
Входы левого/правого микрофонов сначала подаются на фильтр верхних частот для удаления постоянной составляющей. Частота среза фильтра составляет 15 Гц для Fs = 24 кГц.
«Направление луча» задается разностью задержек между двумя входами. Правый канал содержит фиксированную входную задержку 8 сэмплов, а левый канал имеет переменную задержку от 0 до 16 сэмплов, что позволяет левому каналу опережать или отставать от правого канала на величину до 8 сэмплов. Диаграмма направленности имеет максимальную чувствительность, когда выходы двух блоков задержки одинаковы. Соответствующий угол источника может быть вычислен на основе частоты дискретизации и расстояния между микрофонами. Вывод «intermic_delay» должен быть подключен к внешнему источнику постоянного тока и предназначен для того, чтобы при нулевом входном сигнале задержка левого канала равнялась задержке правого канала (8 сэмплов). Этот вывод имеет чувствительность 1 LSB на сэмпл задержки. Если этот вывод подключен к внешнему источнику постоянного тока, числовой формат блока DC может быть установлен на «28.0», чтобы межмикрофонную задержку можно было вводить непосредственно в сэмплах, со значениями от -8 до +8.
Выходы блоков задержки суммируются в верхнем тракте и вычитаются в нижнем тракте. Перед операцией вычитания используется алгоритм согласования микрофонов, который пытается согласовать амплитуды двух микрофонов. Это приведет к снижению чувствительности к допускам на усиление микрофонов, но следует отметить, что микрофоны все равно должны быть точно согласованы по фазовой характеристике.
Разностный сигнал затем подается на IIR фильтр нижних частот, который пытается предварительно скомпенсировать ожидаемый рост характеристики разностного сигнала микрофонов, а затем подается на нормированный адаптивный фильтр, который пытается удалить любые L-R компоненты, присутствующие в сигнале L+R. Теоретически сигнал L-R должен стремиться к нулю для сигналов в «направлении обзора», но на практике этого не происходит в значительной степени из-за акустики помещения. Это потенциально может позволить адаптивному фильтру также устранить желаемый сигнал. Чтобы предотвратить это, устанавливается предел на максимальное среднеквадратичное значение коэффициентов фильтра. Поскольку значение этого параметра зависит от акустики помещения, оно сделано регулируемым пользователем. На практике этот параметр контролирует, насколько близко адаптивный нуль может находиться к «направлению обзора». Меньшие значения следует использовать в сильно реверберирующих средах, чтобы предотвратить случайное подавление желаемого сигнала. Для внеосевых мешающих сигналов сигнал L-R достаточно велик из-за левых/правых фазовых различий, поэтому адаптивному фильтру не требуется большое усиление для подавления компонента L-R, и, следовательно, предел среднеквадратичного коэффициента никогда не достигается. Типичное значение этого параметра составляет около 0.02.
Нормированный адаптивный фильтр также предоставляет параметры для «alpha», который управляет скоростью адаптации, «leak», который управляет коэффициентом утечки LMS, и длину фильтра, которая может быть установлена на 32, 64 или 128. Эти параметры хорошо освещены в литературе по адаптивным фильтрам. Обратите внимание, что параметры по умолчанию установлены в предположении частоты дискретизации 24 кГц, и для других частот дискретизации значение alpha должно быть скорректировано обратно пропорционально частоте дискретизации. Если коэффициент «leak» установлен на 1.0, то нуль, формируемый в определенном направлении, будет сохраняться даже после исчезновения входного сигнала, тогда как если коэффициент утечки установлен, например, на 0.99999, фильтр будет медленно затухать до нуля после исчезновения сигнала. Если коэффициент утечки установлен слишком низким, глубина нуля диаграммы направленности будет плохой.
Также предусмотрен вывод для включения и выключения адаптивного алгоритма. Подача 0 на этот вывод отключает адаптивный фильтр, а «1.0» включает адаптивный фильтр.
Чтобы расширить этот алгоритм на более чем два микрофона, можно каскадно соединять системы, как показано ниже. Обратите внимание, что один микрофон (mic 2) имеет фиксированную задержку в верхнем и нижнем трактах, а два других микрофона регулируются относительно mic 2 для управления лучом. Обратите внимание, что для 4-микрофонных систем можно отслеживать и подавлять до 3 независимых внеосевых источников помех.
Детали алгоритма согласования микрофонов показаны ниже. Обратите внимание, что цель этого алгоритма — минимизировать корреляцию между L-R и L+R. Для микрофонов с малым расстоянием это эквивалентно компенсации несоответствия усиления, но для большего расстояния между микрофонами (или для очень высоких частот), где фазовая разница между микрофонами становится большой, это может не дать того же результата, что и простое уменьшение несоответствия усиления.
Вот пример формирователя луча в проекте SigmaStudio:
Загружаемая версия этого проекта для ADAU1761 доступна здесь.
Выводы
- Mic In (верхний вывод): Вход левого канала (5.23 audio)
- Mic In (2-й вывод): Вход правого канала (5.23 audio)
- Start/Stop (3-й вывод): Включите это для адаптации целевого направления формирования луча. Выключите, чтобы «зафиксировать» направленность на ее последнем значении. (5.23 logic)
- Inter-microphone delay (нижний вывод): (28.0 integer, один сэмпл на LSB, от -8 до +8)
- Output: Результирующий аудиовыход после формирования луча (5.23 audio)
Элементы управления GUI
- LMS alpha (скорость адаптации)
- Max MS (максимальный предел среднеквадратичного значения для коэффициентов фильтра, обычно 0.02)
- LMS leak (управляет «утечкой» фильтра, когда входной сигнал исчезает. Установите значение немного ниже 1)
- FIR length (длина фильтра)
Требуемые ресурсы
- Instruction RAM: 189 слов
- Instructions executed per sample: 189
- Data RAM: 175 слов
- Coefficient RAM: 177 слов




