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

 
 
 
Reply to this topicStart new topic
> Цифровая коррекция АЧХ, что-то типа цифрового фильтра, Необходимо скорректировать АЧХ аналоговой схемы в цифре
MSP430F
сообщение Jun 11 2014, 11:41
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Всем доброго времени суток!
Коллеги, помогите пожалуйста. Такая вот задача.
Реализовал в цифре полосовой фильтр 50-250 Гц с крутизной спада -50 дБ/октава с пульсацией в полосе пропускания 0,15 дБ и срезом на границах полосы пропускания на этом же уровне (ФНЧ с частотой среза 250 Гц + ФВЧ с частотой среза 50 Гц). Частота дискретизации = 1250 выб/с. И тут выясняется, что аналоговая часть схемы, с которой на АЦП приходит сигнал имеет АЧХ как на рисунке ниже.



В цифрах это выглядит так:
F, Гц A, дБ
50 -1.072
60 -0.726
70 -0.502
80 -0.352
90 -0.242
100 -0.165
110 -0.107
120 -0.066
130 -0.036
140 -0.016
150 -0.004
160 0.000
До 250 Гц 0 дБ сохраняется. АЧХ объясняется в основном наличием конденсаторов не очень высокой емкости в цепи прохождения сигнала. Необходимо эту АЧХ нейтрализовать в цифре.
Было предложение подкрутить коэффициенты фильтра ФВЧ (тот, который на 50 Гц), но мне этот вариант как-то не очень нравится, так как фильтр эллиптический 5-го порядка, коэффициентов в нем 14 штук, рассчитаны с помощью fdatool в Матлабе и что и как крутить не ясно, да и стремно как-то – может и зазвенеть фильтр.
Более приемлемым кажется добавление некого корректирующего цифрового звена. Вот только как его рассчитать ? Еще момент. Экстраполяция в Excel этого графика АЧХ показала, что на частоте 25 Гц спад будет около -2,5 дБ. Если корректирующее звено даст такой же подъем, это не страшно, так как запас по крутизне небольшой есть. Но вот на более низких частотах что будет ? То есть было бы очень желательно, чтобы корректирующее звено давало необходимый подъем на 1.072 дБ на 50 Гц, а на более низких частотах этот подъем не превышал бы +2..+3 дБ. Понятно, что в точности скомпенсировать АЧХ вряд ли возможно, даже результируюшие -0,3 дБ на 50 Гц вместо имеющихся -1,072 дБ было бы очень хорошо!
Подскажите, как мне рассчитать такое корректирующее звено ? (а то проект уже горит).
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jun 11 2014, 12:20
Сообщение #2


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Там где ваш аналоговый фильтр ослабляет, корректирующий цифровой должен усиливать.

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

doc fdesign.arbmag

или в fdatool найти опцию Arbitrary Magnitude

А затем те пожелания по АЧХ, которые вы здесь так подробно изложили, нужно в формальном виде сообщить матлабу.

Можно совместить функцию корректора ачх с вашим эллиптическим фвч (я бы поступил именно так), задав результирующую ачх, а можно сделать отдельное звено.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jun 11 2014, 13:58
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(MSP430F @ Jun 11 2014, 19:51) *
Реализовал в цифре полосовой фильтр 50-250 Гц с крутизной спада -50 дБ/октава с пульсацией в полосе пропускания 0,15 дБ и срезом на границах полосы пропускания на этом же уровне (ФНЧ с частотой среза 250 Гц + ФВЧ с частотой среза 50 Гц). Частота дискретизации = 1250 выб/с. И тут выясняется, что аналоговая часть схемы, с которой на АЦП приходит сигнал имеет АЧХ как на рисунке ниже.


Подскажите, как мне рассчитать такое корректирующее звено ? (а то проект уже горит).

