Easyelectronics.ru

Электроника для всех
Текущее время: 22 окт 2019, 11:14

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 10:45 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
Я не уверен, что "мои" выражения H(S) верные, я нашел их на каком-то форуме, а не в книге.
Я посчитал коэффициенты Бесселя 3-го порядка матричным способом
A0 = 37; A1 = -51; A2 = 27; A3 = -7.
B0 = 15; B1 = 45; B2 = 45; B3 = 15.
У меня получился усилитель. При входном параметре 100, на выходе получается 2000
Попробовал посчитать такие H(S), так сказать подключил Beta = tg(Fs/FN*Пи/2)
2-го порядка
H(S) = 3*Beta^2/(S^2+3*S*Beta+3*Beta^2)
A0 = 1,200618768; A1 = -1,976250468; A2 = 0,823130764.
B0 = 0,011874766; B1 = 0,023749532; B2 = 0,011874766.
3-го порядка
H(S) = 15*Bet^3/(S^3+6*S^2*Beta+15*S*Beta^2+15*Beta^3)
A0 = 1,4405973186; A1 = -3,3069077189; A2 = 2,5743446205; A3 = -1,3218496580.
B0 = 0,0037354848; B1 = 0,0112064543; B2 = 0,0112064543; B3 = 0,0037354848.

Коэффициенты стали похожи,если прищурится, на результат утилиты WinFilter(к сожалению, у меня нет Filter.exe), но работает только 2-го порядка. Выходное значение 3-го порядка "улетают в небеса"(возрастает до очень больших чисел)

Коэффициенты, которые выдает WinFilter:
Бессель 2-го порядка
A0 = 1,0000000000; A1 = -1,7899455543; A2 = 0,8041719893.
B0 = 0,0035497061; B1 = 0,0070994122; B2 = 0,0035497061.
Бессель 3-го порядка
А0 = 1,0000000000; A1 = -2,7019370124; A2 = 2,4400161335; A3 = -0,7363661973.
B0 = 0,0002134079; B1 = 0,0006402236; B2 = 0,0006402236; B3 = 0,0002134079.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 11:25 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Может это формулы взяты с форума для расчёта аналоговых фильтров? Там точность +- 10% никого не пугает - фильтр в любом случае устойчивым получается :-)
Filter.exe на которую я ссылался фильтры Бесселя не считает.
Попытайтесь при \beta=1 перейти от H(z) (с нормальными коэффициентами из WinFilter) к H(S).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 15:14 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
нашел коэффициенты матрицы-столбца для 3-го порядка из коэффициентов WinFiltr, а что с ними дальше делать, не понимаю. Похоже я запутался)))
0,8597899179
0,1316027859
0,0083931808
0,0000085646
но они близко не похожи на
1
6
15
15


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 15:36 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Сейчас проверю!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 15:51 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Кажется коэффициенты неправильно посчитаны.
У меня получается
А0=37 ; А1= +51; А2= 27; А3= 5
B0=15 B1=45 B2=45 B3=15
Вложение:
CodeCogsEqn(85).gif
CodeCogsEqn(85).gif [ 3.36 Кб | Просмотров: 4594 ]

Вложение:
CodeCogsEqn(86).gif
CodeCogsEqn(86).gif [ 2.59 Кб | Просмотров: 4594 ]


