Как оценить передаточную функцию по частотной характеристике только по амплитуде?

11

При произвольном частотном отклике, какие методы обработки сигналов могут существовать, которые могут угадать, оценить или определить передаточную функцию (полюсное и нулевое созвездие), которая дает «достаточно хорошее» приближение (для некоторых заданных критериев качества оценки) к данному заданному частотному отклику? Какие существуют средства для оценки числа полюсов и нулей, требуемого для данной передаточной функции плюс заданный допуск ошибки аппроксимации? Или как можно определить, что эти ограничения не могут быть выполнены, если это возможно?

Если данный частотный отклик фактически был получен известной передаточной функцией, будет ли какой-либо из этих методов сходиться к этой исходной передаточной функции? Как насчет того, чтобы данная частотная характеристика была подвержена (предполагаемым гауссовским) ошибкам измерения?

Предположим, что вы работаете в Z-плоскости с выборочным спектром, хотя ответы с непрерывной областью также могут быть интересны.

Добавлено: Методы решения отличаются, если дана только величина частотного отклика (например, разрешено решение с любым фазовым откликом)?

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

hotpaw2
источник
Вы пытаетесь аппроксимировать произвольный частотный отклик как рациональный спектр? То есть (b [0] + b [1] z ^ -1 ...) / (1 + a [1] z ^ -1 ...)? Если это так, это обычно называется моделированием ARMA. Это сложнее, чем моделирование AR, поскольку автокорреляция сигнала имеет тенденцию быть нелинейно связанной с коэффициентами скользящего среднего (b [] или нули). Если мое предположение верно, я могу написать более формальный ответ.
Брайан
@ Брайан: Да. Я пытался предположить, что путем указания «полюса и нуля» решение (рациональная передаточная функция) было бы подходящим (желательно, только если оно лучше, чем все полюс или все нулевое решение / оценка той же степени).
hotpaw2
Какое значение придается частотной характеристике ? Некоторые люди различают функцию частотной характеристики или и передаточную функцию а некоторые - нет. См., Например, обсуждение после этого ответа на предыдущий вопрос. H ( f ) H ( s )H(ω)H(f)H(s)
Дилип Сарватэ
@Dilip Sarwate: Учитывая H (w) только для единичного круга (это избыточно?), Решите / оцените полное представление z-плоскости. Надеюсь, это согласуется с моим первоначальным изложением вопроса.
hotpaw2
1
Ваше дополнение меняет вещи. Поляки и нули могут меняться, а величина реакции остается неизменной. Наиболее распространенным примером этого является проект минимального фазового фильтра. Обычно это включает в себя взятие существующей системы и отражение полюсов и нулей внутри круга устройства. Это только изменяет фазовый отклик, но не амплитудный отклик.
Брайан

Ответы:

14

Один из подходов заключается в использовании метода наименьших квадратов в частотной области (FDLS) . Учитывая набор (сложных) выборок частотной характеристики системы с дискретным временем и порядок фильтрации, выбранный разработчиком, метод FDLS использует линейную оптимизацию наименьших квадратов для решения для набора коэффициентов (которые отображаются непосредственно на наборы полюсов). и нули) для системы, частотный отклик которой соответствует желаемому отклику с минимальной общей квадратической ошибкой.

АЧХ линейной системы с дискретным временем порядка можно записать в виде:N

H(ω)=H(z)|z=ejω

где - передаточная функция системы в области . Обычно это записывается в рациональном формате, который следует непосредственно из разностного уравнения системы:H(z)z

H(z)=k=0Nbkzk1+k=1Nakzk

Частотная характеристика поэтому:

H(ω)=k=0Nbkejkω1+k=1Nakejkω

Переставьте выше, чтобы получить:

k=0NbkejkωH(ω)(1+k=1Nakejkω)=0

Это уравнение является линейным по неизвестным коэффициентам уравнения разности систем и . Учитывая желаемую частотную характеристику , мы хотели бы найти коэффициенты, которые удовлетворяют вышеуказанному уравнению точно для всех значений . Для общего случая это сложно. Поэтому вместо этого мы будем искать набор коэффициентов для системы, частотная характеристика которой аппроксимирует желаемую характеристику на дискретном наборе частот.2N+1bkakH(ω)ω

