2016-06-22 4 views
0

Я пытаюсь написать код в Matlab, который принимает один или сумму sinosudal волн, наложенных с шумом и попытаться отфильтровать его с помощью следующей Algo:Фильтрация синусоидальной волны с FFT

  • первого я беру входной и поместите его в векторе

  • затем я применить (FFT) к этому вектору и абса() к этому FFT
    - пример, если «х» есть вектор, в котором волна сохраняется, то
    - у = абс (FFT (х))

  • теперь «у» я сделать все элементы меньше некоторого порогового значения 0

  • затем применить IFFT() функция, чтобы получить отфильтрованный сигнал позволяет говорить «x1»

но окончательные волны я получаю, даже если синусоидальная волну она находится вне фазы (см график) .о это потому, что IAM ходатайствующего абса() к FFT ??
Но material, на котором я получил этот algo, не обсуждает об этом.
Нужно ли применять любой другой фильтр, чтобы получить реальную волну?

здесь сюжет двух волн: одна я получил от описанной выше процедуры, а другая фактическая волна, которая является синусоида без шума: my graph

увидеть, как моя фильтруется волна и фактическая волна являются не в порядке, как исправить?

Если вы не можете понять вопрос или иметь что-нибудь, что вы хотите задать мне, пожалуйста, прокомментируйте, я попытаюсь это объяснить.

ответ

3

Вы присваиваете абсолютным значениям результата FFT для y, следовательно, вы получаете значения REAL. Выполнение ifft() на этом просто предполагает, что мнимые части равны нулю, следовательно, фазовый сдвиг.

+3

Результат FFT - это комплексное число, вам нужно как фазу, так и модуль инвертировать его, если вы используете абсолютное значение, которое вы теряете. Вы можете использовать абсолютное значение для его построения, но будьте осторожны, чтобы не использовать абсолютное значение для IFFT. – Niles

+0

, но для установки ограничения для фильтра я должен использовать абсолютные значения. есть ли другой способ, которым я могу использовать fft для фильтрации без использования абсолютных значений? если да, пожалуйста, дайте мне источник. –

+0

или я могу скомпоновать фазовый сдвиг каким-то образом (не зная оригинальной волны) –