MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\Signal Processing Toolbox

Список функций Signal Processing Toolbox: Дискретизация фильтров

  В оглавление \ К следующему разделу \ К предыдущему разделу

BILINEAR

Синтез дискретного фильтра по аналоговому прототипу методом билинейного z-преобразования

Синтаксис:

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

Описание:

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

Билинейное преобразование отображает s-плоскость в z-плоскость по следующему закону:

Такое преобразование отображает мнимую ось jΩ на аналоговой плоскости (при Ω= - …+ ) в бесконечное множество витков вдоль единичной окружности (e при ω= -) на дискретной плоскости по следующему закону:

Функция bilinear может принимать дополнительный входной параметр fp, который позволяет управлять предыскажением частотной оси. Параметр fp, задаваемый в герцах, задает "частоту совпадения", то есть частоту, на которой частотные характеристики исходной аналоговой и полученной дискретной систем будут в точности совпадать. При использовании предыскажения билинейное преобразование производится по следующему закону:

При использовании предыскажения билинейное преобразование отображает мнимую ось jΩ на аналоговой плоскости (при Ω= - …+ ) в бесконечное множество витков вдоль единичной окружности (e при ω= -) на дискретной плоскости по следующему закону:

При использовании предыскажения комплексный коэффициент передачи аналоговой системы на круговой частоте 2fp радиан в секунду равен комплексному коэффициенту передачи дискретной системы на нормированной частоте 2fp/fs радиан на отсчет.

Функция bilinear позволяет преобразовывать аналоговые системы, заданные тремя способами:

  • в виде коэффициента усиления и наборов нулей и полюсов функции передачи;
  • в виде коэффициентов числителя и знаменателя функции передачи;
  • в виде параметров пространства состояний.

Нули, полюсы и коэффициент усиления (Zero-Pole-Gain)

Варианты синтаксиса

[zd,pd,kd] = bilinear(z,p,k,fs)

и

[zd,pd,kd] = bilinear(z,p,k,fs,fp)

преобразуют аналоговую систему, заданную параметрами z, p и k, в ее дискретный эквивалент. Входные параметры z и p должны быть векторами-столбцами, содержащими значения нулей и полюсов, а параметр k задает скалярный коэффициент усиления системы. Параметр fs задает частоту дискретизации в герцах. Функция bilinear возвращает дискретный эквивалент системы в виде векторов нулей zd и полюсов pd, а также скалярного коэффициента передачи kd. Необязательный входной параметр fp задает частоту (в герцах) совпадения частотных характеристик и используется для предыскажения частотной оси.

Коэффициенты полиномов числителя и знаменателя функции передачи (Transfer Function)

Варианты синтаксиса

[numd,dend] = bilinear(num,den,fs)

и

[numd,dend] = bilinear(num,den,fs,fp)

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

Параметр fs задает частоту дискретизации в герцах. Функция bilinear возвращает дискретный эквивалент системы в виде векторов коэффициентов полиномов числителя numd и знаменателя dend ее функции передачи. Векторы содержат коэффициенты полиномов в порядке убывания степеней переменной z. Необязательный входной параметр fp задает частоту (в герцах) совпадения частотных характеристик и используется для предыскажения частотной оси.

Параметры пространства состояния (State-Space)

Варианты синтаксиса

[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs)

и

[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs,fp)

преобразуют аналоговую систему, заданную параметрами пространства состояния A, B, C и D:

в ее дискретный эквивалент:

Параметр fs задает частоту дискретизации в герцах. Функция bilinear возвращает дискретный эквивалент системы в виде параметров пространства состояния, представленных матрицами Ad, Bd, Cd и скаляром Dd. Необязательный входной параметр fp задает частоту (в герцах) совпадения частотных характеристик и используется для предыскажения частотной оси.

Алгоритм

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

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

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

  1. Если задан параметр fp, производится предыскажение частотной оси:

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

    Если же параметр fp не задан, то

    fs = 2*fs;
  2. Удаляются нули, равные ± :

    z = z(finite(z));
  3. Нули, полюсы и коэффициент усиления трансформируются следующим образом:

    pd = (1+p/fs)./(1-p/fs); zd = (1+z/fs)./(1-z/fs); kd = real(k*prod(fs-z)./prod(fs-p));
  4. Добавляются дополнительные нули, равные -1, чтобы полученная дискретная система имела одинаковые порядки числителя и знаменателя функции передачи.

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

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

  1. Если задан параметр fp, производится предыскажение частотной оси:

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

    Если же параметр fp не задан, то

    k = 2*fs;
  2. Параметры дискретной системы Ad, Bd, Cd и Dd вычисляются по заданным параметрам аналоговой системы A, B, C и D с использованием следующих формул:



    Функция bilinear реализует эти формулы с использованием стандартных средств ядра MATLAB. Скаляр r может иметь произвольное значение; функция bilinear принимает его равным , чтобы уменьшить влияние шума квантования при цифровой реализации полученной дискретной системы.

Диагностические сообщения

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

Numerator cannot be higher order than denominator.

Функция различает входные параметры, задающие нули и полюсы, и параметры, задающие коэффициенты полиномов функции передачи, по ориентации соответствующих векторов (нули и полюсы должны быть векторами-столбцами, а коэффициенты полиномов - векторами-строками). Поэтому, если первые два входных параметра являются векторами, они должны иметь одинаковую ориентацию. В противном случае функция выдает следующее сообщение об ошибке:

First two arguments must have the same orientation.

Сопутствующие функции: impinvar, lp2bp, lp2bs, lp2hp, lp2lp

Литература

  1. Parks, T. W., and C. S. Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987, pp. 209-213.
  2. Oppenheim, A. V., and R. W. Schafer. Discrete-Time Signal Processing. Upper Saddle River, NJ: Prentice-Hall, 1999, pp. 450-454.

  В оглавление\ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика