билинейный

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

Синтаксис

[zd,pd,kd] = bilinear(z,p,k,fs)
[numd,dend] = bilinear(num,den,fs)
[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs)
[___] = bilinear(___,fp)

Описание

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

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

пример

[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs) преобразовывает непрерывно-разовую систему пространства состояний в матрицах A, B, C и 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)

Разработайте 6-й порядок эллиптический аналог lowpass фильтр с 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 от ω = –π к π)

ω=2загар1(Ω2fs).

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

H(z)=H(s)|s=2πfpзагар(πfpfs)z1z+1.

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

ω=2загар1(Ωзагар(π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 присутствует, позволить

    λ=πfpзагар(πfp/fs).

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

  2. Вычислите Ad, Bd, Cd и Dd с точки зрения A, B, C и использования 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