Вложение:
Бессель 3.JPG
Бессель 3.JPG [ 20.34 Кб | Просмотров: 4599 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 16:31 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Нашёл литературу по фильтрам Бесселя:
http://scask.ru/book_r_cos.php?id=81
надо на стр. 251 перейти сразу (по полосе прокрутки внизу) или стр. 255 в тексте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 16:48 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Booger писал(а):
Коэффициенты, которые выдает WinFilter:
...
Бессель 3-го порядка
А0 = 1,0000000000; A1 = -2,7019370124; A2 = 2,4400161335; A3 = -0,7363661973.
B0 = 0,0002134079; B1 = 0,0006402236; B2 = 0,0006402236; B3 = 0,0002134079.


Я не понял что это? Частота среза очень маленькая...
Вложение:
Бессель 3.JPG
Бессель 3.JPG [ 14.18 Кб | Просмотров: 4591 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 16:52 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
Действительно, я накосячил.
Но почему-то с исправленными коэффициентами сигнал усиливается в 15 раз.
Если коэффициенты B поделить на 15, то сигнал не усиливается, однако фильтр становится, мягко говоря, плохим
Спасибо, за литературу.

Я вложил график, который получился у меня.
На графике отфильтрованное значение во времени.
Скачек - это помеха.
входное значение = 100, помеха = 200
Почему-то фильтр полученный из WinFilter меньше всего реагирует на помеху, интересно, каким образом WinFilter считает коэффициенты.

Частота среза 200Гц, частота дискретизации 10000Гц


Вложения:
grafik.jpg
grafik.jpg [ 104.72 Кб | Просмотров: 4589 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июл 2015, 17:09 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Booger писал(а):
Действительно, я накосячил.
Но почему-то с исправленными коэффициентами сигнал усиливается в 15 раз.
Если коэффициенты B поделить на 15, то сигнал не усиливается, однако фильтр становится, мягко говоря, плохим
Спасибо, за литературу.

Я же привёл АЧХ с исправленными коэффициентами. Коэффициент передачи =1 в полосе! Так что это где-то дальше "усиливается" в 15 раз!
Booger писал(а):
Почему-то фильтр полученный из WinFilter меньше всего реагирует на помеху, интересно, каким образом WinFilter считает коэффициенты.Частота среза 200Гц, частота дискретизации 10000Гц.

Вот про частоту среза почитайте, для Бесселя есть отличия! Может поэтому и усиление появилось!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 05 июл 2015, 09:42 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
По какому алгоритму коэффициенты считаются в WinFilter я не знаю.
Один из методов построения КИХ с минимальной фазой описан здесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 06 июл 2015, 07:21 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Вот вроде разобрался с формулами фильтра Бесселя. Действительно, исходное выражение для Н(S)=15/(S^3+6S^2+15S+15) записано для некоторой частоты среза Ws=15^{1/3}. То есть преобразование ФНЧ-ФНЧ вида S=S/Ws уже сделано. Пересчитать на 1 рад/сек и потом на нужное значение beta легко :-)
H(S)=beta^3/(S^3+2.432881 beta S^2+2.466212 beta^2 S +beta^3)
Далее делаем z -преобразование и всё как обычно.
Для Fs/FN=0.04 я получил вот такие коэффициенты:
Вложение:
Бессель таб2.JPG
Бессель таб2.JPG [ 13 Кб | Просмотров: 4502 ]

Booger писал(а):
Коэффициенты, которые выдает WinFilter:
Бессель 3-го порядка
А0 = 1,0000000000; A1 = -2,7019370124; A2 = 2,4400161335; A3 = -0,7363661973.
B0 = 0,0002134079; B1 = 0,0006402236; B2 = 0,0006402236; B3 = 0,0002134079.

Т.е. "прищуриваться" приходится гораздо меньше!
Таким образом, теперь понятно, по какому алгоритму считает WinFilter :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июл 2015, 08:54 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
Огромное спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 09 июл 2015, 18:05 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
Добрый день!
С ФНЧ и ФВЧ я вроде бы разобрался, помогите разобраться с полосовым и режекторным фильтрами.
Правильно ли я понял теорию?
Полосовой фильтр - это фильтр, который пропускает сигнал только определенной частоты в полосе пропускания. Чем ближе к "центру" полосы пропускания, тем менее искажается сигнал. Бывает ли такой фильтр, в "центре" которого сигнал вообще не искажается? Что будет с сигналом, который выше частоты Найквиста?
Режекторный фильтр - это фильтр, который не пропускает сигнал определенной частоты в полосе подавления. Причем от "краев" полосы подавления к "центру" сигнал будет затухать, а в центре будет равен 0. Вне полосы подавления сигнал проходит.
При этом входной сигнал и в случае полосового и в случае режекторного должен приходить с частотой дискретизации (Найквиста*2)

Я попробовал посчитать режекторный фильтр с прототипом ФНЧ Баттерворта 2-го порядка для частоты среза 50 Гц, центральной частоты 60 Гц и частоты Найквиста 500 Гц. Коэффициенты получились:
А0 = 1,0000000000; А1 = -3,5086400256; А2 = 4,6697645825; А3 = -2,8017024193; А4 = 0,6412673259
В0 = 0,8005395381; В1 = -3,1551712224; В2 = 4,7099528322; В3 = -3,1551712224; В4 = 0,8005395381

но при таких коэффициентах отфильтрованное значение колбасит (я так понимаю, неустойчивый)
утилита WinFilter дает немного другие коэффициенты:
А0 = 1,0000000000; А1 = -3,7427763959; А2 = 5,4580947097; А3 = -3,6605394677; А4 = 0,9565436765.
B0 = 0,9115335822; B1 = -3,4499799203; B2 = 5,0874453736; B3 = -3,4499799203; B4 = 0,9115335822

С этими коэффициентами фильтр колбасит начинает на еще раньше
И еще вопрос рекуррентная формула для полосовых и режекторных фильтров остается той же?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 09 июл 2015, 19:17 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Частота Найквиста по определению = Fd/2.
Для начала попробуйте режектор на центральную частоту 0.5 Найквиста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 09 июл 2015, 20:37 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Booger писал(а):
...Что будет с сигналом, который выше частоты Найквиста?

Он превратится в сигнал Fd-Fs, где Fd- частота дискретизации, Fs- частота сигнала
Поэтому еще перед АЦП должен стоять фильтр (аналоговый), который срезает все частоты выше Найквиста!
Booger писал(а):
...но при таких коэффициентах отфильтрованное значение колбасит (я так понимаю, неустойчивый)
утилита WinFilter дает немного другие коэффициенты:
....С этими коэффициентами фильтр колбасит начинает на еще раньше...

Надо более подробно описывать симптомы. Вот непонятно : в начале "колбасит", а в конце "приплющивает"?
Если "приплющивает" это одно дело, а если нет - то совсем другое.
Booger писал(а):
И еще вопрос рекуррентная формула для полосовых и режекторных фильтров остается той же?

Да, для всех фильтров рекуррентная формула одна и та же и получается она из коэффициентов передаточной характеристики H(z). Эта же характеристика однозначно определяет АЧХ и ФЧХ фильтра.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 10 июл 2015, 09:11 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
Вот так колбасит )))
Синий - входной сигнал
Красный - я посчитал матричным способом
Зеленый - WinFilter

