Цифровые фильтры - основы, принципы, примеры
ฝัง
- เผยแพร่เมื่อ 5 มิ.ย. 2024
- В видео рассматриваю вопросы программирования цифровых фильтров
Конкурс PCBWay www.pcbway.com/activity/4th-p...
Изготовление печатных плат: www.pcbway.com/
Интересные сайты: Паяльник cxem.net/
Существует просто огромное количество задач в современном мире которые решаются цифровой обработкой или же цифровой фильтрацией, я в качестве примера сосредоточу внимание на достаточно простом случае, это борьба с широкополосным шумовым сигналом который может мешать точному измерению каких либо величин или качественному управлению каким либо процессом.
00:00 Вступление
01:32 Конкурс PCBWay
02:07 Классификация фильтров
03:57 Эвристические алгоритмы
08:23 Фильтры Конечной Импульсной Характеристики
13:30 Фильтры Бесконечной Импульсной Характеристики
18:08 Адаптивные фильтры
***********************************
Проект в Arduino IDE drive.google.com/file/d/1e76V...
***********************************
Для прямой помощи каналу, перевод с банковских карт:
yoomoney.ru/to/4100116712276152
Модули производства TDM Lab: vk.link/tdm_lab
Группа ВК: tdm_lab
*********Оборудование**********
Осциллограф Siglent SDS1204X-E alii.pub/5wipuv
Паяльная станция KSGER T12 STM32 alii.pub/5wiq92
Паяльный фен KSGER STM32 alii.pub/5wiq1v
*********Расходники**********
Припой HX-T100 alii.pub/5x7gm2
Паяльная паста XG-50 alii.pub/5x7giy
**************STM32**************
STM32G474 Nucleo-64 alii.pub/5sdxo3
STM32F103C8T6 alii.pub/5sbhoe
STM32F103C8T6 Black ali.pub/579d2l
STM32F401CCU6 ali.pub/56s1yb
STM32F411CEU6 ali.pub/56s1yb
STM32F407VET6 alii.pub/5rm368
Программатор ST-Link V2 ali.pub/56weqg
***********Источники опорного напряжения***********
LM399 2,5В/5В/7,5В/10В alii.pub/4li4xj
***********ПЛИС/FPGA***********
Отладочная плата Xilinx FPGA Spartan-7 XC7S15 alii.pub/5rm3ih
Отладочная плата Xilinx SoC FPGA Zynq7000 XC7Z010 alii.pub/5sbga8
Отладочная плата Xilinx FPGA Artix-7 XC7A35T DDR3 256MB alii.pub/5sbgk5
**************Arduino**************
Arduino Uno ATmega328p ali.pub/56s0bz
Arduino Nano ATmega328 ali.pub/56weyt
Arduino Micro ATmega32u4 ali.pub/4m7upw
Arduino Leonardo ATmega32u4 ali.pub/56weg5
Arduino Mega ATmega2560 alii.pub/5sbgtv
*******Шаговые двигатели*******
NEMA17 Hanpose alii.pub/5sbh9f
NEMA23 Hanpose alii.pub/5sbhcx
NEMA34 Hanpose alii.pub/5sbhea
Драйверы ШД TB6600 alii.pub/5sbhhl
***********Наборы SMD************
Набор резисторов 0805 ali.pub/4o3xz7
Набор резисторов 1206 ali.pub/4o3x4h
Набор конденсаторов 0805 ali.pub/4o3y4u
Набор токовых шунтов 2512 ali.pub/4o3udb
*************АЦП/ЦАП*************
АЦП 16 бит I2C ADS1115 ali.pub/56s0mv
АЦП 18 бит I2C MCP3421 ali.pub/56s17o
АЦП 24 бит SPI ADS1220 ali.pub/4zlq1x
MCP4725 ЦАП 12 бит ali.pub/56s2f8
*********DDS генераторы**********
AD9833 12,5MHz ali.pub/4ps0xu
AD9850 40,0MHz ali.pub/56s0yq
AD9851 70,0MHz alii.pub/5sbivr
AD9959 4ch 200,0MHz alii.pub/5sbj4b
*********Дисплеи LCD/TFT*********
Экран LCD 12864 ali.pub/4o3w5a
3,5" TFT LCD ali.pub/56w5gl
1,8" TFT SPI LCD ali.pub/56w4oe
1,3" OLED I2C LCD ali.pub/56w8vh
2,42" SSD1306 OLED SPI/I2C ali.pub/4li5yv
ЖК-экран с клавиатурой, 1602 для Arduino Uno ali.pub/56wau2
**************Диоды***************
Диоды Шоттки 100шт [1А, 60В] SR160 alii.pub/5ogndb
Диоды Шоттки 100шт [2А, 100В] SR2100 ali.pub/4o3s9o
Диоды Шоттки 100шт [2А, 60В] SR260 ali.pub/4o3swt
Диоды Шоттки 20шт [5А, 40В] SR540 alii.pub/5ognnm
Диоды Шоттки 20шт [5А, 200В] SR5200 alii.pub/5ognm2
Диоды Шоттки 5шт [60А, 100В] MBR60100 alii.pub/5og62w
Светодиоды SMD 0805 5 цветов ali.pub/4o3tps
Диодный мост GBJ2510 ali.pub/4o3uvs
**************Разное****************
Термоклейкая лента 80x80 мм alii.pub/5m32dc
DC-DC c 8 ~ 32V до 45 ~ 390V alii.pub/5oav2r
Компараторы LM393 ali.pub/4o3tzp
DC/DC 5V/5V ali.pub/4o3w8l
Тестовые точки ali.pub/4o3wgy
Реле 5V / 230VAC 10A ali.pub/4o3xi3
Оптопары PC817 ali.pub/4o3xpa
ACS712 Датчик тока ali.pub/56s27u
*************************************** - วิทยาศาสตร์และเทคโนโลยี
Если я ещё раз прочитаю в коментах, что при оцифровке сигналов на входе не нужен аналоговый фильтр, у меня точно бомбанёт.
Ссылочку которую Вы кинули к сожалению ютуб не пропустил и я не могу восстановить то сообщение, но я посмотрел предложенный курс по ЦОС, автор Сергиенко и я собственно о его книге на 22:03 и говорю, вроде есть и 3-е издание и думаю на 700 страницах содержится даже больше чем в курсе, хотя для тех кому нужны задания то можно и курс пройти, тем более бесплатный.
ps прикреплю здесь, мне ютуб позволяет) openedu.ru/course/eltech/DSP/
Ну и куда мне прилепить анологовый фильтр, если у меня на входе временные интервалы.
@@TDMLab я когда присматривался к ЦОС, сколько книжки не открывал, все бестолку. Книжек много, информации много, а ничего не откладывается в голове. А вот курс реально хорош, т.к. помимо просто инфы даются ещё тестовые задания и лабы. Плюс можно с самим автором курса пообщаться, вопросы позадавать.
@@DirectionToTheTopникуда. у вас задача другая. Ваш сигнал дискретное значение амплитудой допустим 3,3 Вольта. Поэтому и шумы у вас должны быть тех же порядков. Я же подразумевал оцифровку сигнала (например звука) где шаг сигнала может быть 1/65536 Вольт и шумы тех же порядков.
@@Paltus667
такая же херня
пишут так, что ничего не понять
проще ролик посмотреть
изучал сдр, там фильтры тоже были и я даже понял малость, только практикой не занимался
а началось все с того, что я захотел узнать, как генерится звук компутером и как из матана получить этот код для генерации звука
После ДиХалта думал уже не будет таких крутых авторов в рунете по теме электроники, но у вас помимо высокого профессионального уровня еще есть талант делать замечательные обучающие и объясняющие материалы. Круто! Продолжайте, уверен это будет оценено растущей аудиторией
математика из университета перестала быть бесполезной, спасибо за видео)
По цифровой обработке на Ютубе одни англоязычные индусы) спасибо за образовательные видео!
Наконец-то хороший канал по электронике. Автору успехов! Главное не останавливайся))
Фильтр Калмана был в квадрокоптерах, там, как раз, мат.модель нужна. Только сигналы шли из многих датчиков, по степени доверия и корреляции между датчиками как-то оценивали состояние объекта. Потом стали появляться статьи о новых алгоритмах для квадриков, там совсем тяжко понять. А до всего этого делали "сумматор" состояния, после фильтрации данных с медленного (но стабильного во времени) датчика подмешивали данные с быстродействующего (но шумного и нестабильного по времени) датчика. Объект оперативно реагирует на резкие воздействия и плавно стремится к нужному состоянию.
Мега-толковая лекция получилась! Спасибо большое!
Очень хорошее видео. Одно из самых лучших на русском! 👍
Спасибо за отличное видео, смотрел не отрываясь. С большим интересом смотрю, особенно последние. Так держать!
Спасибо за отзыв
Очень крутой выпуск, спасибо.
Про КИХ-фильтры интересная тема, при случае попробуем.
Позновательно и наглядно, респект!
Отличная подача материала! Так держать!
ЦОС это круто! Ждем продолжения!!!
Класс, давайте ещё интересного контента😀
Спасибо вам за обзор фильтров! Классно!
Спасибо за отзыв!
Желаю дальнейшего развития канала и автору не останавливаться в духовном росте
Да не нужно автору автору никакого духовного роста, он технарь, а не религиозный "ужасень". :)
Супер подача и материал!
Мало! Давай ещё!
это шедевр!
Спасибо, очень полезно и доступно
Прям видео под руку)
только вчера в маршрутке подслушал)
Если бы ты выпустил это видео пораньше года на 4, когда я сдавал ЦОС в универе :)
Отличная подача материала, респект
Давай еще!
давай цикл про ЦОС , теорему Котельникова и всякое такое )
хорошо, кратко и по делу
Спасибо большое!
Ооо. Через две недели пригодится)
Братан, ты прекрасен : )
Молодец! Спасибо!
Спасибо!
Отлично!
Интересно!
Монументально!
Спасибо! Каждый раз когда смотрю такие видео убеждаюсь, что нас в универе 6 лет учили чему-то не тому, чему надо было. Факультет элеткроники, телекоммуникации.
была база типа чебышев, бессель, баттерворт, с проектированием на SPICE и теоретическим расчётом??
Как же хорошо что в большинстве ацп фильтр уже встроен. Хотя теперь я понял откуда задержка перед первым отсчетом, спасибо).
Да, цифровой фильтр является неотъемлемой частью сигма-дельта АЦП и да, ему нужно некоторое время для прохода первого отсчета до выхода.
@@TDMLab Кстати, про сигма-дэльта АЦП (и чисто морфологически - почему именно сигма и именно дэльта) - лично я несколько раз пытался понять как именно он работает читая доки например на 20-24 бита АЦП (например AD7710-AD7714, которые я выпросил у внедренцев промышленных весов) для мостовых преобразователей (например тензорезисторных) физических величин, но взаимосвязанная с другими знаниями в моей голове мозаика не сложилась.
@@pswru Ну типа мы дробим аналоговый сигнал на однобитный поток маленьких дельт, а потом складываем их сигмой:)
th-cam.com/video/NrkFd7h6R2Y/w-d-xo.html
Подача материала огонь, разжевал и в рот положил, помню в универе мозг плавился когда ЦОС проходили
Обычно делаю фильтр скользящего среднего из 5-7 значений, исключая самое большое и самое маленькое значение, чтобы отбросить единичные ошибки считывания. И после этого на БИХ-фильтр 1го порядка. Расчеты очень простые и работает достаточно хорошо.
Кстати, подобными программными ФНЧ довольно эффективно гасится дребезг кнопок.
Эвристика, но вполне имеет право на жизнь:)
Очень круто, как и всегда. Можно смело сказать научная работа. Вещь интересная, правда область применения узкая.
Область применения настолько огромна, что не знаешь, за что хвататься: частоты сигналов в живых тканях лежат в диапазоне 20 порядков величины. А все нужны. Например, этап формирования кардиогенной пластинки и первых сосудов - какая-то умопомрачительная голограммы, а ее разбор, пока еще не проведенный, очень многое даст в управлении ростом и дифференцировкой тканей. Лень писать - наиболее общих приложений в биологии о медицине навскидку с десяток.
@@user-is1zj2re8p я не спорю, для специалистов огромная, для обычных обывателей, на кого по большей части рассчитан канал, не так и много кто будет этим заниматься. Но материал подан превосходно.
15:50 1. Есть важный прием, когда при создании фильтров высокого порядка их дробят на фильтры второго порядка. Это связано с тем, что в исходном фильтре все коэффициенты приобретают очень большой разброс и начинают упираться в вычислительные ограничения. При преобразовании к каскаду фильтров второго порядка коэффициент внутри легче контролировать
2. Если соединить подряд два ФНЧ то итоговая полоса пропускания у них будет меньше, чем у каждого в отдельности.
1. Да, конечно, на 16:58
2. Да так, потому я и отнес это к эвристике.
А практика когда? На конкретном жизненном примере.
Круть. На одном дыхании(правда с паузами, что бы успеть размотать в голове) смотрел.
Лично у меня, с представлением аналоговых фильтров проблем нет
(советское образование), а у автора ещё и программная реализация. Вот это я понимаю стык дисциплин.
P.S. Кто все эти люди, что влепили дизлайки? :)
Спасибо за отзыв!
А это статистический шум, без этого никуда:)
@@TDMLab Раньше вроде были слухи что дизлайки повышают шанс видоса зайти в рекомендации и тренды - типа горячая тема. И якобы выстреливали видосы у которых лайков и дизов было примерно поровну.
Но потом мир изменился. А всем нравится - не реально, кому-то будет слишком просто и банально/обыденно, кому-то слишком сложно и непонятно.
Лично мне очень зашло (весьма смотрябельно, и кода хороша в наухах особенно), ибо например так или иначе мечтаю воткнуть паяльник в ламповую Волна-К (хотяб синтезаторы AD9910 или AD9959 прикалхозить и смесители поменять, а как максимум сваять дистанционно управляемый реверсивный ламповый каскад нагруженный и расположенный около магнитной антенны с механической перестройкой вакумным КПЕ раза в 4 по частоте ), а тема ЦОС вообще и цифровых фильтров в частности так или иначе в программно-определяемом радио касается.
@@pswru Сейчас есть параметр "вовлеченность аудитории" и типа лайки и дизлайки поровну оцениваются главное чтобы было взаимодействие с видео. Но там куча алгоритмов и это лишь малая часть уравнения.
Если бы DA9910 не стоил бы 4к я бы его уже давно поковырял.
@@TDMLab Ну просто генерить синус AD9910 скучновато (полагаю что написать код на асме для буратины у лично меня займёт меньше месяца)- надо именно в контексте радиоприёма как ГПД без особой фильтрации опробовать и сравнить с более грубыми собратьями в плане уменьшения гармоник/характерных призвуков, слышимых на приёме при перестройке частоты гетеродина.
Медианный фильтр хорошо подходит для фильтрации широкополосного сигнала. Да, основная цель убирать выбросы, но вместе с каким нибудь другим фильтром, возрастает точность получаемых в итоге данных.
Для отображения результатов измерений ещё он хорош, чтобы цифры не скакали. С усреднением получается не так стабильно.
Может кому пригодится
Я такие алгоритмы использую
НЧ фильтр:
temp = out + (in-out) / fsrez;
out = temp;
In, out - вход, выход, fsrez - число, определяющее глубину среза частот (от 2 до 1000 можете поэкспериментировать), temp - вспомогательная переменная,
Частотный фильтр:
fk = (2 * p i* (ff / fd) - коэффициент частоты, рассчитывается до основного цикла
in = d * in + out * fk
out = d * out - in * fk
d - добротность (от 0 до 0.99, при 1 схема становится генератором), ff - частота настройки фильтра в герцах, fd - частота дискретизации.
Первый раз подумал, что мне показалось, но во второй... музыка из героев меча и магии?)
"Герои, ммать. И Магии." (С)От винта!
Как-то игрался на stm32F7 (216МГЦ) с отрисовкой линий алгоритмами Вуу. Сначала пользовался плавающей точкой, потом фиксированной. Так вот, несмотря на имеющийся аппаратный вычислитель float, с фиксированной точкой отрисовка была раза в 1,5 быстрее.
Так точно, целочисленный аппаратный умножитель всегда победит аппаратный float.
А про Ву почитаю, спасибо)
Вы забыли упомянуть про сдвиг фазы возникающий при фильтрации сигнала. В замкнутых системах управления требуется минимизация этого сдвига.
Коммент для продвижения канала) есть небольшая просьба, расскажи про свой 5 канальный осциллограф, задумался о покупке, и очень меня подкупают 5 каналов, есть ли в нем какие то фатальные (и не очень) недоработки? буду благодарен)
Спасибо! Он 4-х канальный с TRG OUT, из недостатков только то что ленивые разрабы перестали прошивки новые делать:)
Немного подробнее есть здесь th-cam.com/video/rPNzHZdpr3M/w-d-xo.html
@@TDMLab 0_о..а я думал, что все твои видосы смотрел...блин, изначально рассчитывал на DSO4102С (20 т.р.)..а потом на твой канал наткнулся..прийдется еще копить :D..спасибо за инфу и в целом за твое творчество)
Читает! Читаешь и показываешь! ))) Это точно! Но, это нисколько не приуменьшает подачу инженерного материала!
Ну, да, конечно, я читаю предварительно написанный мною текст, иначе никак не добиться высокой плотности информации.
Главное не забывать что фильтрация дискретная и вся благостная картинка соответствует полосе в половину частоты дискретизации. А все что выше в исходном сигнале из-за дискретизации сворачивается и накладывается на исходный низкочастотный сигнал. Т.е. прежде чем принимать сигнал в контроллер надо аналоговым фильтром отрезать все что выше половины частоты дискретизации.
Конечно, возможно будет видео по алиасинг, думал даже показать наглядно как происходит отражение спектра.
@@TDMLab что значит возможно - а ну бегом записывать!)
@@TDMLab Нужно такое видео. Потому как очень многие не понимают, что там не просто "забор" из АЧХ, но и преобразование спектра. Причем, эта проблема замечено даже у Fnirsi.
@@mslq Программно это сделать невозможно. Преобразование спектра происходит в момент дискретизации и что потом с полученным сигналом не делай, отделить сигнал от свернутого вниз ВЧ-шума уже нельзя.
@@mslq А вообще - многие строители роботов банальные любители которые познают наугад то, что преподавалось в ВУЗах на лекциях по автоматике или обработке сигналов. Очень многие алгоритмы они не используют только потому, что они имеют положительные обратные связи которые без изначального расчета неустойчивы и наугад трудно настраиваемые. Зачастую останавливаются максимум на ПИД.
Я вааще ни хера не понял, особенно под конец, чуть башка не лопнула. Молодец 👍, подписка
Не хватает еще пару слов про Люенбергера и три семестра ТАУ за 25 минут понятным языком с понятным применением готово! Автор молодец!
Спасибо за отзыв! Да, наблюдатели состояний, это крайне сильный инструмент.
Хотелось бы ещё примеров используя возможности stm32g4 в сравнении с другими стм32, по затратам ресурсов и прочими особенностами.
У G4 серии ядро Cortex M4, такое же как и большинства современных МК общего назначения. Преимущества при работе на ядре будут только в сравнении с F1 например которые на Cortex M3 или другими без DSP инструкций.
Единственная особенность что есть у серии G4 это наличие аппаратного фильтра (FMAC), о нем я уже на этом канале рассказывал.
Что смотрят люди: тикток. Что смотрю я, не особо понимая, но с гигантским интересом:
Что лучше пользовать из фильтров для подавления сетевой помехи, чтоб с минимальными задержками? Крутиться должно на кортексе м3, дальше сигнал запихивается в модбас, поэтому данные нужны не чаще 7мс...
Частный случай полосно-заграждающего фильтра его еще иногда называют фильтр-пробка, в англоязычной терминологии "notch filter", а по реализации скорее всего БИХ. Порядок исходя из ТЗ.
Привет! Я правильно понял, что static переменные в примерах кода (на 14:32 например) после выхода из функции не "забываются" а продолжают висеть в памяти и при новом обращении к функции берется их значение с прошлого прохода?
Совершенно верно.
@@TDMLab спасибо
Думал, что ни к чему не смогу придраться, а всё же смог: 13:21: "тут никак не оптимизировать": если не ошибаюсь, то при большом размере фильтра становится выгоднее применить преобразование Фурье. Дважды. Сам, правда, так делать не пробовал.
Да есть такое, фильтры на БПФ.
Но это уже отдельная ветка фильтров которая в мой рассказ уже не вмещалась.
Современные фильтры для связи типа OFDM вроде все в частотной области работают.
Матлаб это замечательно, конечно, но в инженерной практике удобнее программа Filter Solutions , она позволяет проектировать и цифровые фильтры (в виде кусков кода на Си), так и схемотехнические решения активных/пассивных фильтров. Программа, конечно, денег стоит, но очень экономит время на изобретение велосипеда (есть, конечно и таблетка от жадности, но лучше в этом случае запускать в виртуальной машине без доступа к интернету, - программа собирает информацию и отправляет создателям, а те рассылают предупреждения и угрозы подать в суд).
Возможно. Никогда не пользовался этой программой и что-то мне подсказывает, что и не буду)
Сейчас для каждой микропроцессорной или ПЛИС архитектуры созданы библиотеки генерации фильтров с оптимизацией и открытыми лицензиями. То что я проделал в видео было лишь примером, дающим представление о самом примитивном способе создания фильтров.
Можно ли с вами связаться по вопросам разработки?
Информация есть в разделе "о канале".
Привет, а можешь разобрать проблемы которые могут возникать при переделки преобразователей-источников напряжения в источники тока? Например такие как потеря устойчивости
Я бы может и разобрал эти проблемы если бы занимался этой переделкой источников напряжения в источники тока)
Я хочу переделать старый промышленный аналоговый металлдетектор для конфет под цыфровое управление, какой фильтр выбрать, с чем разбираться, я не такой умный как Вы, и буду благодарен даже за маленькую подсказку в этом вопросе, спасибо... ПС...Я посмотрел Ваш пример, так вроде бы понятно
Начать можно с осциллограммы или графика оцифровки сигнала, насколько там все плохо и какие проблемы есть. По фильтрации и не только, всегда начинают с простого, а потом как пойдет.
Оговорились вначале про ФНЧ?
Почувствовал приобщенным к науке, хотя половину не понял.
Доброго времени суток, интересует вопрос реализации рассчитанного в матлабе фильтра, на микроконтроллере STM32. В filterDesigner есть пункт Targets>Generate C header... при этом он создает файл .h, но не совсем понятно как дальше использовать. По умолчанию с плавающей точкой двойной точности, имеется возможность перейти к целочисленной математике. Данную тему только начинаю осваивать, может быть я смотрю изначально в неправильном направлении подскажите что и как. Буду крайне благодарен.
Направление точно правильное, но лично я не использовал матлаб как кодогенератор, хотя это интересно. Вообще должно быть по идеи 2 файла хедер и си-шный файл и мы их просто к проекту прикрепить должны и вызвать фильтр как функцию. А что в этом хедере?
@@TDMLab могу ошибаться в терминах, но вроде две структуры в виде матрицы 3 столбца и строк равных порядку фильтра (могу ошибаться). При выборе плавающей точки двойной точности, тип real 64, а целочисленная int 32. Прошу прощения если очевидное сказал. Только вхожу в мир программирования, до этого только Siemens PLC программировал там графический язык lad, fbd.
P.s. забыл добавить, в структуре записаны коэффициенты.
@@user-en7qm3kv2z Ну да, верно в хедер файле и должны быть коэффициенты, значит ещё должнен быть си-шный файл где сам алгоритм фильтра будет, и там должно быть обращение к хедер-файлу для инициализации.
Точнее рассказать не смогу така как сам через матлаб код не генерировал, может потом попробую. Вы можете пока попробовать те методы, что я описал в видео то есть вручную перетащить коэффициенты в код, если не всё понятно по этой системе в матлабе.
@@TDMLab большое спасибо.
сделай гайд плиз на цифровой фильтр для сигма-дельта модулятора чтобы сделать Σ-Δ АЦП
ничего не понятно, но очень интересно....
Всё замечательно только для начинающих совершенно непонятно как это реализовать на приктике
Круто! Надо только выкинуть из текста, часто повторяющиеся слова паразиты (на самом деле).
А как оно на самом деле - видно лишь из небесной канцелярии, согласен.
Так что на самом деле - это не просто слово-паразит, это гораздо глубжее, на лично мой взгляд.
Можете снять видос как правильно измерять ёмкость 18650
th-cam.com/video/tfHyggAKJZ8/w-d-xo.html
В астрофотографии видел используют эвристический с уменьшением влияния по сигме.
Интересно, не знал.
Уууууууууу дремучий лес!
Да, не:) Не так страшен чёрт, как его малюют:)
По ЦОС есть еще прикольная книжка от Сато
Действительно забавные картинки)
Ничего не понял ... но очень интересно !
Ну как же без такого комментария) спасибо!.
Извините, не нашел ссылку на программный код.
В описании после строк Проект в Arduino IDE
Ну вот, возвращаясь к нашему предыдущему разговору - так теперь раз уж вы начали разбирать цифровые фильтры то вам больше не придётся делать антидребезг аппаратно как в том известном случае, а я тогда сказал что сделал это намного красивей программно на AtTiny 10, и та шабашка имела успех у заказчика, сделано не мало экземпляров, блоки конкурента выпадали по мере эксплуатации и заменялись на мои.
Я начал разбирать цифровые фильтры лет 12 назад когда делал адаптивный эквалайзер к системе связи специальногоj назначения:) И вот до сих пор считаю, что если позволяет место лучше поставить триггеры Шмитта и уделить большее внимание действительно серьезным вещам в проекте чем борьба с каким-то там дребезгом:)
@@TDMLab Ну да, ну да, конкурент тоже так думал, и тоже не недооценивал дребезг, да вообще в этом мало кто разбирается.
@@TDMLab А с дребезгом я больше не борюсь, я просто нужные параметры ввожу в макро, даже возможно динамически, каждый раз новые. Это намного удобней чем каждый раз триггер шмитта перед RC, потом после триггер шмитта, сами знаете, без такой цепочки не работает.
@@mslq Я не сколько не против программной реализации, и даже поддерживаю это. Можете тут оставить код или описание вашего алгоритма думаю это будет точно в тему для тех кто смотрит такие видео.
@@TDMLab Вот самый простой и очень эффективный метод: каждую миллисекунду читается вход и только например 20 раз одинаковый с предыдущими имеет какое то значение, это и будет событием 0 или 1, дальше больше - в макросе есть параметр удержание например 200, это значит что один и тот же вход повторился 200 раз это появляется событие "удержание", и так далее, удержание тоже может быть 0 или 1, и прочие, как клики, двойное нажатие и ещё всего можно напридумывать. В итоге каждый вход даёт поток событий, кому нужно какое тот его и использует, живёт событие только 1 миллисекунду - операционная система тут, по этому такая конфигурация очень удобна.
+1
На мой взгляд дилетанта - важный выпуск. Продолжение бы?
Почему нет ни одного видео про SC-фильтры на TH-cam ?
SC? CiC фильтры знаю, SC не знаю.
@@TDMLab , в англоязычных источниках используется термин "switched-capacitor filters".
@@alexandersedunov9117 Понятно, фильтры на переключаемых конденсаторах это все-таки аналоговое устройство. Да и в целом достаточно тупиковая, как по мне, ветка т.к. их вытеснили цифровые фильтры.
@@TDMLab , тем не менее, нет ни одного видео про SC-фильтры на русском языке. Классические учебники гласят, что у цифровых фильтров периодическая АЧХ, поэтому перед ними нужно ставить аналоговые.
@@alexandersedunov9117 Да про многие фильтры нет на русском и даже не ютубе, а вообще.
Ну вобще то БИХ-первого порядка это тоже скользящее среднее. Экспоненциально взвешенное. Удобно, что быстрое и коэффициент легко меняется.
Скользящее среднее это нерекурсивный фильтр в отличии от БИХ. Есть спец. случай CIC-фильтров, это отдельная ветка линейно-фазовых БИХ которые могут быть синтезированы с АФЧХ которая идентична скользящему среднему. Как я говорил в видео я затронул тут лишь малу часть веток фильтров.
Но БИХ первого порядка это не скользящее среднее.
@@TDMLab Формула одинаковая, хотя название разное. :)) В википедии "Экспоненциально взвешенное скользящее среднее". Очень часто используемый фильтр. Странно, что Вы его не знаете.
@@sergeyrink3003 Эм, я вроде пояснил в чем отличие. Скользящее среднее это нерекурсивный фильтр, БИХ рекурсивный. Дело не в формуле, хотя она конечно разная, а в их свойствах. Простое скользящее среднее это линейно фазовый фильтр по определению, БИХ - нет.
Хотя я и говорю на 14:58 что БИХ первого порядка по АЧХ близок к Простому скользящему среднему, но это не значит что это касается и ФЧХ.
@@TDMLab То, что вы говорите это конечно хорошо, но тупить не нужно. :) Если формула одна то и свойства одинаковые. Д свиданья мой тупой друг.
@@sergeyrink3003 Ладно, двоечникам тут не место, гуляй. Не советую учится по Википедии, книгу нормальную даю в конце.
Как сказал классик -Очень интересно но ничего не понятно(с).
При оцифровке сигналов на входе не нужен аналоговый фильтр.
Это заблуждение, аналоговый фильтр должен быть обязательно. Как минимум для снижения алиас-эффекта или другими словами переноса спектра. Например если частота оцифровки будет 100кГц, а помеха будет на частоте 90кГц, то после оцифровки помеха будет перенесена на частоту 10кГц, что весьма вероятно попадёт в полосу полезного сигнала.
я так понял вы кому-то делали курсовую. а материал остался...
спасибо пользовался только скользящим средним
Нет конечно) хотя материал остался действительно, пожалуйста.
Вот, уже цифровые фильтры пошли в ход. Это хорошо. А то всё то у нас любят, как в каменном веке, на ногу микроконтроллера лепить RC цепочки или, даже, целый лишний корпус ОУ или триггера шмидта накидывать.
Вы в корне не правы. То что лепят это НЕОБХОДИМОСТЬ при оцифровке сигналов. Погуглите антиалиасинговый фильтр и теорему Котельникова.
Да, перед цифровой обработкой не нужны никакие RC на входе, они не решают проблему, только переводят её в более низкочастотную область где её ещё трудней решить и довольно медленней.
Так совсем без RC все равно никак, алиасинг мать его:) Если будет шумовая гармоника на частоте близкой к частоте взятия выборок то её будет цифрой просто не победить. Да и у Шмитта задачи другие.
@@TDMLab Согласен только с тем что самые верхние частоты срезать которые всё равно не будут иметь значение при оцифровке, они ведь всё равно не видны, их амплитуда меньше. А например есть такой приём что нужно добавить в сигнал шума тогда точность ADC даже поднимается, на разряд, два, я не раз демонстрировал это с 10 битовым ADC, а точность намного выше, показывались даже цифры после запятой, которых нет в ADC.
@@TDMLab, без RC никак если рядом радиопередатчик работает с мощностью такой, что наводки на провода до кнопок после детектирования на внутренних диодах микроконтроллера аж напряжение питания ему задирает.
Вах
Сергиенко книжка классная. + Есть его лекции по цифровой связи, смотрятся на 1 дыхании th-cam.com/video/6iJPYGxVoOk/w-d-xo.html
Ооо! ничего себе, спасибо!
О. Автор получил что то похожее на давно воплощенное в железо (примерно в 96 году в массовом производстве) передачу сигнала в белых шумах. хотя нет. досмотрел - ему еще далеко до этого...
но все равно плюс )
Да как бы в связи с отрицательным сигнал-шумом передают, ничего такого в этом нет. Чего-кому далеко, непонятно))
Бирюзовый? Вы уверены?
Хаа-ха))) почему я сказал бирюзовый...))))
Ну да, я тоже обратил внимание)) пурпурный приблизительно )))
@@user-gq4lg3nz6i Маджента этот цвет называется
калман график биткоина предскажет?
Конечно, если дать ему матрицу динамической модели системы)
@@pswru Что-то типа этого я и имел ввиду:) Типа модель экономики... всей:)
Жаль, что про ФВЧ ничего не услышал.
В начале говорю, что не могу физически рассмотреть все возможные ветки частотно-избирательных фильтров поэтому беру только одну. Для случаев синтеза КИХ/БИХ с помощью программных средств разницы ФНЧ/ФВЧ нет.
@@TDMLab Спасибо, я уже понял, что реализация одинаковая. На практике можно обойтись более простыми критериями скорости изменения сигнала и плавающим порогом на скользящем среднем. Получается адаптивный программный ФВЧ.
@@sergeyrink3003 Существует бесконечно много различных алгоритмов, выбор же зависит от конкретной задачи.
++++++
Преподы по ТАУ в слезах дерутся за веревку с мылом...
Да, вроде нет, даже наоборот;)