реклама на сайте
подробности

 
 
> Оконная функция с нужной АЧХ
ivan219
сообщение Jan 10 2012, 20:16
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 16-11-08
Пользователь №: 41 680



Как создать оконную функцию с нужной мне АЧХ???
Это экспериментально теоретический вопрос.
АЧХ нужна в виде параболы.

Сообщение отредактировал ivan219 - Jan 10 2012, 20:19
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
AndeyP
сообщение Jan 11 2012, 07:20
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 25-06-06
Пользователь №: 18 344



Методом наименьших квадратов: в частотной области берется сетка w_k на порядок "плотнее" чем окно, на ней задается целевая функция target_k, и решается переопределенная система, примерно такого вида:
target_k = sum_i(cos(i*w_k)*coeff_i)), где число заданных пар [target_k, w_k] на порядок больше числа искомых coeff_i. Необязательно брать равномерную сетку: например для обычного окна можно взять нулевую частоту и полосу подавления, игнорируя главный лепесток.
Если добавить веса для целевой функции, то этот метод можно существенно усилить, вплоть до того, что критерий минимизации квадратов ошибки (L-2) комбинируется с каким-то другим, например L-inf, как при Чебышевской интерполяции. Для последнего случая рабочий матлаб код можно взять из Mathias Lang, “Algorithms for the Constrained Design of Digital Filters with Arbitrary Magnitude and Phase Responses”.
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Jan 11 2012, 08:29
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Оконная функция - это импульсная характеристика, длина которой равна размерности БПФ.
Задаем требуемую АЧХ, параболическую, например, в виде массива длиной БПФ, берем от нее обратный БПФ и получаем требуемую импульсную характеристику, или оконную функцию, как хотите.
В матлабе проделать этот фокус - две секунды sm.gif
Go to the top of the page
 
+Quote Post
ivan219
сообщение Jan 11 2012, 11:44
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 16-11-08
Пользователь №: 41 680



AndeyP спасибо но если не затруднит более по подробнее с матлабом не дружу. Желательно чистый алгоритм с разъяснением.
soldat_shveyk проделал такое но результат скорее похож на ИХ КИХ фильтра чем на оконные функции.
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Jan 11 2012, 12:56
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
проделал такое но результат скорее похож на ИХ КИХ фильтра чем на оконные функции.


Это вопрос понимания.
Оконная функция и импульсная характеристика это одно и то же.
Гребенки фильтров на основе БПФ основаны как раз на том, что вместо привычной всем оконной функции Ханна или Блэкмана ставится ИХ КИХ-фильтра.
Просто в книгах по ЦОС, особенно в рускоязычных, запудрили всем голову что оконная функция - это нечто особенное sm.gif

Go to the top of the page
 
+Quote Post
AndeyP
сообщение Jan 11 2012, 19:08
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 25-06-06
Пользователь №: 18 344



soldat_shveyk прав в том что поскольку АЧХ окна является приближением к дельта-функции, то окно можно рассматривать и рассчитывать как НЧ КИХ фильтр, который подавляет все частоты кроме постоянной составляющей. Вот только если бы можно было в частотной области нарисовать произвольный отклик, то вообще не надо было бы париться с книгами по ЦОС. Как правило, удается получить только приближение к желаемому отклику. При использовании МНК для этого составляется система уравнений A X = Y, где X – вектор искомых коэффициентов окна во временной области, А – матрица с N столбцами и M строками. N = длина окна, M выбирается примерно на порядок больше N.

Каждая строка матрицы А вычисляет частотный отклик на одной из M заданных частот. Иными словами, она переводит вектор X из временной области в частотную. Поскольку искомое окно X обладает четной симметрией, можно ограничиться только косинусами, в этом случае желаемый отклик Y определяется действительными числами.
Элемент матрицы А на пересечении строки r и столбца c зависит только от нужной частоты, и равен cos((c+0.5*N) * freq[r]); где частота строки freq[r] задается в радианах. Например, при равномерной сетке freq[r] = PI*r/M (здесь используется симметрия в частотной области – в уравнениях участвуют только положительные частоты). В принципе можно также использовать симметрию окна во временной области, но в этом случае четные и нечетные N будут обрабатываться немного по разному, проще считать все окно, сдвинутое так, чтобы середина приходилась на 0, для чего добавляем (+0.5*N).

Если какая-то частота более «важна» чем другие, каждый элемент строки, соответствующей этой частоте, и соответствующий отклик Y[r] умножаются на соответствующий «важности» вес > 1.

Система решается стандартными численными методами, в результате получается вектор X, с частотным откликом, максимально близким к заданному Y в смысле наименьших квадратов. Если полученный отклик не удовлетворяет каким-то дополнительным ограничениям, можно повторить всю процедуру, увеличив вес тех частот, на которых отклик выходит за ограничения.

По возможности, систему лучше решать через ортогональные преобразования: при увеличении уровня подавления обусловленность системы может ухудшиться. В качестве грубой прикидки могу сказать что даблов хватает на 60-90 дБ при использовании нормальных уравнений и больше 150 дБ при QR преобразовании.
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Jan 12 2012, 06:44
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
Вот только если бы можно было в частотной области нарисовать произвольный отклик, то вообще не надо было бы париться с книгами по ЦОС. Как правило, удается получить только приближение к желаемому отклику.


Совершенно справедливо заметили.
Если нарисовать АЧХ идеального прямоугольного фильтра, и взять от него обратное ДПФ конечной длины, то получившаяся импульсная характеристика не даст идеально прямоугольной АЧХ.
Чтобы это получить нужно бесконечное количество точек ДПФ. Природу не обманешь. Чем "круче" изогнем функцию в частотной области, тем большую дину получим во временной области.
Go to the top of the page
 
+Quote Post
ivan219
сообщение Jan 17 2012, 14:22
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 16-11-08
Пользователь №: 41 680



Спасибо.
Боле мене понятно.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016