Реализация моего собственного фильтра нижних частот в Java с использованием fft - PullRequest
2 голосов
/ 02 июня 2011

Я использую: http://introcs.cs.princeton.edu/java/97data/FFT.java.html для реализации собственного фильтра нижних частот.

Как изменить порядок вывода из FFT.fft (), чтобы обнулить правильные значения для правильногофильтр нижних частот?

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

Когда дана форма сигнала из N выборок, эта реализация FFT возвращает массив размера N, который вы должны рассматривать как два последовательных массива размера N / 2:

  • первый идет из индексаОт 0 до индекса N / 2-1,
  • секунда идет от индекса N / 2 до конца массива.

Каждый из них содержит комплексную энергию для каждой целой частотымежду 0 и N / 2 (за исключением того, что один противоположен другому).

Так что, если вы хотите отключить все сигналы с частотой F или выше, вы должны обнулить:

  • все значения от F до N / 2-1 включительно и
  • все значения от N / 2-1 + F до N / 2-1 включительно.
* 1018 включительно* Затем вы можете запустить обратное БПФ, чтобы получить отфильтрованный сигнал.
1 голос
/ 02 июня 2011

Я предполагаю, что вы обнуляете все значения в массиве y, возвращенные методом fft, которые имеют частоту (определяемую индексом массива) выше вашего среза.

...