При произвольном частотном отклике, какие методы обработки сигналов могут существовать, которые могут угадать, оценить или определить передаточную функцию (полюсное и нулевое созвездие), которая дает «достаточно хорошее» приближение (для некоторых заданных критериев качества оценки) к данному заданному частотному отклику? Какие существуют средства для оценки числа полюсов и нулей, требуемого для данной передаточной функции плюс заданный допуск ошибки аппроксимации? Или как можно определить, что эти ограничения не могут быть выполнены, если это возможно?
Если данный частотный отклик фактически был получен известной передаточной функцией, будет ли какой-либо из этих методов сходиться к этой исходной передаточной функции? Как насчет того, чтобы данная частотная характеристика была подвержена (предполагаемым гауссовским) ошибкам измерения?
Предположим, что вы работаете в Z-плоскости с выборочным спектром, хотя ответы с непрерывной областью также могут быть интересны.
Добавлено: Методы решения отличаются, если дана только величина частотного отклика (например, разрешено решение с любым фазовым откликом)?
Добавлено: последняя проблема заключается в том, что меня больше всего интересует, учитывая известную амплитудную характеристику вокруг единичного круга, но неизвестную / неизмеренную фазовую характеристику, можно ли оценить измеренную систему, и если да, то при каких условиях?
Ответы:
Один из подходов заключается в использовании метода наименьших квадратов в частотной области (FDLS) . Учитывая набор (сложных) выборок частотной характеристики системы с дискретным временем и порядок фильтрации, выбранный разработчиком, метод FDLS использует линейную оптимизацию наименьших квадратов для решения для набора коэффициентов (которые отображаются непосредственно на наборы полюсов). и нули) для системы, частотный отклик которой соответствует желаемому отклику с минимальной общей квадратической ошибкой.
АЧХ линейной системы с дискретным временем порядка можно записать в виде:N
где - передаточная функция системы в области . Обычно это записывается в рациональном формате, который следует непосредственно из разностного уравнения системы:H(z) z
Частотная характеристика поэтому:
Переставьте выше, чтобы получить:
Это уравнение является линейным по неизвестным коэффициентам уравнения разности систем и . Учитывая желаемую частотную характеристику , мы хотели бы найти коэффициенты, которые удовлетворяют вышеуказанному уравнению точно для всех значений . Для общего случая это сложно. Поэтому вместо этого мы будем искать набор коэффициентов для системы, частотная характеристика которой аппроксимирует желаемую характеристику на дискретном наборе частот.2N+1 bk ak H(ω) ω
Чтобы найти подходящий набор коэффициентов с использованием метода линейных наименьших квадратов, мы генерируем переопределенную систему уравнений для этих неизвестных. Чтобы сгенерировать эти уравнения, выберите набор частот (где и часто . Для каждой частоты соответствующее значение в вышеприведенное уравнение, чтобы получить:ωm∈[0,2π),m=0,1,…,M−1 M>2N+1 M≫2N+1) ωk
Значения получаются путем выборки желаемой частотной характеристики на выбранных частотах . После генерации системы линейных уравнений легко получить решение методом наименьших квадратов для коэффициентов системы и (и, следовательно, ее полюсов и нулей). Если вы подставите эти коэффициенты обратно в уравнение для показанное выше, это должно (как мы надеемся) привести к функции, близкой к частотной характеристике шаблона, с которой вы начали.ω k b k a k H ( ω )H(ωk) ωk bk ak H(ω)
Эта техника имеет несколько преимуществ:
Любая произвольная комплексная (величина и фаза) частотная характеристика может использоваться в качестве шаблона. Если у вас есть только ограничение величины, вы можете просто выбрать фазовый отклик, например, линейную фазу.
Он может использоваться для разработки как FIR, так и IIR фильтров; для реализации FIR просто удалите коэффициенты из вышеприведенного.ak
Этот метод очень прост в реализации и легко параметризуется в зависимости от желаемого системного порядка.
Хотя не может быть хорошего способа априори оценить, какой требуемый системный порядок соответствует вашим проектным ограничениям, просто итеративно увеличивать порядок до тех пор, пока не будет достигнута некоторая выбранная метрика ошибки (например, пиковая ошибка, общая квадратичная ошибка, или отклонение в пределах определенной полосы).N
Вы можете немного расширить этот метод, чтобы при необходимости использовать взвешенную оптимизацию наименьших квадратов; это позволит вам указать области частотной характеристики, ошибка аппроксимации которой весит больше, чем другие. Это позволяет вам более жестко контролировать области полосы пропускания / полосы пропускания, в то же время позволяя больше наклона в зонах "безразличия".
источник
Мои коллеги добились отличных результатов с векторной подгонкой :
Мы используем его для преобразования FIR в IIR.
Для менее требовательных приложений вы можете просто использовать нелинейные наименьшие квадраты для фиксированного числа полюсов и нулей. Это реализовано в Matlab как
invfreqs
иinvfreqz
.источник
Другой подход: построите частотную характеристику и подгоните к ней график Боде как можно лучше. Это может быть сделано очень быстро для приблизительного решения или в некотором сложном смысле наименьших квадратов для лучшего соответствия. GTH
источник