реклама на сайте
подробности

 
 
> FIR frequency response
Boris_B
сообщение Apr 2 2013, 12:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 7-07-11
Пользователь №: 66 121



В целях обучения возникла необходимость написать программу для студентов, для сравнения характеристик цифровых КИХ фильтров и какого-нибудь аналогового фильтра.
Пишу на java. Но трудности не в языке.

Вопрос в том, как получить реальные характеристики фильтра. Frequency response, step response и пр.

Алгоритм работы моей программы следующий:

1. Сгенерировать идеальную дискретную АЧХ.
2. Из АЧХ с помощью ifft получить коэффициенты фильтра.
3. Сгенерировать сигнал в виде суммы синусоид с заданными частотами.
4. Применить фильтра к сигналу, чтобы посмотреть форму сигнала на выходе.
5. Сделать fft сигнала до и после фильтра и посмотреть графики.

Возникает вопрос - как мне получить реальные характеристики фильта? Я пробовал сделать ifft коэффциентов и получил обратно идеальную характеристику фильтра (прямоугольное окно), что неудивительно.
Я же хочу увидеть вот такую картину.


Еще есть вопрос, если я генерирую коэффициенты с помощью ifft, а не через выведенную из аналитических преобразований формулу, то окно мне надо накладывать на дискретную АЧХ?
Есть еще пара вопросов, очень надеюсь на помощь, т.к. перечитал уже все что можно и все равно не знаю как сделать.

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



Однако мне все же непонятно, как получить эту картину, если генерировать коэффициенты с помощью ifft.
Возможно я допустил какую-то ошибку при генерации дискретной АЧХ?



Ее я гененирую по заданной частоте среза.

Код
public static double[] getFreqResp(int N, long samplingFreq, long сutOffFreq) {
        
        double[] output = new double[N];
        long currentFreq;
        for (int i = 0; i < N; i++) {
            currentFreq = (samplingFreq/N)*i;
            if ((currentFreq <= сutOffFreq) |
                    (currentFreq >= samplingFreq - сutOffFreq))
                output[i] = 1.0;
            else
                output[i] = 0.0;
        }
        
        return output;
    }


Я это делал по книжке Лайонса, может она все же должна быть симметричной относительно ноля оси частот?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
thermit
сообщение Apr 2 2013, 13:03
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Частотные характеристики вычисляются через z-преобразование, путем замены z на exp(j*omega).
Go to the top of the page
 
+Quote Post
Boris_B
сообщение Apr 2 2013, 13:42
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 7-07-11
Пользователь №: 66 121



Цитата(thermit @ Apr 2 2013, 17:03) *
Частотные характеристики вычисляются через z-преобразование, путем замены z на exp(j*omega).

К сожалению, ничего пока не читал про z преобразование. Но спасибо, надеюсь, разберусь.
А как правильно наложить окно, если вычислять коэффициенты через ifft?

2 V_G Насчет идеальной АЧХ - это я, как и написал, мне неудивительно. Удивительно было, что ни в одной книге не нашел, как же получить реальные характеристики фильтра, рассчитанного этим методом.

Цитата(thermit @ Apr 2 2013, 17:03) *
Частотные характеристики вычисляются через z-преобразование, путем замены z на exp(j*omega).

Почитал про z-преобрвазование на википедии. Свертку на джаве сделать смогу. Не очень понятнно только что вместо j подставлять в формулу? На джаве мниной единицы нет. Но есть написанный отдельно класс Complex.
Правильно ли понимаю, что мне тогда надо написать метод exp возводящий комплексное число в степень а в качестве j использовать комплексное число с реальной частью равной 0 и мнимой равной 1? А потом возводить его с помощью этого метода в степень?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016