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

DSP на собеседовании: фильтры, спектр, трейдоффы

Инженер Dolby Labs описал своё интервью так: 5 минут на whiteboard FIR vs IIR, 15 минут 'спроектируйте noise cancellation', 10 минут 'почему FFT быстрее DFT'. Никаких алгоритмических задач типа LeetCode - только DSP. Это специализированные роли с зарплатой 200-350k USD/год, где отбор жёсткий и специфичный.

  • Dolby Labs: DSP engineer интервью включает проектирование audio pipeline от требований до fixed-point реализации
  • Qualcomm DSP team: вопросы о Hexagon DSP intrinsics, Q15 arithmetic и LMS адаптивных фильтрах
  • Apple AirPods team: ANC system design с latency budget analysis и адаптивной сходимостью
  • NVIDIA audio AI: FFT windowing, spectral leakage и STFT параметры для speech enhancement

Фильтры на интервью: FIR vs IIR

На каждом DSP-интервью в Apple, Qualcomm, Dolby звучит вариация одного вопроса: 'Нужно убрать 60 Гц помеху из ЭКГ при частоте дискретизации 1000 Гц. Что используете - FIR или IIR? Почему?' Правильный ответ зависит от требований, которые нужно уточнить.

**FIR vs IIR checklist.** FIR: всегда стабилен, линейная фазовая характеристика (группировое запаздывание постоянно), легко реализуется с fixed-point без нестабильности. IIR: меньше коэффициентов для той же крутизны, но нелинейная фаза, возможна нестабильность при fixed-point квантовании. Для ЭКГ: FIR (линейная фаза критична для диагностики). Для audio EQ: IIR достаточно.

**Bilinear Transform.** IIR фильтры проектируются в аналоговом домене (Laplace s-domain), затем конвертируются в цифровой через bilinear transform: s = 2/T * (z-1)/(z+1). Это отображение всей левой полуплоскости (стабильные аналоговые полюсы) внутрь единичного круга (стабильные цифровые полюсы). Эффект frequency warping: частоты искажаются нелинейно, нужна pre-warping коррекция.

Почему FIR фильтр предпочтителен для диагностической ЭКГ, а не IIR?

Спектральный анализ: FFT вопросы

FFT - обязательный вопрос на DSP-интервью. 'Какова сложность FFT и почему?' и 'Объясните leakage и как с ним бороться' звучат в 90% случаев. Правильный ответ - не формула, а понимание причинно-следственных связей.

**STFT vs Wavelet трейдофф.** STFT (Short-Time Fourier Transform): фиксированное временное и частотное разрешение. Для анализа речи - достаточно. Wavelet: частотное разрешение адаптивно - хорошее на низких частотах, временное разрешение хорошее на высоких. Для ЭКГ с QRS комплексами - Wavelet предпочтителен. Morlet Wavelet дает оптимальный time-frequency компромисс по принципу неопределённости Гейзенберга.

Что такое spectral leakage и как windowing его уменьшает?

Реализация: типичные задачи кодинга

DSP-интервью в Dolby, Qualcomm, NVIDIA часто включают live coding: 'реализуйте moving average filter' или 'напишите circular buffer'. Задачи простые, но ловушки в граничных условиях и overflow.

**Goertzel vs FFT.** Если нужна только одна частота из N-point FFT, Goertzel экономит вычисления: O(N) вместо O(N log N). Применение: DTMF декодирование телефонии (8 частот из 512-point), tone detection, частотомер. Если нужно K частот: Goertzel выгоднее при K < log2(N), FFT выгоднее при K > log2(N).

Почему в MovingAverage используется running sum (total += x) вместо пересчёта суммы каждый раз?

System Design: tradeoffs в DSP системах

Финальная часть DSP-интервью в FAANG - system design: 'Спроектируйте audio noise cancellation для наушников с latency < 5 мс'. Это не вопрос знания конкретного алгоритма - это вопрос способности аргументированно выбрать между tradeoffs.

**Принцип Гейзенберга в DSP.** Неопределённость time-frequency: sigma_t * sigma_f >= 1/(4*pi). Нельзя одновременно иметь высокое временное и частотное разрешение. Следствие для дизайна: короткое FFT окно = хорошее временное разрешение, плохое частотное. Длинное окно = наоборот. Wavelet обходит это адаптивным разрешением, но не нарушает принцип - просто распределяет бюджет оптимально по частотам.

На DSP-интервью нужно знать все формулы наизусть

Интервьюеры оценивают понимание tradeoffs: когда FIR vs IIR, почему linear phase важна, как latency и filter order связаны. Формулы можно вывести - понимание причинно-следственных связей нельзя.

Apple DSP engineer: 'Мне не интересно помнит ли кандидат формулу bilinear transform. Мне интересно: понимает ли он почему IIR может быть нестабилен при квантовании и что с этим делать'.

Почему веса LMS фильтра (w[]) хранят в Q31, а не Q15 при fixed-point реализации?

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

  • FIR vs IIR: FIR стабилен + линейная фаза, IIR эффективнее + нелинейная фаза - выбор зависит от требований
  • FFT leakage: конечное окно = прямоугольный window -> sinc sidelobes; Hann/Blackman уменьшают ценой главного лепестка
  • Live coding: circular buffer O(1) delay, running sum O(1) moving average, Goertzel O(N) для одной частоты
  • Adaptive filters: LMS O(N) стабилен, веса в Q31 при fixed-point, mu trade-off: convergence vs stability
  • System design: requirements -> latency budget breakdown -> algorithm selection -> fixed-point tradeoffs

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

DSP интервью охватывает весь курс - от фильтров до real-time реализации.

  • FIR-фильтры — FIR design, linear phase, Parks-McClellan - типичные вопросы
  • FFT: быстрое преобразование — FFT сложность, leakage, windowing - обязательные темы интервью
  • Real-Time DSP: FPGA и DSP-ядра — Fixed-point и real-time constraints из предыдущего урока

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

  • Interviewer спрашивает: 'Почему нельзя просто взять длинный FIR для всего?' Как ответить, учитывая latency, compute cost и когда FIR реально плохой выбор?
  • Как объяснить принцип неопределённости Гейзенберга в контексте STFT без формул - только через интуицию?
  • При каких условиях LMS алгоритм расходится, и как NLMS (нормализованный LMS) решает эту проблему?

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

  • dsp-15 — Real-time DSP вопросы идут после понимания FPGA и fixed-point
  • dsp-08 — IIR фильтры - типичный вопрос на собеседовании: Butterworth, Chebyshev, биlinear transform
  • dsp-05 — FFT - фундаментальный вопрос во всех DSP-интервью
  • cv-18 — CV System Design интервью имеет ту же структуру: requirements -> algorithm -> tradeoffs
  • calc-01-sequences
DSP на собеседовании: фильтры, спектр, трейдоффы

0

1

Войти