Цифровая обработка сигналов
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