Ссылочку которую Вы кинули к сожалению ютуб не пропустил и я не могу восстановить то сообщение, но я посмотрел предложенный курс по ЦОС, автор Сергиенко и я собственно о его книге на 22:03 и говорю, вроде есть и 3-е издание и думаю на 700 страницах содержится даже больше чем в курсе, хотя для тех кому нужны задания то можно и курс пройти, тем более бесплатный. ps прикреплю здесь, мне ютуб позволяет) openedu.ru/course/eltech/DSP/
@@TDMLab я когда присматривался к ЦОС, сколько книжки не открывал, все бестолку. Книжек много, информации много, а ничего не откладывается в голове. А вот курс реально хорош, т.к. помимо просто инфы даются ещё тестовые задания и лабы. Плюс можно с самим автором курса пообщаться, вопросы позадавать.
@@DirectionToTheTopникуда. у вас задача другая. Ваш сигнал дискретное значение амплитудой допустим 3,3 Вольта. Поэтому и шумы у вас должны быть тех же порядков. Я же подразумевал оцифровку сигнала (например звука) где шаг сигнала может быть 1/65536 Вольт и шумы тех же порядков.
@@Paltus667 такая же херня пишут так, что ничего не понять проще ролик посмотреть изучал сдр, там фильтры тоже были и я даже понял малость, только практикой не занимался а началось все с того, что я захотел узнать, как генерится звук компутером и как из матана получить этот код для генерации звука
После ДиХалта думал уже не будет таких крутых авторов в рунете по теме электроники, но у вас помимо высокого профессионального уровня еще есть талант делать замечательные обучающие и объясняющие материалы. Круто! Продолжайте, уверен это будет оценено растущей аудиторией
Область применения настолько огромна, что не знаешь, за что хвататься: частоты сигналов в живых тканях лежат в диапазоне 20 порядков величины. А все нужны. Например, этап формирования кардиогенной пластинки и первых сосудов - какая-то умопомрачительная голограммы, а ее разбор, пока еще не проведенный, очень многое даст в управлении ростом и дифференцировкой тканей. Лень писать - наиболее общих приложений в биологии о медицине навскидку с десяток.
@@ЯкСорок я не спорю, для специалистов огромная, для обычных обывателей, на кого по большей части рассчитан канал, не так и много кто будет этим заниматься. Но материал подан превосходно.
15:50 1. Есть важный прием, когда при создании фильтров высокого порядка их дробят на фильтры второго порядка. Это связано с тем, что в исходном фильтре все коэффициенты приобретают очень большой разброс и начинают упираться в вычислительные ограничения. При преобразовании к каскаду фильтров второго порядка коэффициент внутри легче контролировать 2. Если соединить подряд два ФНЧ то итоговая полоса пропускания у них будет меньше, чем у каждого в отдельности.
Может кому пригодится Я такие алгоритмы использую НЧ фильтр: 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 - частота дискретизации.
@@TDMLab Кстати, про сигма-дэльта АЦП (и чисто морфологически - почему именно сигма и именно дэльта) - лично я несколько раз пытался понять как именно он работает читая доки например на 20-24 бита АЦП (например AD7710-AD7714, которые я выпросил у внедренцев промышленных весов) для мостовых преобразователей (например тензорезисторных) физических величин, но взаимосвязанная с другими знаниями в моей голове мозаика не сложилась.
@@pswru Ну типа мы дробим аналоговый сигнал на однобитный поток маленьких дельт, а потом складываем их сигмой:) ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-NrkFd7h6R2Y.html
Медианный фильтр хорошо подходит для фильтрации широкополосного сигнала. Да, основная цель убирать выбросы, но вместе с каким нибудь другим фильтром, возрастает точность получаемых в итоге данных.
Главное не забывать что фильтрация дискретная и вся благостная картинка соответствует полосе в половину частоты дискретизации. А все что выше в исходном сигнале из-за дискретизации сворачивается и накладывается на исходный низкочастотный сигнал. Т.е. прежде чем принимать сигнал в контроллер надо аналоговым фильтром отрезать все что выше половины частоты дискретизации.
@@TDMLab Нужно такое видео. Потому как очень многие не понимают, что там не просто "забор" из АЧХ, но и преобразование спектра. Причем, эта проблема замечено даже у Fnirsi.
@@mslq Программно это сделать невозможно. Преобразование спектра происходит в момент дискретизации и что потом с полученным сигналом не делай, отделить сигнал от свернутого вниз ВЧ-шума уже нельзя.
@@mslq А вообще - многие строители роботов банальные любители которые познают наугад то, что преподавалось в ВУЗах на лекциях по автоматике или обработке сигналов. Очень многие алгоритмы они не используют только потому, что они имеют положительные обратные связи которые без изначального расчета неустойчивы и наугад трудно настраиваемые. Зачастую останавливаются максимум на ПИД.
Как-то игрался на stm32F7 (216МГЦ) с отрисовкой линий алгоритмами Вуу. Сначала пользовался плавающей точкой, потом фиксированной. Так вот, несмотря на имеющийся аппаратный вычислитель float, с фиксированной точкой отрисовка была раза в 1,5 быстрее.
Привет! Я правильно понял, что static переменные в примерах кода (на 14:32 например) после выхода из функции не "забываются" а продолжают висеть в памяти и при новом обращении к функции берется их значение с прошлого прохода?
А как оно на самом деле - видно лишь из небесной канцелярии, согласен. Так что на самом деле - это не просто слово-паразит, это гораздо глубжее, на лично мой взгляд.
Думал, что ни к чему не смогу придраться, а всё же смог: 13:21: "тут никак не оптимизировать": если не ошибаюсь, то при большом размере фильтра становится выгоднее применить преобразование Фурье. Дважды. Сам, правда, так делать не пробовал.
Да есть такое, фильтры на БПФ. Но это уже отдельная ветка фильтров которая в мой рассказ уже не вмещалась. Современные фильтры для связи типа OFDM вроде все в частотной области работают.
У G4 серии ядро Cortex M4, такое же как и большинства современных МК общего назначения. Преимущества при работе на ядре будут только в сравнении с F1 например которые на Cortex M3 или другими без DSP инструкций. Единственная особенность что есть у серии G4 это наличие аппаратного фильтра (FMAC), о нем я уже на этом канале рассказывал.
Коммент для продвижения канала) есть небольшая просьба, расскажи про свой 5 канальный осциллограф, задумался о покупке, и очень меня подкупают 5 каналов, есть ли в нем какие то фатальные (и не очень) недоработки? буду благодарен)
Спасибо! Он 4-х канальный с TRG OUT, из недостатков только то что ленивые разрабы перестали прошивки новые делать:) Немного подробнее есть здесь ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-rPNzHZdpr3M.html
@@TDMLab 0_о..а я думал, что все твои видосы смотрел...блин, изначально рассчитывал на DSO4102С (20 т.р.)..а потом на твой канал наткнулся..прийдется еще копить :D..спасибо за инфу и в целом за твое творчество)
Что лучше пользовать из фильтров для подавления сетевой помехи, чтоб с минимальными задержками? Крутиться должно на кортексе м3, дальше сигнал запихивается в модбас, поэтому данные нужны не чаще 7мс...
Частный случай полосно-заграждающего фильтра его еще иногда называют фильтр-пробка, в англоязычной терминологии "notch filter", а по реализации скорее всего БИХ. Порядок исходя из ТЗ.
Доброго времени суток, интересует вопрос реализации рассчитанного в матлабе фильтра, на микроконтроллере STM32. В filterDesigner есть пункт Targets>Generate C header... при этом он создает файл .h, но не совсем понятно как дальше использовать. По умолчанию с плавающей точкой двойной точности, имеется возможность перейти к целочисленной математике. Данную тему только начинаю осваивать, может быть я смотрю изначально в неправильном направлении подскажите что и как. Буду крайне благодарен.
Направление точно правильное, но лично я не использовал матлаб как кодогенератор, хотя это интересно. Вообще должно быть по идеи 2 файла хедер и си-шный файл и мы их просто к проекту прикрепить должны и вызвать фильтр как функцию. А что в этом хедере?
@@TDMLab могу ошибаться в терминах, но вроде две структуры в виде матрицы 3 столбца и строк равных порядку фильтра (могу ошибаться). При выборе плавающей точки двойной точности, тип real 64, а целочисленная int 32. Прошу прощения если очевидное сказал. Только вхожу в мир программирования, до этого только Siemens PLC программировал там графический язык lad, fbd. P.s. забыл добавить, в структуре записаны коэффициенты.
@@КириллЧупов-п4й Ну да, верно в хедер файле и должны быть коэффициенты, значит ещё должнен быть си-шный файл где сам алгоритм фильтра будет, и там должно быть обращение к хедер-файлу для инициализации. Точнее рассказать не смогу така как сам через матлаб код не генерировал, может потом попробую. Вы можете пока попробовать те методы, что я описал в видео то есть вручную перетащить коэффициенты в код, если не всё понятно по этой системе в матлабе.
@@alexandersedunov9117 Понятно, фильтры на переключаемых конденсаторах это все-таки аналоговое устройство. Да и в целом достаточно тупиковая, как по мне, ветка т.к. их вытеснили цифровые фильтры.
@@TDMLab , тем не менее, нет ни одного видео про SC-фильтры на русском языке. Классические учебники гласят, что у цифровых фильтров периодическая АЧХ, поэтому перед ними нужно ставить аналоговые.
Привет, а можешь разобрать проблемы которые могут возникать при переделки преобразователей-источников напряжения в источники тока? Например такие как потеря устойчивости
Я хочу переделать старый промышленный аналоговый металлдетектор для конфет под цыфровое управление, какой фильтр выбрать, с чем разбираться, я не такой умный как Вы, и буду благодарен даже за маленькую подсказку в этом вопросе, спасибо... ПС...Я посмотрел Ваш пример, так вроде бы понятно
Начать можно с осциллограммы или графика оцифровки сигнала, насколько там все плохо и какие проблемы есть. По фильтрации и не только, всегда начинают с простого, а потом как пойдет.
Скользящее среднее это нерекурсивный фильтр в отличии от БИХ. Есть спец. случай CIC-фильтров, это отдельная ветка линейно-фазовых БИХ которые могут быть синтезированы с АФЧХ которая идентична скользящему среднему. Как я говорил в видео я затронул тут лишь малу часть веток фильтров. Но БИХ первого порядка это не скользящее среднее.
@@TDMLab Формула одинаковая, хотя название разное. :)) В википедии "Экспоненциально взвешенное скользящее среднее". Очень часто используемый фильтр. Странно, что Вы его не знаете.
@@sergeyrink3003 Эм, я вроде пояснил в чем отличие. Скользящее среднее это нерекурсивный фильтр, БИХ рекурсивный. Дело не в формуле, хотя она конечно разная, а в их свойствах. Простое скользящее среднее это линейно фазовый фильтр по определению, БИХ - нет. Хотя я и говорю на 14:58 что БИХ первого порядка по АЧХ близок к Простому скользящему среднему, но это не значит что это касается и ФЧХ.
Вот, уже цифровые фильтры пошли в ход. Это хорошо. А то всё то у нас любят, как в каменном веке, на ногу микроконтроллера лепить RC цепочки или, даже, целый лишний корпус ОУ или триггера шмидта накидывать.
Да, перед цифровой обработкой не нужны никакие RC на входе, они не решают проблему, только переводят её в более низкочастотную область где её ещё трудней решить и довольно медленней.
Так совсем без RC все равно никак, алиасинг мать его:) Если будет шумовая гармоника на частоте близкой к частоте взятия выборок то её будет цифрой просто не победить. Да и у Шмитта задачи другие.
@@TDMLab Согласен только с тем что самые верхние частоты срезать которые всё равно не будут иметь значение при оцифровке, они ведь всё равно не видны, их амплитуда меньше. А например есть такой приём что нужно добавить в сигнал шума тогда точность ADC даже поднимается, на разряд, два, я не раз демонстрировал это с 10 битовым ADC, а точность намного выше, показывались даже цифры после запятой, которых нет в ADC.
@@TDMLab, без RC никак если рядом радиопередатчик работает с мощностью такой, что наводки на провода до кнопок после детектирования на внутренних диодах микроконтроллера аж напряжение питания ему задирает.
О. Автор получил что то похожее на давно воплощенное в железо (примерно в 96 году в массовом производстве) передачу сигнала в белых шумах. хотя нет. досмотрел - ему еще далеко до этого...
Сергиенко книжка классная. + Есть его лекции по цифровой связи, смотрятся на 1 дыхании ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-6iJPYGxVoOk.html
В начале говорю, что не могу физически рассмотреть все возможные ветки частотно-избирательных фильтров поэтому беру только одну. Для случаев синтеза КИХ/БИХ с помощью программных средств разницы ФНЧ/ФВЧ нет.
@@TDMLab Спасибо, я уже понял, что реализация одинаковая. На практике можно обойтись более простыми критериями скорости изменения сигнала и плавающим порогом на скользящем среднем. Получается адаптивный программный ФВЧ.
Фильтр Калмана был в квадрокоптерах, там, как раз, мат.модель нужна. Только сигналы шли из многих датчиков, по степени доверия и корреляции между датчиками как-то оценивали состояние объекта. Потом стали появляться статьи о новых алгоритмах для квадриков, там совсем тяжко понять. А до всего этого делали "сумматор" состояния, после фильтрации данных с медленного (но стабильного во времени) датчика подмешивали данные с быстродействующего (но шумного и нестабильного по времени) датчика. Объект оперативно реагирует на резкие воздействия и плавно стремится к нужному состоянию.
Книга Сергиенко хороша для начинающих, особенно применительно в связке с MatLab. По сути это расширенное изложение его курса лекций по DSP, читаемых в СПБ Электротехническом Университете. Для практических применений более интересна книга Ричарда Лайонса "Цифровая обработка сигналов" (Lyons "Understanding Digital Signal Processing" ), она издавалась у нас в печатном виде в середине 2000-х, но и в сети можно найти. Особенно рекомендую обратить внимание на то, что описано в приложениях.
Матлаб это замечательно, конечно, но в инженерной практике удобнее программа Filter Solutions , она позволяет проектировать и цифровые фильтры (в виде кусков кода на Си), так и схемотехнические решения активных/пассивных фильтров. Программа, конечно, денег стоит, но очень экономит время на изобретение велосипеда (есть, конечно и таблетка от жадности, но лучше в этом случае запускать в виртуальной машине без доступа к интернету, - программа собирает информацию и отправляет создателям, а те рассылают предупреждения и угрозы подать в суд).
Возможно. Никогда не пользовался этой программой и что-то мне подсказывает, что и не буду) Сейчас для каждой микропроцессорной или ПЛИС архитектуры созданы библиотеки генерации фильтров с оптимизацией и открытыми лицензиями. То что я проделал в видео было лишь примером, дающим представление о самом примитивном способе создания фильтров.
Обычно делаю фильтр скользящего среднего из 5-7 значений, исключая самое большое и самое маленькое значение, чтобы отбросить единичные ошибки считывания. И после этого на БИХ-фильтр 1го порядка. Расчеты очень простые и работает достаточно хорошо. Кстати, подобными программными ФНЧ довольно эффективно гасится дребезг кнопок.
Ну вот, возвращаясь к нашему предыдущему разговору - так теперь раз уж вы начали разбирать цифровые фильтры то вам больше не придётся делать антидребезг аппаратно как в том известном случае, а я тогда сказал что сделал это намного красивей программно на AtTiny 10, и та шабашка имела успех у заказчика, сделано не мало экземпляров, блоки конкурента выпадали по мере эксплуатации и заменялись на мои.
Я начал разбирать цифровые фильтры лет 12 назад когда делал адаптивный эквалайзер к системе связи специальногоj назначения:) И вот до сих пор считаю, что если позволяет место лучше поставить триггеры Шмитта и уделить большее внимание действительно серьезным вещам в проекте чем борьба с каким-то там дребезгом:)
@@TDMLab А с дребезгом я больше не борюсь, я просто нужные параметры ввожу в макро, даже возможно динамически, каждый раз новые. Это намного удобней чем каждый раз триггер шмитта перед RC, потом после триггер шмитта, сами знаете, без такой цепочки не работает.
@@mslq Я не сколько не против программной реализации, и даже поддерживаю это. Можете тут оставить код или описание вашего алгоритма думаю это будет точно в тему для тех кто смотрит такие видео.
@@TDMLab Вот самый простой и очень эффективный метод: каждую миллисекунду читается вход и только например 20 раз одинаковый с предыдущими имеет какое то значение, это и будет событием 0 или 1, дальше больше - в макросе есть параметр удержание например 200, это значит что один и тот же вход повторился 200 раз это появляется событие "удержание", и так далее, удержание тоже может быть 0 или 1, и прочие, как клики, двойное нажатие и ещё всего можно напридумывать. В итоге каждый вход даёт поток событий, кому нужно какое тот его и использует, живёт событие только 1 миллисекунду - операционная система тут, по этому такая конфигурация очень удобна.
Это заблуждение, аналоговый фильтр должен быть обязательно. Как минимум для снижения алиас-эффекта или другими словами переноса спектра. Например если частота оцифровки будет 100кГц, а помеха будет на частоте 90кГц, то после оцифровки помеха будет перенесена на частоту 10кГц, что весьма вероятно попадёт в полосу полезного сигнала.
Круть. На одном дыхании(правда с паузами, что бы успеть размотать в голове) смотрел. Лично у меня, с представлением аналоговых фильтров проблем нет (советское образование), а у автора ещё и программная реализация. Вот это я понимаю стык дисциплин. P.S. Кто все эти люди, что влепили дизлайки? :)
@@TDMLab Раньше вроде были слухи что дизлайки повышают шанс видоса зайти в рекомендации и тренды - типа горячая тема. И якобы выстреливали видосы у которых лайков и дизов было примерно поровну. Но потом мир изменился. А всем нравится - не реально, кому-то будет слишком просто и банально/обыденно, кому-то слишком сложно и непонятно. Лично мне очень зашло (весьма смотрябельно, и кода хороша в наухах особенно), ибо например так или иначе мечтаю воткнуть паяльник в ламповую Волна-К (хотяб синтезаторы AD9910 или AD9959 прикалхозить и смесители поменять, а как максимум сваять дистанционно управляемый реверсивный ламповый каскад нагруженный и расположенный около магнитной антенны с механической перестройкой вакумным КПЕ раза в 4 по частоте ), а тема ЦОС вообще и цифровых фильтров в частности так или иначе в программно-определяемом радио касается.
@@pswru Сейчас есть параметр "вовлеченность аудитории" и типа лайки и дизлайки поровну оцениваются главное чтобы было взаимодействие с видео. Но там куча алгоритмов и это лишь малая часть уравнения. Если бы DA9910 не стоил бы 4к я бы его уже давно поковырял.
@@TDMLab Ну просто генерить синус AD9910 скучновато (полагаю что написать код на асме для буратины у лично меня займёт меньше месяца)- надо именно в контексте радиоприёма как ГПД без особой фильтрации опробовать и сравнить с более грубыми собратьями в плане уменьшения гармоник/характерных призвуков, слышимых на приёме при перестройке частоты гетеродина.
Спасибо! Каждый раз когда смотрю такие видео убеждаюсь, что нас в универе 6 лет учили чему-то не тому, чему надо было. Факультет элеткроники, телекоммуникации.