Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Корекция АЧХ
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ToR_TDA
Здравствуйте форумчане!
Некоторое время бьюсь над задачей коррекции аналогового сигнала цифровым фильтром КИХ. Столкнулся с рядом трудностей и не до конца понимаю, как подобные задачи решаются. Суть задачи рассчитать коэффициенты КИХ фильтра(ов) для получения желаемой АЧХ из заданной. Скорость выборок входного сигнала ≈500нс (2.048МГц). Количество коэффициентов ограничено: сейчас 14 коэф, возможно при оптимизации кода получится 15-16. На рисунке представляю суть проблемы. Канал1, канал2 - варианты заданной АЧХ. Кор1, Кор2 - ачх корректоров. Сейчас правильно работающую систему я получил при сочетании Канала2, Кор2 и ФНЧ2 (применяется два КИХ фильтра). Вопрос в том, как оперативно и точно рассчитывать все коэф.
ToR_TDA
Цитата(des00 @ Sep 15 2011, 11:59) *

Спасибо, читал эту статью. Такие эквалайзеры будут эффективны при устранении неравномерности в полосе пропускания. В моем случае АЧХ имеет условно равномерный спад к высоким частотам, и применение такого рода коррекции боюсь малоэффективно. Особенно если учесть серьезные ограничения в вычислительной мощности.
bahurin
Насколько стабильны характеристики каналов? Можно ли один раз рассчитать корректор или надо в реальном времени вести подстройку? ь

Если у вас есть измеренная АЧХ Hm(w) и идеальная АЧХ H0(w), то АЧХ фильтра корректора H(w) = H0(w) / Hm(w). Т.о. вы получили АЧХ фильтра корректора. Разумеется в измеренной АЧХ не должно быть нулей, иначе все будет разваливаться. Судя по вашим картинкам проблем быть не должно, т.к. АЧХ каналов монотонно падают. Для расчета КИХ фильтра надо помимо АЧХ задать ФЧХ. Можно задать линейную ФЧХ и считать КИХ фильтр корректор методом частотной выборки. Разумеется необходимо потом взвесить окном.
ToR_TDA
Цитата(bahurin @ Sep 15 2011, 12:21) *
Насколько стабильны характеристики каналов? Можно ли один раз рассчитать корректор или надо в реальном времени вести подстройку? ь

Подстройка в реальном времени желательна, но реализация ее сильно затруднена текущими вычислительными возможностями. Таким образом, канал во время работы считается стабильным, но при необходимости его характеристика может быть измерена повторно и произведена перенастройка.
Цитата(bahurin @ Sep 15 2011, 12:21) *
Если у вас есть измеренная АЧХ Hm(w) и идеальная АЧХ H0(w), то АЧХ фильтра корректора H(w) = H0(w) / Hm(w). Т.о. вы получили АЧХ фильтра корректора. Разумеется в измеренной АЧХ не должно быть нулей, иначе все будет разваливаться. Судя по вашим картинкам проблем быть не должно, т.к. АЧХ каналов монотонно падают. Для расчета КИХ фильтра надо помимо АЧХ задать ФЧХ. Можно задать линейную ФЧХ и считать КИХ фильтр корректор методом частотной выборки. Разумеется необходимо потом взвесить окном.

Я пытался применить для своей задачи алгоритм вычисления коэффициентов методом Ремеза в Matlab, но из-за малого числа допустимых коэффициентов и сложного характера АЧХ (на некоторых участках) это не увенчалось успехом. Я не уверен, что подход аппроксимации к желаемой АЧХ корректора применим здесь. Неравномерность, требуемая в полосе 8-128кГц, составляет ±0.1Дб в полосе 128-256кГц ±1Дб, подавление в полосе заграждения должно быть максимальное исходя из выполнения первых 2х условий.
des00
А если сделать IIR эквалайзер с адаптацией по RLS алгоритму например ?
bahurin
Цитата(ToR_TDA @ Sep 15 2011, 13:25) *
из-за малого числа допустимых коэффициентов и сложного характера АЧХ (на некоторых участках) это не увенчалось успехом. Я не уверен, что подход аппроксимации к желаемой АЧХ корректора применим здесь. Неравномерность, требуемая в полосе 8-128кГц, составляет ±0.1Дб в полосе 128-256кГц ±1Дб, подавление в полосе заграждения должно быть максимальное исходя из выполнения первых 2х условий.