Поднимите усиление на 50-100 Гц и все сетевые помехи будут ваши! Так можно сделать только если аналоговый тракт низкоомный и не подвержен помехам...
И еще. Если в аналоговом сигнале есть пульсации, то они тоже усилятся. Чтобы это проверить попросите в аналоговом тракте поставить побольше конденсаторов. И проверьте, что получится...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jun 11 2014, 15:27
Сообщение #4


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Т.е. вы серьезно считаете, что затухание в 1 дб позволяет побороть сетевые помехи?

Цитата(iosifk @ Jun 11 2014, 19:08) *
Поднимите усиление на 50-100 Гц и все сетевые помехи будут ваши! Так можно сделать только если аналоговый тракт низкоомный и не подвержен помехам...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 12 2014, 04:05
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(MSP430F @ Jun 11 2014, 18:51) *
АЧХ объясняется в основном наличием конденсаторов не очень высокой емкости в цепи прохождения сигнала. Необходимо эту АЧХ нейтрализовать в цифре.

"Зачем делать сложным то, что проще простого?" Добавьте емкости, навесьте параллельно. И шабаш.
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jun 12 2014, 17:31
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Цитата(ViKo @ Jun 12 2014, 12:15) *
"Зачем делать сложным то, что проще простого?" Добавьте емкости, навесьте параллельно. И шабаш.


Вашими бы устами да медку!
Там все очень не просто. Кондеры и так взяли с максимальной емкостью, габариты девайса не позволяют уже бОльшие номиналы.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jun 12 2014, 17:55
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(MSP430F @ Jun 13 2014, 01:41) *
Вашими бы устами да медку!
Там все очень не просто. Кондеры и так взяли с максимальной емкостью, габариты девайса не позволяют уже бОльшие номиналы.

А если сделать без конденсаторов вообще. Как усилитель постоянного тока. Взять операционники с малым дрейфом?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 12 2014, 19:24
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(MSP430F @ Jun 13 2014, 00:41) *
Там все очень не просто. Кондеры и так взяли с максимальной емкостью, габариты девайса не позволяют уже бОльшие номиналы.

ФВЧ состоит из двух компонентов - конденсатора и резистора. rolleyes.gif
Go to the top of the page
 
+Quote Post
BratherLU
сообщение Jun 16 2014, 05:03
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 103
Регистрация: 16-05-06
Пользователь №: 17 126



http://www.dsplib.ru/content/allpasseq/allpasseq.html

как вариант
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 16 2014, 09:22
Сообщение #10


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(MSP430F @ Jun 11 2014, 14:41) *
Более приемлемым кажется добавление некого корректирующего цифрового звена. Вот только как его рассчитать ?

Делал как-то корректор интерливинга двух АЦП,нужно было компенсировать разность неравномерностей АЧХ порядка 0,3дБ в полосе 500МГц. Применил обычный фильтр КИХ, его ИХ рассчитывал методом частотных выборок. Получился очень даже неплохой результат.
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jun 16 2014, 09:51
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Цитата(Fat Robot @ Jun 11 2014, 16:20) *
Там где ваш аналоговый фильтр ослабляет, корректирующий цифровой должен усиливать.

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

doc fdesign.arbmag

или в fdatool найти опцию Arbitrary Magnitude

А затем те пожелания по АЧХ, которые вы здесь так подробно изложили, нужно в формальном виде сообщить матлабу.

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


Спасибо за совет.
Вот наконец-то кончились праздники и я занялся MATLABом. Решил сделать корректирующее звено.
Нашел в fdatool опцию Arbitrary Magnitude. Чуть модифицировал default пример и получил фильтр 2-го порядка с похожей на желаемую формой АЧХ. Форма-то похожа, но точность 0,5 дБ, так как я менял в Freq vector, Freq edges, Mag vector, Weight vector только те 4 элемента, которые там и были. Догадываюсь, что надо загнать в них все мои точки желаемой АЧХ, которых 12 штук.
Даже привел частоты к нормальному виду (в частоте Найквиста) и усиление в 1, а не в дБ. Получил вот что:
частоты 0.08 0.096 0.112 0.128 0.144 0.16 0.176 0.192 0.208 0.224 0.24 0.256
усиление 1.131 1.087 1.059 1.041 1.028 1.019 1.012 1.008 1.004 1.002 1.000 1.000 .

