Связанные сообщения
Брижит Бардо в купальнике выглядит талантливее, чем Фаина Раневская @Гайдай
-
- На 8 битном фильтрацию сдвигами вместо умножения делал, работает, Visitor(313 знак., 24.08.2023 11:41)
- Не копал глубоко. Но положил себе в закладки. Гляньте этот код: Nikolay_Po(62 знак., 23.08.2023 15:53, ссылка, ссылка)
- спасибо поковыряюсь - General(23.08.2023 23:00)
- Расскажете, что накопали, в общих чертах? Мне нужно будет, но руки не доходят, не до того, более срочные вещи программируем. - Nikolay_Po(24.08.2023 09:56)
- спасибо поковыряюсь - General(23.08.2023 23:00)
- Вот такой фильтр сделать и прекрасно все регулируется тремя числами на лету Alt@ir(9 знак., 23.08.2023 15:15, ссылка, youtube)
- Нашёл в своих архивах расчёт БИХ ФНЧ 2-го порядка с максимально
гладкой АЧХ. Может пригодится? argus98(1 знак., 23.08.2023 14:46, картинка)
- Вполне себе интересно. А можете переписать как в General(2 знак., 23.08.2023 15:27, ссылка)
- В Си не обучен. Делайте согласно классической картинке argus98(1 знак., 23.08.2023 20:01, картинка)
- Следует иметь ввиду, что исполнение рекурсивных фильтров в целых
числах - сложная задача из-за шума квантования (ошибок округления). Nikolay_Po(425 знак., 24.08.2023 10:07)
- Дополню. Существует понятие чувствительность частотной
характеристики к коэффициентам фильтра. Она косвенно зависит от
порядка, изначально она зависит от добротности полюсов фильтра
(Im/Re). Чебышев чувствительнее Батерворта. Чем выше порядок, тем
выше предельная добротность (см. картинку). Искусство
проектирование фильтров - придумать такую топологию (
последовательность арифметических действий в рекуррентном
выражении), чтобы чувствительность была минимальной. - IBAH(1 знак., 24.08.2023 13:07, картинка)
- Был (есть?) такой Ланнэ - он давным давно излагал идею
пересчитывать влияние части коэффициентов в другие... Снижение
динамического диапазона (разрядности) коэффициентов позволяет уже
избавиться от такой чувствительности. Но, конечно, с некоторым
изменением АЧХ... POV(172 знак., 24.08.2023 13:20, ссылка)
- Ланнэ Красная книга. Кто ж не знает. - IBAH(1 знак., 24.08.2023 14:11, картинка)
- Был (есть?) такой Ланнэ - он давным давно излагал идею
пересчитывать влияние части коэффициентов в другие... Снижение
динамического диапазона (разрядности) коэффициентов позволяет уже
избавиться от такой чувствительности. Но, конечно, с некоторым
изменением АЧХ... POV(172 знак., 24.08.2023 13:20, ссылка)
- Можно подумать, что у плавучки нет ошибок округления... Лишний байт/два/три в целочисленной арифметике (с фиксированной точкой) всегда можно добавить, а вот размер мантиссы у плавучки - хрен добавишь - argus98(24.08.2023 11:42)
- У современных 32р машин, легко можно работать с фиксированной точкой 16Q16. - mse homjak(24.08.2023 11:14)
- Дополню. Существует понятие чувствительность частотной
характеристики к коэффициентам фильтра. Она косвенно зависит от
порядка, изначально она зависит от добротности полюсов фильтра
(Im/Re). Чебышев чувствительнее Батерворта. Чем выше порядок, тем
выше предельная добротность (см. картинку). Искусство
проектирование фильтров - придумать такую топологию (
последовательность арифметических действий в рекуррентном
выражении), чтобы чувствительность была минимальной. - IBAH(1 знак., 24.08.2023 13:07, картинка)
- Следует иметь ввиду, что исполнение рекурсивных фильтров в целых
числах - сложная задача из-за шума квантования (ошибок округления). Nikolay_Po(425 знак., 24.08.2023 10:07)
- В Си не обучен. Делайте согласно классической картинке argus98(1 знак., 23.08.2023 20:01, картинка)
- Вполне себе интересно. А можете переписать как в General(2 знак., 23.08.2023 15:27, ссылка)
- Заранее прошу меня извинить, если повторю то, что написано до меня. Однако проблему я вижу совсем не там, где ее пытаются решить. Прежде чем определять АЧХ цифрового фильтра, нужно определить ширину полосы первой зоны Найквиста и понимать, что на входе АЦП должен стоять АППАРАТНЫЙ фильтр НЧ, который подавит высшие зоны Найквиста с необходимым уровнем. Ибо никто пока не показал, что проблемные помехи лежат именно в первой. Из этого следует, что сигма-дельта АЦП может оказаться my504(106 знак., 23.08.2023 13:22)
- Ещё сумасшедшая идея. Фильтр не трогаем, зато меняем масштаб времени в потоке данных на входе и на выходе из фильтра. Децимация и интерполяция? - SciFi(23.08.2023 13:06)
- Делал такое, но для полосового фильтра первого порядка и кортексМ4. IBAH(1906 знак., 23.08.2023 12:26 - 12:54)
- Имхо, если нет плавучки, не стоит заморачиваться. Чувствительность
фильтра к коэффициентам такова, что в целых все встанет раком - IBAH(23.08.2023 12:28)
- Господа, вы звери! (с). Видимо, для вас и строят трёх-нанометровые
фабрики. - Kpoк(23.08.2023 12:46)
- Автор не указал параметры фильтра, поэтому можно фантазировать.
Может, ему нужна неравноменость в ПП 0,001 дБ..? - Xaoc(23.08.2023 12:51,
)
- Человек глазами смотрит. Мне пох АЧХ, мне надо чтобы не скакало. В том-то и трудность - как перевести реальную потребность на язык
яйцеголовых. - General(23.08.2023 12:55)
- Поступаем классически: буфер 16 выборок, откидываем 4 самых больших
и 4 самых мелких, остаток усредняем. Если в других местах ужэ
почистили. - mse homjak(23.08.2023 17:06)
- Восхитительно. Сколько тактов вы кладёте на сортировку? Усложняем
задачу. Машина 8-разрядная, АЦП-12. :-) - Kpoк(23.08.2023 19:16)
- На 10-20 сэмплов в секунду, дажэ для АВР, будет приемлимо. У меня дажэ в Цшной реализации за критическое время не ушло для трёх 16р потоков при 400мкс на выборку. Сколько конкретно, не смотрел, т.к. успевал с запасом. - mse homjak(24.08.2023 11:21)
- Сортировка тут не нужна: Xa0c(1258 знак., 24.08.2023 09:06,
)
- Мне - не нужна. Но не я сказал про сортировку. - Kpoк(24.08.2023 09:12)
- У нас у всех 32 разряда и десятки МГц. Не лезьте в нашу песочницу
со своими деревянными игрушками :-) - SciFi(23.08.2023 19:39)
- Так у вас же и винда стоит. Или Линух у извращенцев. То на то и
выходит. - Kpoк(23.08.2023 20:26)
- но стоит же! - SciFi(23.08.2023 20:30)
- Так у вас же и винда стоит. Или Линух у извращенцев. То на то и
выходит. - Kpoк(23.08.2023 20:26)
- Восхитительно. Сколько тактов вы кладёте на сортировку? Усложняем
задачу. Машина 8-разрядная, АЦП-12. :-) - Kpoк(23.08.2023 19:16)
- Перевожу. Смутно помню, что для систем измерения рекомендуется фильтр Бесселя. Порядок фильтра зависит от упоротости. Чем выше порядок тем сложнее, и человеку, и программисту, и МК. Берешь характеристику фильтра в общем виде, проводишь над ней билинейное преобразование (отображение jw в z). от функции на z - плоскости переходишь к итерационному выражению (y[i]). Коэффициенты в этом выражении будут выражены в общем виде (K(Fсреза)) - IBAH(23.08.2023 13:11)
- Если для отображения, то я RC фильтрацию включал и инициализировал
при дельте между отсчетами менее заданной. Иногда сначала немного
всегда фильтруешь, а второй каксад уже при небольшой дельте между
последовательными отстчтами. Еще на индикацию не выводил при
успокоении. Успокоение - при разнице между отсчетами менее четверти
дискрета, выход из успокоения - 3/4 дискрета. - Andreas(23.08.2023 13:07)
- Да, но это субъективные находки, а хочется вечного (расчётно
обоснованного) - General(23.08.2023 13:27)
- Это да, фильтр в целых, с изменяемой крутизной, выше 1го порядка и
с коэффициентом передачи ровно 1 для измерительных целей. Тоже
очень хочу! - Andreas(23.08.2023 14:06)
- До завтра терпит? - Kpoк(24.08.2023 10:01)
- Много лет терпело и еще потерпит. ) Год назад снова возникла
проблема отображения шумных данных юзеру и простым проверенным
путем хорошо не вышло. Вышло очень криво и непонятно, но пока
работает. Но вдруг есть волшебная пилюля.... - Andreas(24.08.2023 10:44)
- Итак. Kpoк(404 знак., 28.08.2023 13:53)
- что-то не так, Z непрерывно нарастает и никогда не возвращается - General(28.08.2023 23:28)
- Да не, вроде бы всё норм - там (во 2ой формуле) же Y складывается, а не X. А Y - это выход полосового фильтра, то есть без постоянки и будет временами с отрицательным значением. - symbions(28.08.2023 23:59)
- а не должно быть больше 0.25 - Kpoк(28.08.2023 23:40)
- вот прямо из Матлаба Kpoк(205 знак., 28.08.2023 23:38)
- Вангую: и всё на асме. - enc(28.08.2023 16:24)
- По другому никак невозможно. ))) dsPIC - это особое блюдо высокой
кухни и готовить его можно только на
маслеасме... - my504(28.08.2023 21:30)- Да... "На его месте должэн быть
яАВР"(С). Но не сложилось. Теперь на ДСПИК и закладываться стрёмно. А АСМ там королевский. - mse homjak(28.08.2023 22:17) - Помню, помню Mbedder шедевры асм30 выкладывал enc(2 знак., 28.08.2023 21:51, ссылка, ссылка)
- Да... "На его месте должэн быть
- Ты знал!!! - Kpoк(28.08.2023 18:39)
- Ну так, давно живём. - enc(28.08.2023 21:56)
- По другому никак невозможно. ))) dsPIC - это особое блюдо высокой
кухни и готовить его можно только на
- Спасибо, попробую обязательно. Нифига не понятно, но звучит хорошо и реализация простая. - Andreas(28.08.2023 14:21)
- что-то не так, Z непрерывно нарастает и никогда не возвращается - General(28.08.2023 23:28)
- Итак. Kpoк(404 знак., 28.08.2023 13:53)
- Много лет терпело и еще потерпит. ) Год назад снова возникла
проблема отображения шумных данных юзеру и простым проверенным
путем хорошо не вышло. Вышло очень криво и непонятно, но пока
работает. Но вдруг есть волшебная пилюля.... - Andreas(24.08.2023 10:44)
- Vaidyanathan, P. P. Page 31, Fig.45, Fig.46, Fig.47: - Xoc(1 знак., 23.08.2023 14:17,
, ссылка)
- Он над нами издевался... - Andreas(23.08.2023 14:26)
- До завтра терпит? - Kpoк(24.08.2023 10:01)
- В моём сообщении от 10 часов 12 минут - Kpoк(1 знак., 23.08.2023 13:54, ссылка)
- Пейсатель не чейтатель... Это есть и очевидно, но крутизна не
всегда устраивает. - Andreas(23.08.2023 14:08)
- Каскадируйте. - Kpoк(23.08.2023 15:03)
- Пейсатель не чейтатель... Это есть и очевидно, но крутизна не
всегда устраивает. - Andreas(23.08.2023 14:08)
- Это да, фильтр в целых, с изменяемой крутизной, выше 1го порядка и
с коэффициентом передачи ровно 1 для измерительных целей. Тоже
очень хочу! - Andreas(23.08.2023 14:06)
- Да, но это субъективные находки, а хочется вечного (расчётно
обоснованного) - General(23.08.2023 13:27)
- Камент: Toчкa oпopы(200 знак., 23.08.2023 13:03)
- Поступаем классически: буфер 16 выборок, откидываем 4 самых больших
и 4 самых мелких, остаток усредняем. Если в других местах ужэ
почистили. - mse homjak(23.08.2023 17:06)
- По-моему, он его даже расписал. - Kpoк(23.08.2023 12:54)
- +1 за внимательность - "для полосового фильтра первого порядка" - IBAH(23.08.2023 12:58)
- Человек глазами смотрит. Мне пох АЧХ, мне надо чтобы не скакало. В том-то и трудность - как перевести реальную потребность на язык
яйцеголовых. - General(23.08.2023 12:55)
- Автор не указал параметры фильтра, поэтому можно фантазировать.
Может, ему нужна неравноменость в ПП 0,001 дБ..? - Xaoc(23.08.2023 12:51,
- Господа, вы звери! (с). Видимо, для вас и строят трёх-нанометровые
фабрики. - Kpoк(23.08.2023 12:46)
- Имхо, если нет плавучки, не стоит заморачиваться. Чувствительность
фильтра к коэффициентам такова, что в целых все встанет раком - IBAH(23.08.2023 12:28)
- Простое уравнение: Kpoк(263 знак., 23.08.2023 10:12)
- Просто таймер перепрограммировать низя ? И обрабатывать один и тот
же фильтр в прерывании таймера ? Или свободных т. / прерываний в МК
нет ? - De_user(23.08.2023 08:37)
- Нет, всё должно быть честно. - General(23.08.2023 08:54)
- Готовое решение КИХ-фильтра с перестраиваемой полосой пропускания,
это "банк фильтров" на БПФ. Но на дешевом МК такое не сделать.
Нужен DSP. - Xaoc(23.08.2023 06:33,
)
- Это вопрос частоты семплирования. На малых частотах современного
MCU хватит. - Evgeny_CD(23.08.2023 12:26)
- Ну, навскидку, из пожеланий ТС'а можно предположить, что
потребуется 10 раз в секунду вычислять комплексное БПФ на 512
точек, плюс умножение вещественного сигнала на оконную функцию
длиной 1024 семпла. Может дешевый МК и справится.. ХЗ.. :) - Xaoc(23.08.2023 12:39,
)
- Например - Evgeny_CD(1 знак., 23.08.2023 13:00, ссылка)
- CH32V307 144MHz RAM 32K - General(23.08.2023 12:57)
- Не бьётся 144MHz и "частота отсчётов сигма-дельта АЦП это
единицы-десятки герц и производительности процессора хватит тапов
на 30-50". - SciFi(23.08.2023 13:02)
- он занят ещё кое-чем, однако оглашенная добавка точно не перенапряжёт - General(23.08.2023 13:26)
- Не бьётся 144MHz и "частота отсчётов сигма-дельта АЦП это
единицы-десятки герц и производительности процессора хватит тапов
на 30-50". - SciFi(23.08.2023 13:02)
- Ну, навскидку, из пожеланий ТС'а можно предположить, что
потребуется 10 раз в секунду вычислять комплексное БПФ на 512
точек, плюс умножение вещественного сигнала на оконную функцию
длиной 1024 семпла. Может дешевый МК и справится.. ХЗ.. :) - Xaoc(23.08.2023 12:39,
- Это вопрос частоты семплирования. На малых частотах современного
MCU хватит. - Evgeny_CD(23.08.2023 12:26)
- Рассчитывается КИХ фильтр так. Отклик в частотной области
представляет ступеньку, во временной области представляет
sinc-функцию. И если надо то наоборот. Значит наша задача не более
чем сгенерировать sinc-функцию. Коэффициенты КИХ фильтра её и
представляют. И вся фильтрация, т.е. фильтр будет представлять
собой банальную свертку с ней, т.е. к коэффициентами). Налабал
демо-код в дикой спешке, у меня нет времени писать красиво, завтра
с утра ехать запускать проект и я RxTx(1988 знак., 23.08.2023 01:25, ссылка)
- Тот же вопрос на stackexchange. И один из ответов тот же. Похоже, это называется "Window Method for FIR Filter Design". SciFi(2 знак., 23.08.2023 10:04, ссылка, ссылка)
- Спасибо, то что нужно. Простейшее понятное объяснение расчёта FIR без МАТКАДа. Допишу что ещё узнал. Конечно интересно получить такое же объяснение для тупых для случая IIR он же БИХ -кажется он должен быть ещё проще вследствии реккурентной формулы расчёта General(1221 знак., 23.08.2023 09:37)
- Забыл сказать. Если есть сомнения, то вот этот сайт, если выбрать
там в выпадающем списке "Python script that generates the
coefficients" даст тебе пруф что изложенная выше общая примтивная
идея фильтрации рабочая. Питон код там примитивный, но видно что он
делает. Желаю удачи! - RxTx(1 знак., 23.08.2023 01:31, ссылка)
- А вот сайт не поможет. Там питон использует встроенную функцию МАТКАДа - General(23.08.2023 08:55)
- Вот такой "аналог RC" чем плох? SciFi(190 знак., 22.08.2023 23:20)
- Это почти то же, что Генерал изначально написал - Kpoк(22.08.2023 23:53)
- именно то же самое - General(22.08.2023 23:59)
- крутизна очень маленькая, плохо давит ВЧ - General(22.08.2023 23:49)
- А если каскадировать? - SciFi(22.08.2023 23:50)
- так и делаем, но как анализировать АЧХ, задержку? Это мб включено в
цепь регулирования. А такие фильтры НИГДЕ НЕ ОПИСАНЫ. бля - General(22.08.2023 23:58)
- CIC-фильтры много где описаны, но с перестройкой полосы у них всё
печально. - Xaoc(1 знак., 23.08.2023 08:13,
, ссылка) - > но как анализировать АЧХ, задержку lloyd(159 знак., 23.08.2023 08:12)
- CIC-фильтры много где описаны, но с перестройкой полосы у них всё
печально. - Xaoc(1 знак., 23.08.2023 08:13,
- так и делаем, но как анализировать АЧХ, задержку? Это мб включено в
цепь регулирования. А такие фильтры НИГДЕ НЕ ОПИСАНЫ. бля - General(22.08.2023 23:58)
- А если каскадировать? - SciFi(22.08.2023 23:50)
- Это почти то же, что Генерал изначально написал - Kpoк(22.08.2023 23:53)
- Вот коэффициентом и меняется. А ещё они хорошо каскадируются. - Kpoк(22.08.2023 22:21)
- у FIR постоянная времени меняется коэффициентами? Где можно найти
готовое (Ctrl-C Сtrl-V) решение? - General(22.08.2023 22:36)
- КИХ крайне затратен на вычисления, по сравнению с БИХ. Но если
очень хочется, то коэффициенты КИХ находятся через обратное
косинус-преобразование Фурье от желаемой АЧХ. ps С БИХ всё сложнее - argus98(22.08.2023 22:54)
- Мне не надо "через обратное косинус-преобразование Фурье", мне
похрен АЧХ, FIR или IIR. Известна частота выборки ( 10Гц ) и число
тапов ( определяется ресурсом процессора, от 13 до 31), а частота
среза должна перестраиваться от 1 до 0,003 Гц - General(22.08.2023 23:13)
- боюсь что это импосибле... ну давайте включим логитку: шаг 1, хотим
частоту среза 0,003Гц - это эквивалентно заявлению что фильтр
должен иметь "постоянную времени" не менее 1/0.003 = 333 сек. шаг2,
чтобы обеспечить такое время накопления фильтра нузно 333сек*10Гц =
3330 дискретных отсчетов сигнала с частотой дискретизации 10Гц.
шаг3, 3330 ни разу даже близко не равно 31 отсчету....... где я не
прав? нужно хотеть то что можно, и нельзя то чего ненужно. - klen(1 знак., 22.08.2023 23:32, ссылка)
- ну примитивный БИХ (см. начало) бесплатно такое делает, неужели его как-то усовершенствовать нельзя? General(140 знак., 22.08.2023 23:56)
- боюсь что это импосибле... ну давайте включим логитку: шаг 1, хотим
частоту среза 0,003Гц - это эквивалентно заявлению что фильтр
должен иметь "постоянную времени" не менее 1/0.003 = 333 сек. шаг2,
чтобы обеспечить такое время накопления фильтра нузно 333сек*10Гц =
3330 дискретных отсчетов сигнала с частотой дискретизации 10Гц.
шаг3, 3330 ни разу даже близко не равно 31 отсчету....... где я не
прав? нужно хотеть то что можно, и нельзя то чего ненужно. - klen(1 знак., 22.08.2023 23:32, ссылка)
- Мне не надо "через обратное косинус-преобразование Фурье", мне
похрен АЧХ, FIR или IIR. Известна частота выборки ( 10Гц ) и число
тапов ( определяется ресурсом процессора, от 13 до 31), а частота
среза должна перестраиваться от 1 до 0,003 Гц - General(22.08.2023 23:13)
- Это же ИИР - Kpoк(22.08.2023 22:43)
- да мне похрен как именно он называется, решение прошу - General(22.08.2023 23:14)
- утром, на трезвую голову - Kpoк(22.08.2023 23:58)
- Скачай WinFilter и сгенери им Си-код. - RxTx(1 знак., 22.08.2023 23:16, ссылка)
- он сам рассчитывает коэффициенты, а мне надо их рассчитывать в МК - General(22.08.2023 23:26)
- Рассчитать заранее для нескольких частот среза, засунунть в таблицу
в программе и брать с таблицы при работе? - symbions(22.08.2023 23:46)
- нет, там минимум сотня наборов, проще рассчитывать - General(22.08.2023 23:57)
- Ясно - symbions(23.08.2023 22:58)
- нет, там минимум сотня наборов, проще рассчитывать - General(22.08.2023 23:57)
- Рассчитать заранее для нескольких частот среза, засунунть в таблицу
в программе и брать с таблицы при работе? - symbions(22.08.2023 23:46)
- он сам рассчитывает коэффициенты, а мне надо их рассчитывать в МК - General(22.08.2023 23:26)
- да мне похрен как именно он называется, решение прошу - General(22.08.2023 23:14)
- КИХ крайне затратен на вычисления, по сравнению с БИХ. Но если
очень хочется, то коэффициенты КИХ находятся через обратное
косинус-преобразование Фурье от желаемой АЧХ. ps С БИХ всё сложнее - argus98(22.08.2023 22:54)
- у FIR постоянная времени меняется коэффициентами? Где можно найти
готовое (Ctrl-C Сtrl-V) решение? - General(22.08.2023 22:36)