Как я могу использовать быструю свертку на основе БПФ для реализации ФНЧ, если для быстрой свертки требуется ФНЧ?

Я опытный инженер-программист с небольшими знаниями DSP в колледже. Я работаю над приложением для смартфона для обработки данных сигнала, например с микрофона (с частотой дискретизации 44100 Гц) и акселерометра (с частотой дискретизации 32-50 Гц). Моими приложениями могут быть, например, детекторы высоты звука и так далее.

Я хочу реализовать в телефоне фильтр нижних частот (LPF), чтобы удалить искаженные частоты, особенно для акселерометра, который имеет низкую частоту дискретизации. Однако я обнаружил противоречие, пытаясь применить метод быстрой свертки на основе БПФ . Любая помощь будет принята с благодарностью.

Вот мои рассуждения:

  1. Я читаю сигнал и хочу использовать LPF для сглаживания (удаления частот с наложением спектров).

  2. Чтобы реализовать LPF на моем смартфоне, я решил применить FIR-фильтр (а именно, оконную функцию sinc) к сигналу во временной области. Пусть x [n] будет моим сигналом, а f [n] будет коэффициентами моего ядра фильтра. Поэтому я хочу выполнить свертку между x [n] и f [n], где x [n] имеет длину N (обычно 512), а f [n] имеет длину M (обычно 256).

  3. Я реализовал простую одномерную свертку на своем смартфоне (Android и iPhone). Алгоритм является типичной версией вложенного цикла и выполняется за O (N M). На смартфоне он работает слишком медленно для N = 512 и M = 256.

  4. Затем я рассмотрел алгоритм быстрой свертки , который использует БПФ и работает за O (N lgN). В частности, отфильтрованный сигнал происходит из: отфильтрованного x [n] = IFFT (FFT (x). * FFT (f)), где FFT - это fft, IFFT - это обратное FFT, а. * - поэлементное умножение. из двух массивов.

  5. Однако я обнаружил противоречие в этом процессе: IFFT ( FFT (x) . * FFT (f)). Это требует, чтобы я использовал БПФ x [n], но x [n] может иметь смещенные частоты. Это как раз моя начальная проблема с шага 1!

Итак, как разрешить это противоречие? Как я могу использовать быструю свертку для реализации LPF, если для внутренней быстрой свертки требуется LPF?

ПРИМЕЧАНИЕ. Некоторые ребята из EE сказали мне, что в некоторые микрофоны встроен аппаратный LPF, но я не могу быть уверен в микрофоне своего смартфона или акселерометре.

5
задан stackoverflowuser2010 16 November 2011 в 18:21
поделиться