Вот только не понимаю и гугл мне не помог, как все эти четыре вектора ( Freq vector, Freq edges, Mag vector, Weight vector ) правильно оформить с моими данными ???

Сообщение отредактировал MSP430F - Jun 16 2014, 09:52
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jun 16 2014, 11:15
Сообщение #12


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Вы невероятно далеко продвинулись в деле проектирования корректора. Осталось совсем чуть-чуть.

Freq edges - для multiband фильтра границы полос. у вас 2 полосы если фвч, и 1 полоса, если корректор. Оптимизация делается в каждой полосе отдельно, а на границах полос - что получится.

Freq vector - Вектор частот.

Mag vector - Вектор амплитуд, соответствующий частотам из Freq vector

Weight vector - вектор весов. Т.е. насколько точно должно быть выполнено требование по амплитуде Mag_vector(i) на частоте Freq_vector(i) относительно других точек. Начните с равновесной оптимизации: всем точкам одинаковые веса.

посмотрите здесь примеры
http://www.mathworks.co.uk/help/signal/ref...ign.arbmag.html
думаю, вы сможете даже найти что-то близкое к вашему случаю

Цитата(MSP430F @ Jun 16 2014, 10:51) *
Даже привел частоты к нормальному виду (в частоте Найквиста) и усиление в 1, а не в дБ.
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jun 16 2014, 12:44
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Цитата(Fat Robot @ Jun 16 2014, 15:15) *
Weight vector - вектор весов. Т.е. насколько точно должно быть выполнено требование по амплитуде Mag_vector(i) на частоте Freq_vector(i) относительно других точек. Начните с равновесной оптимизации: всем точкам одинаковые веса.


Решил последовать Вашему совету и рассчитал ФВЧ сразу с коррекцией. Получилось. ФВЧ 5-го порядка и спад АЧХ имеет около 50 дБ/октаву и филигранно компенсирует неравномерность АЧХ аналогового тракта. Огромное человеческое Вам СПАСИБО!

Но осталось два вопроса.

1. В чем разница опций Least Pth-norm и Constrained least Pth-norm ?

2. Если я задаю вектор Weight vector [10 10 10 10 10 10 10 10 10 10 10 10 10 10 10], получаю одни коэффициенты, если
[100 100 100 100 100 100 100 100 100 100 100 100 100 100 100] - другие.
Если в векторе Weight vector задать на 1 элемент меньше, то вылезает ошибка "The frequency, desired value, and error weighting must be vectors of the same length.". Из чего можно сделать опосредованный вывод, что этот вектор определяет какие-то error weighting ?
Это подтверждает также то, что если задать вектор, состоящий из единиц, то получается очень неточная компенсация АЧХ.
Так в каких же единицах задается этот вектор ?

Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jun 16 2014, 14:07
Сообщение #14


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



На здоровье. Хорошо, что у вас все получилось хорошо.

По поводу costrained/unconstrained начните отсюда:
http://www.mathworks.co.uk/help/optim/ug/fminunc.html
http://www.mathworks.co.uk/help/optim/ug/u...ms.html#brnoxxo
http://www.mathworks.co.uk/help/optim/ug/c...l?s_tid=doc_12b
ну а дальше, как пойдет. При проектировании несложных фильтров разница не должна быть заметна.

Про вектор весов я написал в своем предыдущем сообщении. И здесь
http://www.mathworks.co.uk/help/dsp/ref/iirlpnormc.html

Что касается единиц весов, то я не знаю, почему так получается. Я до настоящего момента считал, что веса нормируются внутри полос. Посмотрите код функции iirlpnormc, что там вызывается, во что пересчитываются веса, как они используются. Заодно и здесь расскажете. Будет интересно.


Цитата(MSP430F @ Jun 16 2014, 13:44) *
Go to the top of the page
 
+Quote Post

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

 


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


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