Чтобы найти подходящий набор коэффициентов с использованием метода линейных наименьших квадратов, мы генерируем переопределенную систему уравнений для этих неизвестных. Чтобы сгенерировать эти уравнения, выберите набор частот (где и часто . Для каждой частоты соответствующее значение в вышеприведенное уравнение, чтобы получить:ωm[0,2π),m=0,1,,M1M>2N+1M2N+1)ωk

k=0NbkejkωkH(ωk)(1+k=1Nakejkωk)=0

Значения получаются путем выборки желаемой частотной характеристики на выбранных частотах . После генерации системы линейных уравнений легко получить решение методом наименьших квадратов для коэффициентов системы и (и, следовательно, ее полюсов и нулей). Если вы подставите эти коэффициенты обратно в уравнение для показанное выше, это должно (как мы надеемся) привести к функции, близкой к частотной характеристике шаблона, с которой вы начали.ω k b k a k H ( ω )H(ωk)ωkbkakH(ω)

Эта техника имеет несколько преимуществ:

  • Любая произвольная комплексная (величина и фаза) частотная характеристика может использоваться в качестве шаблона. Если у вас есть только ограничение величины, вы можете просто выбрать фазовый отклик, например, линейную фазу.

  • Он может использоваться для разработки как FIR, так и IIR фильтров; для реализации FIR просто удалите коэффициенты из вышеприведенного.ak

  • Этот метод очень прост в реализации и легко параметризуется в зависимости от желаемого системного порядка.

  • Хотя не может быть хорошего способа априори оценить, какой требуемый системный порядок соответствует вашим проектным ограничениям, просто итеративно увеличивать порядок до тех пор, пока не будет достигнута некоторая выбранная метрика ошибки (например, пиковая ошибка, общая квадратичная ошибка, или отклонение в пределах определенной полосы).N

Вы можете немного расширить этот метод, чтобы при необходимости использовать взвешенную оптимизацию наименьших квадратов; это позволит вам указать области частотной характеристики, ошибка аппроксимации которой весит больше, чем другие. Это позволяет вам более жестко контролировать области полосы пропускания / полосы пропускания, в то же время позволяя больше наклона в зонах "безразличия".

Джейсон Р
источник
1
Отличный ответ !! «Искусство» создания фильтров с наименьшей квадратной ошибкой - правильно определить, что именно является «ошибкой». Это контролируется путем выбора правильной частотной сетки, весовых коэффициентов на определенных частотах и ​​добавления дополнительных ограничений для внеполосного поведения, а также для удержания ваших полюсов внутри круга.
Хильмар,
Проблема с этим потенциальным решением состоит в том, что, если фаза неизвестна о существующей передаточной функции, FDLS может сходиться к неправильному решению, если предполагается неправильная фаза, независимо от того, насколько точно правильно угадан порядок или измерен отклик величины.
hotpaw2
@ hotpaw2: Этого следовало ожидать. Если вы ничего не знаете о фазовом отклике, то существует бесконечное количество решений, которые одинаково действительны (т.е. они будут иметь правильную амплитуду отклика). Вам понадобится некоторая информация, чтобы направить вас к тому, что вы считаете наиболее подходящим решением.
Джейсон Р
@JasonR: Единственными правильными решениями должны быть перестановки переворачивания полюсов / нулей внутри / снаружи, что является конечным числом для любой (существующей) системы конечного порядка.
hotpaw2
6

Мои коллеги добились отличных результатов с векторной подгонкой :

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

Мы используем его для преобразования FIR в IIR.

Для менее требовательных приложений вы можете просто использовать нелинейные наименьшие квадраты для фиксированного числа полюсов и нулей. Это реализовано в Matlab как invfreqsи invfreqz.

nibot
источник
0

Другой подход: построите частотную характеристику и подгоните к ней график Боде как можно лучше. Это может быть сделано очень быстро для приблизительного решения или в некотором сложном смысле наименьших квадратов для лучшего соответствия. GTH

Г. Хейдт
источник