Я согласен с тем, что метод проектирования оконного фильтра больше не является одним из наиболее важных методов проектирования, и, возможно, это действительно тот случай, когда он широко представлен в традиционных учебниках, возможно, по историческим причинам.
Тем не менее, я думаю, что его использование может быть оправдано в определенных ситуациях. Я не согласен, что вычислительная сложность больше не проблема. Это зависит от платформы. Сидя за настольным компьютером и проектируя фильтр, нам действительно не нужно беспокоиться о сложности. Тем не менее, на конкретных платформах и в ситуациях, когда проектирование должно быть выполнено в квазиреальном времени, сложность вычислений является проблемой, и простой субоптимальный метод проектирования будет предпочтительнее оптимального метода, который является гораздо более сложным. В качестве примера я однажды работал над системой формирования луча, в которой фильтр (формирователь луча) нужно было бы переделывать на лету, поэтому сложность вычислений действительно была проблемой.
Я также убежден, что во многих практических ситуациях нам не нужно беспокоиться о разнице между оптимальным и неоптимальным дизайном. Это становится еще более верным, если нам нужно использовать арифметику с фиксированной точкой с квантованными коэффициентами и квантованными результатами арифметических операций.
Другой проблемой является численная стабильность оптимальных методов проектирования фильтров и их реализации. Я сталкивался с несколькими случаями, когда алгоритм Паркс-Макклеллана (я должен сказать, реализация, которую я использовал) просто не сходился. Это произойдет, если спецификация не имеет особого смысла, но это также может произойти с совершенно разумными спецификациями. То же самое верно для метода расчета наименьших квадратов, где необходимо решить систему линейных уравнений, что может стать плохо обусловленной проблемой. При этих обстоятельствах метод окон никогда не подведет вас.
Замечание о вашем сравнении между методом окна и дизайном наименьших квадратов: я не думаю, что это сравнение показывает какое-либо общее превосходство метода наименьших квадратов над методом окон. Во-первых, вы, похоже, смотрите на затухание в полосе задержек, что не является целью проектирования ни для одного из двух методов. Метод управления окнами не является оптимальным в каком-либо смысле, а конструкция наименьших квадратов минимизирует энергию полосы останова и совершенно не заботится о размере пульсации полосы останова. Что можно увидеть, так это то, что край полосы пропускания в дизайне окна больше, чем в схеме наименьших квадратов, тогда как край полосы пропускания меньше. Следовательно, ширина полосы пропускания фильтра, разработанного для работы с окнами, меньше, что приведет к более высокой пульсации полосы останова. Разница в ширине полосы перехода может быть небольшой, но свойства фильтра очень чувствительны к этому параметру. Нет сомнений, что фильтр наименьших квадратов превосходит другой фильтр, когда речь идет об остановке энергии полосы, но это не так легко увидеть, как размер пульсации. И остается вопрос, будет ли это различие иметь практическое применение.
Позвольте мне показать вам, что такие сравнения часто можно сделать так, чтобы они выглядели так, как хотелось бы. На рисунке ниже я сравниваю фильтр нижних частот оптимального firls.m
метода наименьших квадратов, разработанный с помощью функции Matlab / Octave (синий), с фильтром нижних частот, разработанным с помощью метода окна с использованием окна Кайзера (красный).
Из рисунка можно даже сделать вывод, что фильтр, созданный с помощью управления окнами, немного лучше, чем оптимальный метод наименьших квадратов. Это, конечно, бессмысленно, потому что мы даже не определили «лучше», а фильтр наименьших квадратов должен иметь меньшую среднеквадратичную ошибку аппроксимации. Однако вы не видите этого прямо на рисунке. Во всяком случае, это просто для того, чтобы поддержать мое утверждение о том, что при таких сравнениях нужно быть очень осторожным и ясным.
В целом, помимо того, что полезно учиться для студентов DSP по чисто дидактическим причинам, я думаю, что, несмотря на технологические достижения с 1970-х годов, использование метода управления окнами может быть оправдано в определенных практических сценариях, и я не думаю, что это будет изменить очень скоро.
firpm()
tofirls()
.