bilinear

Билинейный метод преобразования для аналого-цифрового преобразования фильтра

Описание

[zd,pd,kd] = bilinear(z,p,k,fs) преобразует s - доменная передаточная функция в нулевой полюсом форме, заданной zPK и частота дискретизации fs к дискретному эквиваленту.

[numd,dend] = bilinear(num,den,fs) преобразует s - доменная передаточная функция, заданная числителем num и знаменатель den к дискретному эквиваленту.

пример

[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs) преобразует систему в пространстве состояний непрерывного времени в матрицах ABC, и D к системе дискретного времени.

пример

[___] = bilinear(___,fp)параметр использования fp как "совпадают" с частотой, чтобы задать предварительное деформирование.

Примеры

свернуть все

Спроектируйте прототип для 10-го порядка полосовой фильтр типа I Чебышева с 3 дБ пульсации в полосе пропускания. Преобразуйте его в форму пространства состояний.

[z,p,k] = cheb1ap(10,3);
[A,B,C,D] = zp2ss(z,p,k);  

Создайте аналоговый фильтр с частотой дискретизации fs=2 kHz, предварительно деформированные ребра полосы u1и u2 в rad/s, пропускной способности Bw=u2-u1 и центральная частота Wo=u1u2 для использования с lp2bp. Задайте частоты ребра полосы пропускания как 100 Гц и 500 Гц.

Fs = 2e3;
u1 = 2*Fs*tan(100*(2*pi/Fs)/2);   
u2 = 2*Fs*tan(500*(2*pi/Fs)/2); 
Bw = u2 - u1;                     
Wo = sqrt(u1*u2);                 
[At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw);
[b,a] = ss2tf(At,Bt,Ct,Dt);        

Вычислите частотную характеристику аналогового фильтра с помощью freqs. Постройте ответ величины и предварительно деформированные ребра диапазона частот.

[h,w] = freqs(b,a);     
plot(w,mag2db(abs(h)))
hold on
ylim([-165 5])
[U1,U2] = meshgrid([u1 u2],ylim);
plot(U1,U2)
legend('Magnitude response','Lower Passband Edge','Upper Passband Edge')
hold off
xlabel('Angular Frequency (rad/s)')
ylabel('Magnitude (dB)')
grid

Используйте bilinear создать цифровой полосовой фильтр с частотой дискретизации fs и ребро нижней полосы 100 Гц. Преобразуйте цифровой фильтр от формы пространства состояний до формы передаточной функции с помощью ss2tf.

[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,Fs);

[bz,az] = ss2tf(Ad,Bd,Cd,Dd);

Используйте fvtool построить ответ величины цифрового фильтра.

fvtool(bz,az,'Fs',Fs)

Спроектируйте аналоговый lowpass эллиптический фильтр 6-го порядка с 3 дБ пульсации в полосе пропускания и полосе задерживания 90 дБ вниз. Установите частоту среза fc=20 Гц и частота дискретизации fs=200 Гц.

clear
Fc = 20;
Fs = 200;                             
[z,p,k] = ellip(6,3,90,2*pi*Fc,'s');
[num,den] = zp2tf(z,p,k);

Вычислите ответ величины аналогового эллиптического фильтра. Визуализируйте аналоговый фильтр.

[h,w] = freqs(num,den);
plot(w/(2*pi),mag2db(abs(h)))
hold on
xlim([0 50])
[l1,l2] = meshgrid(Fc,[-120 0]);
plot(l1,l2)
grid
legend('Magnitude response','Passband Edge')
xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)')

Используйте bilinear преобразовать его к БИХ-фильтру дискретного времени. Установите частоту соответствия как fp=20 Гц.

[numd,dend] = bilinear(num,den,Fs,20);

Визуализируйте фильтр с помощью fvtool.

fvtool(numd,dend,'Fs',Fs)                     

Входные параметры

свернуть все

Нули s - доменная передаточная функция, заданная как вектор-столбец.

Полюса s - доменная передаточная функция, заданная как вектор-столбец.

Усиление s - доменная передаточная функция, заданная как скаляр.

Частота дискретизации, заданная как положительная скалярная величина.

Коэффициенты числителя аналоговой передаточной функции, заданной как вектор-строка.

Коэффициенты знаменателя аналоговой передаточной функции, заданной как вектор-строка.

Матрица состояния в s - область, заданная как матрица. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то A n-by-n.

Типы данных: single | double

Матрица входа к состоянию в s - область, заданная как матрица. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то B n-by-p.

Типы данных: single | double

Состояние к выходной матрице в s - область, заданная как матрица. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то C q-by-n.

Типы данных: single | double

Проходная матрица в s - область, заданная как матрица. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то D q-by-p.

Типы данных: single | double

Совпадайте с частотой, заданной как положительная скалярная величина.

Выходные аргументы

свернуть все

Нули z - доменная передаточная функция, заданная как вектор-столбец.

Полюса z - доменная передаточная функция, заданная как вектор-столбец.

Усиление z - доменная передаточная функция, заданная как скаляр.

Коэффициенты числителя цифровой передаточной функции, заданной как вектор-строка.

Коэффициенты знаменателя цифровой передаточной функции, заданной как вектор-строка.

Матрица состояния в z - область, возвращенная как матрица. Если система описана переменными состояния n, то Ad n-by-n.

Типы данных: single | double

Матрица входа к состоянию в z - область, возвращенная как матрица. Если система описана переменными состояния n, то Bd n-by-1.