Причем, "расколбас" начинается около нуля, а если Y(n-1), Y(n-2), Y(n-3), Y(n-4) в рекуррентной формуле в первой итерации подставить не 0, а 100, то "расколбас" возле 100


Вложения:
1.jpg
1.jpg [ 180.6 Кб | Просмотров: 4308 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 10 июл 2015, 09:23 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
Еще вопросик, если сигнал пропустить сначала через ФНЧ, а затем получившийся отфильтрованный сигнал через ФВЧ, при чем (Fср фнч < Fср фвч), то получится ли тоже, что и режекторный фильтр с полосой подавления от Fcр фнч до Fср фвч?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 10 июл 2015, 11:03 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
Я нашел глупую ошибку в рекуррентной формуле у себя.
Записал вместо
1/A0(B0*X(n)+B1*X(n-1)+B2*X(n-2)+B3*X(n-3)+B4*X(n-4)-A1*Y(n-1)-A2*Y(n-2)-A3*Y(n-3)-A4*Y(n-4))
следующую каку:
1/A0(B0*X(n)+B1*X(n-1)+B2*X(n-2)+B3*X(n-3)+B4*X(n-4)-A1*Y(n-4)-A2*Y(n-3)-A3*Y(n-2)-A4*Y(n-1))
Теперь все работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 10 июл 2015, 11:23 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Если нужен режектор на 50 Гц - посмотрите тут.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 10 июл 2015, 11:27 
Только пришел

Зарегистрирован: 02 июл 2015, 10:32
Сообщения: 12
И еще вопрос, есть формула при которой можно вычислить частоту, при которой полностью подавляется сигнал с этой самой частотой,
либо обратно, формула при которой можно вычислить частоту среза и/или центральную частоту, имея частоту сигнала, который надо подавить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 10 июл 2015, 12:17 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Booger писал(а):
И еще вопрос, есть формула при которой можно вычислить частоту, при которой полностью подавляется сигнал с этой самой частотой,
либо обратно, формула при которой можно вычислить частоту среза и/или центральную частоту, имея частоту сигнала, который надо подавить?

Очень даже просто. Надо по H(z) построить АЧХ! Программа расчёта - здесь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 11 сен 2015, 14:32 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3518
Тема для меня очень интересная, но, к сожалению, читаю всё это примерно как собачка - "всё понимаю, а сказать не могу". Лучшее, что я смог осилить самостоятельно, это из Хоровиц-Хилла "Нерекурсивные фильтры", т.е., могу применить на практике. Всё остальное - матрицы, коэффициенты - для меня "ужас-ужас". Если мне понадобится фильтр более высокого порядка, то я реализую его аппаратно, на операционниках. Несложно сделать, обкатать, настроить, и даже если потребуется, настроить тонко. Нужен только генератор, осциллограф и отвертка :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 11 сен 2015, 15:16 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2623
Откуда: Санкт-Петербург
iev91, так для цифровых всё аналогично, только роль генератора, осциллографа и отвёртки выполняет ваш комп.
Если вы можете построить фильтр на ОУ с нужными характеристиками - значит, можете построить и цифровой. Он же не обязан быть монолитным - можно несколько каскадов, как на ОУ. Т.е. все ваши "железные" методы продолжают работать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 13 сен 2015, 12:07 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Цитата:
Всё остальное - матрицы, коэффициенты - для меня "ужас-ужас". Если мне понадобится фильтр более высокого порядка, то я реализую его аппаратно, на операционниках.

Профессионал должен одинаково хорошо стрелять как с правой, так и с левой руки :-)
Был бы результат...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 15 сен 2015, 11:13 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
А если без шуток, то перед АЦП обязательно должен стоять аналоговый фильтр. С другой стороны - сделать аналоговый фильтр с жёсткими требованиями к линейности ФЧХ - большая проблема, а цифровой КИХ- фильтр с этой задачей справляется элементарно.
На первом этапе необязательно в "дебри" лезть. Достаточно в любой он-лайн программе рассчитать коэффициенты фильтра, обычно даже и рекуррентную формулу на Си распечатывают :-) и для любых типов фильтров - хоть КИХ, хоть БИХ.
И АЧХ и ФЧХ построят...
И обычно этого вполне хватает, чтобы решить 90% задач, связанных с фильтрацией сигнала.
Остальные 10% приходятся на всякие "хитрые" фильтры: следящие, адаптивные и т.д.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB