invfreqz

Идентифицируйте параметры фильтра дискретного времени от данных о частотной характеристике

Синтаксис

[b,a] = invfreqz(h,w,n,m)
[b,a] = invfreqz(h,w,n,m,wt)
[b,a] = invfreqz(h,w,n,m,wt,iter)
[b,a] = invfreqz(h,w,n,m,wt,iter,tol)
[b,a] = invfreqz(h,w,n,m,wt,iter,tol,'trace')
[b,a] = invfreqz(h,w,'complex',n,m,...)

Описание

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

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

H(z)=B(z)A(z)=b(1)+b(2)z1++b(n+1)zna(1)+a(2)z1++a(m+1)zm

чья комплексная частотная характеристика дана в векторном h в точках частоты, заданных в векторном w. Скаляры n и m задают желаемые порядки полиномов знаменателя и числителя.

Частота задана в радианах между 0 и π, и длина h должна совпасть с длиной w. invfreqz использует conj (h) в -w, чтобы гарантировать соответствующую симметрию частотного диапазона для действительного фильтра.

[b,a] = invfreqz(h,w,n,m,wt) взвешивает подходящие ошибки по сравнению с частотой, где wt является вектором взвешивания факторов та же длина как w.

[b,a] = invfreqz(h,w,n,m,wt,iter) и

[b,a] = invfreqz(h,w,n,m,wt,iter,tol) предоставьте превосходящий алгоритм, который гарантирует устойчивость получившейся линейной системы и ищет лучшую подгонку с помощью числовой, итеративной схемы. Параметр iter говорит invfreqz заканчивать итерацию, когда решение сходилось, или после итераций iter, какой бы ни на первом месте. invfreqz задает сходимость как появление, когда норма (измененного) вектора градиента является меньше, чем tol, где tol является дополнительным параметром, это принимает значение по умолчанию к 0,01. Чтобы получить вектор веса из всех единиц, использовать

invfreqz(h,w,n,m,[],iter,tol)

[b,a] = invfreqz(h,w,n,m,wt,iter,tol,'trace') отображает текстовый отчет о выполнении работ итерации.

[b,a] = invfreqz(h,w,'complex',n,m,...) создает комплексный фильтр. В этом случае никакая симметрия не осуществляется, и частота задана в радианах между-π и π.

Примеры

свернуть все

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

a = [1 2 3 2 1 4];
b = [1 2 3 2 3];

[h,w] = freqz(b,a,64);
[bb,aa] = invfreqz(h,w,4,5)
bb = 1×5

    1.0000    2.0000    3.0000    2.0000    3.0000

aa = 1×6

    1.0000    2.0000    3.0000    2.0000    1.0000    4.0000

zplane(bb,aa)

bb и aa эквивалентны b и a, соответственно. Однако система нестабильна, потому что она имеет полюса вне модульного круга. Используйте итеративный алгоритм invfreqz, чтобы найти стабильное приближение к системе. Проверьте, что полюса в модульном кругу.

[bbb,aaa] = invfreqz(h,w,4,5,[],30)
bbb = 1×5

    0.2427    0.2788    0.0069    0.0971    0.1980

aaa = 1×6

    1.0000   -0.8944    0.6954    0.9997   -0.8933    0.6949

zplane(bbb,aaa)

Алгоритмы

По умолчанию invfreqz использует ошибочный метод уравнения, чтобы идентифицировать лучшую модель от данных. Это находит b и a в

minb,ak=1nwt(k)|h(k)A(w(k))B(w(k))|2

путем создания системы линейных уравнений и решения их с оператором MATLAB® \. Здесь A (ω (k)) и B (ω (k)) является преобразованиями Фурье полиномов a и b, соответственно, на частоте ω (k), и n является количеством точек частоты (длина h и w). Этот алгоритм на основе Леви [1].

Начальник (“ошибка на выходе”) алгоритм использует ослабленный метод Ньютона Гаусса для итеративного поиска [2] с выводом первого алгоритма как первоначальная оценка. Это решает прямую проблему минимизации взвешенной суммы квадратичной невязки между фактическим и желаемыми точками частотной характеристики.

minb,ak=1nwt(k)|h(k)B(w(k))A(w(k))|2

Ссылки

[1] Леви, E. C. “Комплексный Curve Fitting”. Транзакции IRE на Автоматическом управлении. Издание AC-4, 1959, стр 37–44.

[2] Деннис, J. E. младший, и Р. Б. Шнабель. Численные методы для неограниченной оптимизации и нелинейных уравнений. Englewood Cliffs, NJ: Prentice Hall, 1983.

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

| |

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