Коэффициенты передаточной функции.

Все что касается фильтрации
Ivan52
Сообщения: 1
Зарегистрирован: 10 дек 2017, 01:59

Коэффициенты передаточной функции.

Сообщение Ivan52 »

Здравствуйте. Помогите, пожалуйста, реализовать функцию cheby1. То есть необходимо написать собственную реализацию данной функции MATLAB. Выходом должны являться два массива размерности 1xN+1. У меня возникли затруднения при вычислении коэффициентов передаточной функции.
Я сначала реализую передаточную функцию:

Код: Выделить всё

N = 4;
    R_p = 1.5;
    W_p = 0.5463;  
    sigma_0 = 0;
    T = 2;
    E_p = sqrt(10^(R_p/10) - 1);
    G_p = 1/(sqrt(1 + (E_p)^2));
    A = mod(N, 2);
        if(A ~= 0) %~= - "не равно"
            r = 1;
        else
            r = 0;
        end
       
    L = fix(N/2);
    B = (1/N) * asinh(1/E_p);
    if(r ~= 0)
        sigma_0 = -sinh(B);
    end 
 
    for k = 1:L
        a_k(k) = pi * (2 * k - 1)/(2 * N);    
        sigma_k(k) = -sin(a_k(k)) * sinh(B); 
        omega_k(k) = cos(a_k(k)) * cosh(B);
        sum_sig_k_omega_k(k) = sigma_k(k)^2 + omega_k(k)^2;
    end
 
    %начиная с этого цикла затруднения. Если полностью, то в этом цикле надо осуществить билинейное преобразование 
    %(здесь s должно заменится на подстановку биленейного преобразования; берутся коэффициенты перед z в -1, -2, -3 и 
    %т.д. степенях).
 
    for k = 1:L
        a(k) = 0;
        b(k) = 0;
        y = ((G_p)^(1-r) * (-sigma_0^r) * sum_sig_k_omega_k(k))/ ((s-sigma_0)^r * ((s^2)-2*sigma_k(k)*s+sum_sig_k_omega_k(k)));         
    end
Где начинаются затруднения я указал. Значения взяты для примера. На выходе должны получиться два массива a и b длиной 1xN+1.
Мне необходимо сначала вычислить H(s):
Изображение
Разделить все коэффициенты при s на W_p:
Изображение
Выполнить подстановку:
Изображение
Получить H(z):
Изображение
Преобразовать и получить H(z) и коэффициенты a и b:
Изображение
Спасибо.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Коэффициенты передаточной функции.

Сообщение Бахурин Сергей »

Чтобы получить коэффициенты H(s) надо перемножить полиномы. Перемножение полиномов численно это линейная свёртка conv.
У вас ещё до цикла нету рассчитанных коэффициентов фильтра прототипа, поэтому билинейное преобразование ещё рано.

KuleshovAvto
Сообщения: 2
Зарегистрирован: 16 авг 2018, 15:49

Коэффициенты передаточной функции

Сообщение KuleshovAvto »

Здравствуйте. Научите, пожалуйста, выполнять z-преобразование передаточной функции. Могу это сделать только в matlab, но в курсовой работе нужен процесс решения. Сначала я в mathcad разложил дробь parfrac. Первая дробь получилась такой: frac-8,97e185e18p9.37e19 экспоненциальный вид. Что нужно делать дальше? Заменять по таблице? Передаточная функция с оператором Лапласа "p" - это изображение? Нужно на что-то домножить?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Коэффициенты передаточной функции.

Сообщение Бахурин Сергей »

Если у вас есть H(p) и вам надо получить из нее H(z) цифрового фильтра, то вам надо вместо переменной р подставить

и привести подобные.

Ответить