Цифровая обработка сигналов

FIR-фильтры

Sony WH-1000XM5 убирает шум самолёта (100-1000 Гц) через FIR фильтр на DSP за 0.2 мс. Spotify применяет FIR эквалайзер к 44100 сэмплов в секунду без фазовых искажений. 5G базовые станции используют FIR фильтры для формирования спектра сигнала в реальном времени. FIR - фундаментальный инструмент DSP: предсказуемый, стабильный, с линейной фазой. Понимать FIR значит понимать как работают наушники, радиоприёмники и аудиооборудование.

  • **Sony WH-1000XM5 ANC** - FIR low-pass фильтр на 32-бит DSP; шум самолёта 30-1000 Гц подавляется на 40+ dB; задержка <0.3мс для phase cancellation; пересчёт коэффициентов при изменении шума
  • **5G Channel Filter** - FIR pulse shaping (RRC, Root Raised Cosine): ограничить bandwidth без inter-symbol interference; порядок 64-256 для 100 МГц bandwidth; DSP hardware с MAC (multiply-accumulate) units
  • **Seismograph Processing** - FIR band-pass 0.1-10 Гц для обнаружения землетрясений; линейная фаза критична для точного определения времени прихода P-wave и S-wave

FIR фильтры: принципы

Наушники Sony WH-1000XM5 убирают шум самолёта (100-1000 Гц) оставляя голос (300-3400 Гц). Это FIR low-pass фильтр в реальном времени на 32-битном DSP. Spotify применяет FIR эквалайзеры к аудиопотоку 44100 Гц. В чём суть FIR и почему их выбирают?

**FIR (Finite Impulse Response)**: выход y[n] = sum_{k=0}^{N} h[k] * x[n-k], где h[k] - коэффициенты (импульсная характеристика), N - порядок фильтра. Свойства: **линейная фаза** (при симметричных коэффициентах), **безусловно стабилен** (нет обратной связи), **требует N+1 умножений на сэмпл**. IIR: рекурсивный, нелинейная фаза, нестабилен при плохих коэффициентах.

Почему FIR фильтр безусловно стабилен в отличие от IIR?

Оконный метод проектирования

Идеальный low-pass фильтр в частотной области - прямоугольник. В временной - бесконечная sinc функция (нереализуема). Оконный метод: обрезать sinc окном заданной длины. Выбор окна определяет рябь в полосе пропускания и ослабление в полосе задерживания.

Популярные окна: **Прямоугольное** - минимальная длина, рябь -13 dB. **Hamming** - рябь -41 dB. **Hann** - рябь -44 dB. **Blackman** - рябь -74 dB, более широкий переход. **Kaiser** - параметрический: один параметр beta управляет trade-off рябь/ширина перехода. Правило для длины фильтра N: N ~ (-20*log10(delta) - 8) / (2.285 * delta_omega).

Какой trade-off существует при выборе окна для FIR фильтра?

Алгоритм Parks-McClellan

Оконный метод прост, но не оптимален: он не минимизирует порядок фильтра для заданных specifications. **Parks-McClellan** (1972) - алгоритм Ремеза для минимаксной оптимизации: находит коэффициенты FIR которые минимизируют максимальную ошибку приближения. Тот же результат при меньшем числе коэффициентов.

Parks-McClellan минимизирует взвешенную Chebyshev ошибку: min_h max_w W(w)|H(w) - D(w)|, где D(w) - желаемая характеристика, W(w) - весовая функция. Равноволновое приближение (equiripple): все максимумы ошибки в полосе равны. Реализован в scipy.signal.remez и MATLAB firpm.

В чём преимущество Parks-McClellan перед оконным методом для проектирования FIR?

Линейная фаза FIR

Разные частоты аудиосигнала должны задерживаться одинаково - иначе тембр искажается. **Линейная фаза** phi(omega) = -tau*omega гарантирует константную задержку tau для всех частот. FIR с симметричными коэффициентами (h[k] = h[N-k]) автоматически линейно-фазовые. IIR нелинейно-фазовые.

4 типа линейно-фазовых FIR: **Type I** (N чётный, симметрия): произвольный частотный отклик. **Type II** (N нечётный, симметрия): H(pi) = 0, не для high-pass. **Type III** (антисимметрия, N чётный): H(0)=H(pi)=0, для дифференциаторов. **Type IV** (антисимметрия, N нечётный): для Hilbert transform. Задержка = N/2 сэмплов для всех.

FIR фильтры всегда лучше IIR из-за линейной фазы

FIR и IIR - разные инструменты. FIR: линейная фаза, безусловная стабильность, нужно в 5-10x больше коэффициентов. IIR: компактный (порядок 5-10 вместо 50-100), нелинейная фаза, может быть нестабильным при квантовании коэффициентов. IIR стандарт для real-time DSP (audio plugins, hardware), FIR для audio mastering и communications.

Плагин реверберации в Ableton работает через IIR (Biquad cascade) для низкой CPU нагрузки. Audio forensics и научные измерения - FIR для гарантированной линейной фазы. Anti-aliasing фильтр в АЦП - IIR (Butterworth) потому что аппаратная реализация проще. Выбор зависит от требований к фазе, вычислительным ресурсам и точности коэффициентов.

Почему линейная фаза критична для аудиофильтров но менее важна для систем обнаружения объектов?

Ключевые идеи

  • **FIR**: y[n] = sum(h[k]*x[n-k]); не рекурсивный -> безусловно стабилен; требует N+1 умножений на сэмпл
  • **Оконный метод**: sinc * window; выбор окна определяет ослабление (Hamming -42dB, Blackman -74dB) vs ширину перехода
  • **Parks-McClellan/Remez**: equiripple минимаксная оптимизация; меньший порядок для тех же specs; scipy.signal.remez
  • **Линейная фаза**: симметричные h[k]=h[N-k] -> фазовая задержка N/2 для всех частот; критично для аудио, менее для CV

Связанные темы

FIR фильтры - базовый инструмент DSP наряду с IIR:

  • IIR-фильтры — IIR vs FIR: рекурсивный, компактный, нелинейная фаза - альтернатива для real-time DSP
  • Преобразование Фурье — DFT / FFT - инструмент анализа частотной характеристики FIR фильтров

Вопросы для размышления

  • Sony WH-1000XM5 использует FIR с порядком ~256 для ANC. Каждый сэмпл требует 256 умножений. При fs=48000 Гц это 12 миллионов операций в секунду. Как DSP чип это успевает за 0.2мс и какие аппаратные оптимизации используются?
  • Parks-McClellan equiripple: рябь в passband и stopband равна. Для аудио фильтра важнее минимизировать рябь в passband (заметнее на слух). Как настроить весовую функцию W(omega) в scipy.signal.remez для prioritize passband?
  • FIR линейная фаза: задержка N/2 сэмплов. Для фильтра порядка 256 при fs=44100 Гц задержка = 128/44100 = 2.9 мс. Для ANC это критично (должно быть <0.5мс). Как решить это противоречие?

Связанные уроки

  • sci-05
FIR-фильтры

0

1

Войти