Типы данных: single | double

Состояние к выходной матрице в z - область, возвращенная как матрица. Если система имеет q выходные параметры и описана переменными состояния n, то Cd q-by-n.

Типы данных: single | double

Проходная матрица в z - область, возвращенная как матрица. Если система имеет q выходные параметры, то Dd q-by-1.

Типы данных: single | double

Диагностика

bilinear требует, чтобы порядок числителя был не больше, чем порядок знаменателя. Если дело обстоит не так, bilinear отображения

Numerator cannot be higher order than denominator.

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

First two arguments must have the same orientation.

Алгоритмы

свернуть все

Билинейное преобразование является математическим отображением переменных. В цифровой фильтрации это - стандартный метод отображения s или аналоговой плоскости в z или цифровой плоскости. Это преобразовывает аналоговые фильтры, спроектированные использующие классические методы создания фильтра, в их дискретные эквиваленты.

Билинейное преобразование сопоставляет s - плоскость в z - плоскость

H(z)=H(s)|s=2fsz1z+1.

Это преобразование сопоставляет j Ω ось (от Ω = – ∞ к + ∞) неоднократно вокруг модульного круга (ejw от ω = –π к π)

ω=2tan1(Ω2fs).

bilinear может принять дополнительный параметр Fp это задает предварительное деформирование. fp, в герц, указывает на частоту “соответствия”, то есть, частоту для который частотные характеристики до и после отображения соответствия точно. В предварительно деформированном режиме билинейное преобразование сопоставляет s - плоскость в z - плоскость с

H(z)=H(s)|s=2πfptan(πfpfs)z1z+1.

С предварительно деформирующейся опцией, bilinear сопоставляет j Ω ось (от Ω = – ∞ к + ∞) неоднократно вокруг модульного круга (ejω, от ω = –π к π)

ω=2tan1(Ωtan(πfpfs)2πfp).

В предварительно деформированном режиме, bilinear совпадает с частотой 2πfp (в радианах в секунду) в s - плоскости к нормированной частоте 2πfp/fs (в радианах в секунду) в z - плоскость.

bilinear функция работает с тремя различными представлениями линейной системы: нули, полюса и усиление, передаточная функция и форма пространства состояний.

bilinear использование один из двух алгоритмов в зависимости от формата входной линейной системы вы предоставляете. Один алгоритм работает над форматом нулей, полюсов и усиления и другим на формате пространства состояний. Для представлений передаточной функции, bilinear преобразует в форму пространства состояний, выполняет преобразование и преобразует получившуюся систему в пространстве состояний назад в форму передаточной функции.

Алгоритм нулей, полюсов и усиления

Для системы в форме нулей, полюсов и усиления, bilinear выполняет четыре шага:

  1. Если fp присутствует, это предварительно деформируется:

    fp = 2*pi*fp;
    fs = fp/tan(fp/fs/2)
    

    в противном случае,   fs = 2*fs.

  2. Это разделяет любые нули при ± использованиях ∞

    z = z(finite(z));
    
  3. Это преобразовывает нули, полюса и использование усиления

    pd = (1+p/fs)./(1-p/fs);    % Do bilinear transformation
    zd = (1+z/fs)./(1-z/fs);
    kd = real(k*prod(fs-z)./prod(fs-p));
    
  4. Это добавляет дополнительные нули в-1, таким образом, получившаяся система имеет эквивалентный числитель и порядок знаменателя.

Алгоритм пространства состояний

Аналоговой системой в форме пространства состояний дают

x˙=Ax+Buy=Cx+Du

. Эта система преобразована в дискретную форму с помощью уравнений пространства состояний можно следующим образом:

x[n+1]=Adx[n]+Bdu[n],y[n]     =Cdx[n]+Ddu[n].

Преобразовывать аналоговую систему в форме пространства состояний, bilinear выполняет два шага:

  1. Если fp присутствует, позволить

    λ=πfptan(πfp/fs).

    Если fp не присутствует, позвольте λ = fs.

  2. Вычислите Ad, BdCD, и Dd в терминах ABC, и D использование

    Ad=(IA12λ)1(I+A12λ),Bd=1λ(IA12λ)1B,Cd=1λC(IA12λ)1,Dd=12λC(IA12λ)1B+D.

Передаточная функция

Для системы в форме передаточной функции, bilinear преобразует s - доменная передаточная функция, данная num и den к дискретному эквиваленту. Векторы-строки num и den задайте коэффициенты числителя и знаменателя, соответственно, в убывающих степенях s. Позвольте B (s) быть полиномом числителя и A (s) быть полиномом знаменателя. Передаточная функция:

B(s)A(s)=B(1)sn++B(n)s+B(n+1)A(1)sm++A(m)s+A(m+1)

fs частота дискретизации в герц. bilinear возвращает дискретный эквивалент в векторах-строках numd и dend в убывающих степенях z (возрастающий степени z –1). fp дополнительная частота соответствия, в герц, для предварительного деформирования.

Ссылки

[1] Парки, Томас В. и К. Сидни Беррус. Создание цифровых фильтров. Нью-Йорк: John Wiley & Sons, 1987, стр 209–213.

[2] Оппенхейм, Алан V, Рональд В. Шафер и Джон Р. Бак. Обработка сигналов дискретного времени. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1999, стр 450–454.

Смотрите также

| | | |

Представлено до R2006a