2013-04-02 3 views
0

Я новичок в DSP. Я пытаюсь создать приложение для учебных целей на Java. Я хочу вычислить коэффициенты КИХ-фильтра и построить его частотную характеристику.FIR frequency responce

Чтобы вычислить коэффициенты, я хочу использовать ifft идеальной частотной характеристики, которая представляет собой в основном прямоугольное окно. Я могу вычислить коэффициенты с помощью этого метода и мои сигналы фильтрации FIR. Затем я хочу исследовать частотную характеристику. Как я знаю, я могу получить его от импульсного отклика фильтра через fft (но тогда это будет одно и то же прямоугольное окно, верно?). И я получаю тот же прямоугольный идеальный частотный отклик, но мне нужен реальный частотный отклик. Как в этой картине.

enter image description here

Как я могу это сделать?

ответ

0

запомнить использование fft или ifft, вы считаете, что ваш сигнал является периодическим (поэтому его не один прямоугольник, его бесконечные). Кроме того, идеальным ответом является прямоугольное окно по амплитуде и LINEAR по фазе. Таким образом, вы должны сделать сигнал, который имеет линейную фазу, как

F = exp(-i*w*0.1); 
F(51:end-50) = 0; 
impulse = real(ifft(F)); 

вы все еще будете иметь мнимую часть (но это будет очень мало) из-за неточностей фазы, когда вы «ноль» привет-частот группа. В примере 50 будет частотой среза и 0,1 желаемой групповой задержкой.

0
  1. Создайте идеальную частотную характеристику.
  2. Для создания коэффициентов использования фильтра, если это идеальный частотный отклик.
  3. Чтобы вычислить реальный частотный отклик, добавьте нули в массив коэффициентов и вызовите fft этого массива. Моя проблема заключалась в том, что я не добавлял нули в массив коэффициентов. И, конечно, из коэффициентов я получал бы тот же идеальный частотный отклик.