1. Почему не увенчалось успехом? Не удалось сделать ifft в матлабе и умножить на окно?
2. Увеличивая длину фильтра и применяя окно Кайзера вы сможете добиться требуемых характеристик.
petrov
Цитата(ToR_TDA @ Sep 15 2011, 11:25) *
Здравствуйте форумчане!
Некоторое время бьюсь над задачей коррекции аналогового сигнала цифровым фильтром КИХ. Столкнулся с рядом трудностей и не до конца понимаю, как подобные задачи решаются. Суть задачи рассчитать коэффициенты КИХ фильтра(ов) для получения желаемой АЧХ из заданной. Скорость выборок входного сигнала ≈500нс (2.048МГц). Количество коэффициентов ограничено: сейчас 14 коэф, возможно при оптимизации кода получится 15-16. На рисунке представляю суть проблемы. Канал1, канал2 - варианты заданной АЧХ. Кор1, Кор2 - ачх корректоров. Сейчас правильно работающую систему я получил при сочетании Канала2, Кор2 и ФНЧ2 (применяется два КИХ фильтра). Вопрос в том, как оперативно и точно рассчитывать все коэф.


http://lord-n.narod.ru/walla.html#uidrouAOC
Адаптивная Обработка Сигналов - Уидроу, Стирнз

стр. 195
ToR_TDA
Цитата(bahurin @ Sep 15 2011, 14:34) *
1. Почему не увенчалось успехом? Не удалось сделать ifft в матлабе и умножить на окно?
2. Увеличивая длину фильтра и применяя окно Кайзера вы сможете добиться требуемых характеристик.

При расчете коэффициентов КИХ методом частотной выборки, описанной в статье, производится дискретизация комплексного коэффициента передачи на равностоящей сетке частот. Таким образом, если принять, что задержки в фильтре равны ≈1мкс (1.024МГц), а кол-во коэф. равно 16, то в интересующей меня полосе коррекции 8 - 256кГц окажутся только 4 узла дискретизации.
При таком подходе приближение к моим параметрам осуществилось бы при увеличении числа коэф. до 100.
ToR_TDA
Цитата(des00 @ Sep 15 2011, 14:11) *
А если сделать IIR эквалайзер с адаптацией по RLS алгоритму например ?

Безусловно, БИХ фильтр более эффективен при одинаковом числе коэффициентов чем КИХ, но, к сожалению, он имеет целый ряд недостатков которые не позволяют мне его использовать. Недопустимо бы возросли требования к разрядности коэффициентов, проблема устойчивости, переполнение аккумулятора и т.д. БИХ имеют лучшие показатели при проектировании типовых фильтров, а для моей задачи с АЧХ по точкам они малопригодны.
По поводу адаптации по RLS можно сказать, что программа расчета и обновления коэффициентов займет все вычислительное время, что у меня есть и его не останется на саму свертку. Хотя читал про интересные варианты LMS с переменным шагом сходимости.
Alexey Lukin
Цитата(ToR_TDA @ Sep 15 2011, 23:08) *
При расчете коэффициентов КИХ методом частотной выборки, описанной в статье, производится дискретизация комплексного коэффициента передачи на равностоящей сетке частот.

Именно так. Для тонкой коррекции в указанном частотном диапазоне нужны длинные КИХ-фильтры. Ремез вам существенно не поможет, т.к. частотное разрешение КИХ-фильтра зависит от его длины, а не от способа проектирования.
ToR_TDA
Цитата(Alexey Lukin @ Sep 16 2011, 08:44) *
Для тонкой коррекции в указанном частотном диапазоне нужны длинные КИХ-фильтры. Ремез вам существенно не поможет, т.к. частотное разрешение КИХ-фильтра зависит от его длины, а не от способа проектирования.

Полностью согласен. Путь по которому пошел я это создание нелинейно фазового корректора. Малым числом коэффициентов мы устраняем большое затухание АЧХ на высоких, если оно равномерно. В этой статье похожая идея.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.