prony

Метод Prony для создания фильтра

Синтаксис

Описание

пример

[b,a] = prony(h,bord,aord) возвращает числитель и коэффициенты знаменателя для причинной рациональной передаточной функции с импульсной характеристикой h, порядок числителя bord, и знаменатель заказывает aord.

Примеры

свернуть все

Подбирайте 4-й порядок модель IIR к импульсной характеристике фильтра lowpass. Постройте исходные и Prony-спроектированные импульсные характеристики.

d = designfilt('lowpassiir','NumeratorOrder',4,'DenominatorOrder',4, ...
    'HalfPowerFrequency',0.2,'DesignMethod','butter');

h = filter(d,[1 zeros(1,31)]);
bord = 4;
aord = 4;
[b,a] = prony(h,bord,aord);

subplot(2,1,1) 
stem(impz(b,a,length(h)))
title 'Impulse Response with Prony Design'

subplot(2,1,2)
stem(h)
title 'Input Impulse Response'

Figure contains 2 axes objects. Axes object 1 with title Impulse Response with Prony Design contains an object of type stem. Axes object 2 with title Input Impulse Response contains an object of type stem.

Подбирайте 10-й порядок модель FIR к импульсной характеристике фильтра highpass. Постройте исходные и Prony-спроектированные частотные характеристики. Ответы соответствуют к высокой точности.

d = designfilt('highpassfir','FilterOrder',10,'CutoffFrequency',0.8);

h = filter(d,[1 zeros(1,31)]);
bord = 10;
aord = 0;
[b,a] = prony(h,bord,aord);

fvt = fvtool(b,a,d);
legend(fvt,'Prony','Original')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains 2 objects of type line. These objects represent Prony, Original.

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

свернуть все

Импульсная характеристика в виде вектора.

Пример: impz(fir1(20,0.5)) задает импульсную характеристику КИХ-фильтра 20-го порядка с нормированной частотой среза π/2 рад/отсчет.

Типы данных: single | double
Поддержка комплексного числа: Да

Числитель и знаменатель заказывают в виде положительных целочисленных скаляров. Если длина h меньше макс. (bord, aord), функция заполняет импульсную характеристику нулями.

  • Если вы хотите передаточную функцию все-полюса, задаете bord как 0.

  • Если вы хотите все-нулевую передаточную функцию, задаете aord как 0.

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

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

свернуть все

Коэффициенты передаточной функции, возвращенные как векторы. b имеет длину bord + 1 и a имеет длину aord + 1.

Больше о

свернуть все

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

transfer function является Z-преобразование импульсной характеристики h [n]:

H(z)=n=h(n)zn.

rational transfer function является отношением полиномов в z–1. Это уравнение описывает причинную рациональную передаточную функцию порядка числителя, который q и знаменатель заказывают p:

H(z)=B(z)A(z)=k=0qb(k)zk1+l=1pa(l)zl,

где a [0] = 1.

Ссылки

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

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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