Децимационный фильтр
Сигма-дельта модулятор выдаёт поток единиц и нулей частотой в мегагерцы, а программе нужны отсчёты на 16 или 48 кГц. Между ними стоит децимационный фильтр: он вырезает шум выше полосы сигнала и прореживает поток.
Обновлено Редакция GAW
Содержание
Децимационный фильтр — цифровой фильтр нижних частот, который стоит после сигма-дельта модулятора и решает две задачи: убирает шум за пределами полосы сигнала и снижает частоту выборки, то есть прореживает поток. Однобитный поток с частотой в мегагерцы превращается в многоразрядные отсчёты на звуковой частоте. Прореживать без фильтра нельзя: шум выше полосы наложится на сигнал.
Зачем он нужен
Сигма-дельта модулятор работает с большой передискретизацией и «выталкивает» шум квантования выше полосы сигнала. В даташите ICS-43434 TDK так и пишет: формирование шума даёт микрофону широкий динамический диапазон, но требует качественного децимационного фильтра. У этого микрофона:
| Параметр | Значение |
|---|---|
| Полоса пропускания | до 0,417 · fS, при 48 кГц — 20 кГц |
| Неравномерность в полосе | ±0,3 дБ |
| Подавление вне полосы | 58 дБ |
| Групповая задержка | 2/fS |
Где он стоит
У I²S-микрофона децимационный фильтр внутри, и он отдаёт готовые отсчёты. У PDM-микрофона — в приёмнике: по белой книге InvenSense источник PDM выдаёт сырой поток модулятора (такт обычно 1,0–3,2 МГц, кратность 64), а фильтр работает в кодеке или процессоре.
Фильтр Sinc
Простейший децимационный фильтр — Sinc, или CIC: каскад из x фильтров скользящего среднего длиной FOSR. В блоке DFSDM микроконтроллеров STM32H7 он аппаратный (RM0433, разд. 30.4.8):
Порядок x — от 1 до 5, FOSR — до 1024 для порядков 1–3, до 215 для Sinc4 и до 73 для Sinc5. Максимальный выход растёт как ±FOSR^x, поэтому вместе с порядком растёт и разрядность результата. За фильтром в DFSDM стоит интегратор, который дополнительно суммирует от 1 до 256 выходов. Подробнее о цифровых микрофонах — в статье «Микрофоны для микроконтроллера».
Частые вопросы
Где стоит децимационный фильтр у цифровых микрофонов?
У I²S-микрофона — внутри него: он выдаёт готовые отсчёты на частоте выборки. У PDM-микрофона — в приёмнике: микрофон отдаёт поток модулятора на 1–3 МГц, а фильтровать и прореживать его должны кодек, DSP или микроконтроллер, например блок DFSDM в STM32. Так распределяет функции InvenSense.
Можно ли просто брать каждый 64-й бит потока PDM?
Нет. Отдельный бит потока ничего не значит, и почти весь шум квантования модулятор вытолкнул выше звуковой полосы. Если проредить без фильтра, этот шум наложится на полезный сигнал. Сначала нужен фильтр нижних частот, и только потом уменьшение частоты выборки.
Что такое фильтр Sinc третьего порядка?
Каскад из трёх фильтров скользящего среднего длиной FOSR отсчётов: H(z) = ((1 − z^−FOSR)/(1 − z^−1))³. Чем выше порядок, тем сильнее подавление вне полосы и тем больше разрядность выхода: по RM0433 максимальное значение — ±FOSR в степени порядка, например ±64³ = ±262 144 при FOSR = 64.
Источники
- InvenSense. Lewis J. Inter-IC Digital Audio Interfaces (WP, Revision 1.0, 12/18/2013) — в архитектуре с PDM децимационный фильтр стоит в принимающей микросхеме, а не в передающей: источник выдаёт сырой поток модулятора с высокой частотой, например выход сигма-дельта модулятора, а не прореженные данные, как в I²S; часто используются децимационные фильтры, уже имеющиеся в АЦП кодека; данные PDM модулированы с кратностью 64, такт обычно 1,0–3,2 МГц
- TDK InvenSense. ICS-43434 Multi-Mode Microphone with I2S Digital Output: Datasheet (DS-000069, Revision 1.2) — разд. Low-Pass Decimation Filter: АЦП — однобитный сигма-дельта высокого порядка с большой передискретизацией; формирование шума выносит его выше звуковой полосы, но требует качественного децимационного фильтра; полоса пропускания до 0,417 · fS с неравномерностью ±0,3 дБ, при 48 кГц — 20 кГц, половина амплитуды на 24 кГц, подавление в полосе задерживания 58 дБ, параметры масштабируются с частотой выборки; табл. 4 — групповая задержка 2/fS
- STMicroelectronics. RM0433: STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — разд. 30.4.8: фильтр Sinc в DFSDM снижает частоту выходных данных (децимация) и повышает разрядность; порядок FastSinc и Sinc1–Sinc5, коэффициент FOSR до 1024 для порядков 1–3, до 215 для Sinc4, до 73 для Sinc5; передаточная функция H(z) = ((1 − z^−FOSR)/(1 − z^−1))^x; табл. 254 — максимальный выход ±FOSR^x; разд. 30.4.9 — интегратор с IOSR 1–256 дополнительно суммирует выходы фильтра
Нашли ошибку?
Смотрите также
- PDM-микрофонЦифровой MEMS-микрофон с 1-битным выходом: такт, выбор канала, децимация
- Сигма-дельта АЦПАЦП с передискретизирующим модулятором и цифровым фильтром
- ПередискретизацияOversampling: дополнительные биты АЦП усреднением
- DFSDM (фильтр для сигма-дельта модуляторов)Блок STM32, превращающий потоки сигма-дельта модуляторов и PDM-микрофонов в отсчёты
- MEMS-микрофонКремниевый конденсаторный микрофон с предусилителем; выход аналоговый, PDM или I²S
- Микрофоны MEMS, PDM и I²SАналоговые и цифровые MEMS-микрофоны, чувствительность в дБВ и дБFS, ICS-43434 по I²S, уровень в дБ SPL
- Антиалиасинговый фильтрАналоговый ФНЧ перед АЦП, подавляющий частоты выше половины частоты дискретизации