-
- я полный лох в анализе сигналов, круче медианного фильтра не делал, поэтому если б я делал, то конечный автомат + таймер, регулировал бы порог допустимой дельты (+-25%) и количество "ошибок", сколько раз можно "отклониться" пока не "сработаем", stm32msk(241 знак., 29.12.2017 17:01)
- Наши ещё вариант подсказали: отношение или разница средних для двух окон разных длительностей. - Dingo(29.12.2017 08:29)
- Вот, вот.. А потом ещё удивляемся, почему спутники в океан падают.. Дблбл.. - Хаос(29.12.2017 08:40, )
- А по полочкам разложить можете причины скепсиса? - Dingo(29.12.2017 10:14)
- Вот, вот.. А потом ещё удивляемся, почему спутники в океан падают.. Дблбл.. - Хаос(29.12.2017 08:40, )
- Собсно, можно замутить ФИР полосовичок. От 300 до 500, например. И сэмплировать на 4-5кГц. На выходе будет синус, без постоянки. Длина получится небольшая, значит, время реакции на изменение частоты будет сравнительно небольшим. Находим пару mse homjak(262 знак., 28.12.2017 20:37 - 20:39)
- Т.е. нужен частотный дискриминатор? Tech_(29 знак., 28.12.2017 19:57, ссылка)
- Как я понял, у ТС сигнал может быть с шумами. - Evgeny_CD(28.12.2017 20:16)
- Цифровой фильтр-резонатор подойдет? - Tech_(28.12.2017 20:28 - 20:34, ссылка)
- Входной сигнал широкополосный - резонатор не подойдет. - Boвa(29.12.2017 09:29)
- Может я и ошибаюсь, но что-то мне подсказывает, что все гармоники кроме первой никого не интересуют. - Tech_(29.12.2017 13:15)
- Сигнал широкополосный, поэтому там будет и +-25% от 400 Гц. даже если частота основной гармоники строго 400 Гц. - Boвa(29.12.2017 13:27)
- Тогда каково соотношение амплитуд 400 и +/-25% и уход какой из этих составляющих интересует? - Tech_(29.12.2017 13:39)
- Повышение частоты можно особо не рассматривать. При понижении частоты растет постоянная составляющая и амплитуда. - LightElf(29.12.2017 13:53)
- Тогда каково соотношение амплитуд 400 и +/-25% и уход какой из этих составляющих интересует? - Tech_(29.12.2017 13:39)
- Сигнал широкополосный, поэтому там будет и +-25% от 400 Гц. даже если частота основной гармоники строго 400 Гц. - Boвa(29.12.2017 13:27)
- Может я и ошибаюсь, но что-то мне подсказывает, что все гармоники кроме первой никого не интересуют. - Tech_(29.12.2017 13:15)
- Спасибо! Думаю, ТС оценит :) - Evgeny_CD(28.12.2017 20:50)
- Входной сигнал широкополосный - резонатор не подойдет. - Boвa(29.12.2017 09:29)
- Цифровой фильтр-резонатор подойдет? - Tech_(28.12.2017 20:28 - 20:34, ссылка)
- Как я понял, у ТС сигнал может быть с шумами. - Evgeny_CD(28.12.2017 20:16)
- Алгоритм Гёрцеля -> - может им сделать несколько фильтров на возможные положения несущей? - Evgeny_CD(28.12.2017 19:15, ссылка)
- Как раз читаю. В принципе мне достаточно знать, что частота сигнала вышла за определенную полосу. - LightElf(28.12.2017 19:32)
- Генератор + фапч. Частоту генератора знаешь, а ФАПЧ поймает корелляцию с сигналом. - ASDFS(28.12.2017 15:34)
- Если тираж относительно небольшой и габариты позволяют, очень рекомендую активный однокаскадный полосовой фильтр на одном ОУ, 2х С и 3x R. AU08(148 знак., 28.12.2017 15:21)
- Дык это же если по уму делать. А вот если сначала сделать одно, а потом переделывать под другое - то исключительно программные решения. - LightElf(28.12.2017 15:28)
- На входе АЦП хотя бы RC есть? - AU08(28.12.2017 15:30)
- Есть чуть-чуть, микросекундного порядка - LightElf(28.12.2017 15:41)
- На входе АЦП хотя бы RC есть? - AU08(28.12.2017 15:30)
- Дык это же если по уму делать. А вот если сначала сделать одно, а потом переделывать под другое - то исключительно программные решения. - LightElf(28.12.2017 15:28)
- Для периодических сигналов, чтоб узнать период, можно посчитать автокорреляционную функцию, примерно как по ссылке: нужно ТРИ раза БПФ посчитать плюс накладные расходы, плюс сгладить результат, что самое непонятное для меня как, плюс найти в fk0(52 знак., 28.12.2017 13:45 - 13:48, ссылка)
- Лучше считать не АКФ, а ВКФ с тестовым сигналом такой же скважности и эталонной частоты. Boвa(39 знак., 29.12.2017 09:28)
- Прошу! - Dingo(29.12.2017 10:16)
- Лучше считать не АКФ, а ВКФ с тестовым сигналом такой же скважности и эталонной частоты. Boвa(39 знак., 29.12.2017 09:28)
- Ну вообще-то невооруженным взглядом видно, что у тебя там уже не 400Гц, а целый спектр. Тебя может интересовать период повторения импульсов доминирующей частоты. Для этого, возможно, их стоит выделить и тупо посчитать (или измерить период). Я бы fk0(553 знак., 28.12.2017 13:37)
- Спасибо! Направлений поиска мне тута накидали, буду гуглить/читать. - LightElf(28.12.2017 13:41)
- Вот ещё ход конём: выбираем частоту выборки так, чтобы одна компонента дискретного преобразования Фурье накрывала аккурат нужный диапазон частот. А потом считаем эту компоненту алгоритмом Гёрцеля. Хотя не, фигня какая-то... - SciFi(28.12.2017 13:27)
- Я бы умножил на синус 100 Гц, потом отфильтровал бы всё что ниже 25 и всё что выше 100. - йцукен(28.12.2017 13:15)
- Лучше напиши ожидаемую частоту дискретизации и THD своего сигнальчика. - lloyd(28.12.2017 13:13)
- Добавил в первый пост картинку. Частоту дискретизации могу делать любую, в пределах доступной памяти - LightElf(28.12.2017 13:26)
- Забавно.. После изменения первоначальных условий, исходная "синусоида с частотой 100 Гц" превратилась в хрен-знает-что с частотой 400 Гц.. :) Хаос(213 знак., 28.12.2017 13:37, )
- Синусоиды и не было. А с герцами я чей-то тупанул, не на том девайсе посмотрел. - LightElf(28.12.2017 13:42)
- По dv/dt детектировать событие не проще? Разумеется не две выборки, а чуть подлиннее. lloyd(349 знак., 28.12.2017 13:31)
- Что-то читаю про эти CIC, и понять не могу - в чём суть, как и за счёт чего оно работает? Можете "на пальцах" пояснить? И как им можно dv/dt поймать? - Dingo(29.12.2017 07:16)
- Это вариант КИХ-фильтра, у которого все коэффициенты - единица. Получается скользящее среднее арифметическое длиной N. lloyd(498 знак., 29.12.2017 07:57, ссылка)
- О! Я за ваш вариант: самое простое и быстрое, задачу ТС выполнит. Ещё бы от постоянной составляющей избавиться - вообще прелесть! - Dingo(29.12.2017 08:11)
- На том же сайте есть две стоящие статьи: fk0(392 знак., 29.12.2017 13:10)
- О! Я за ваш вариант: самое простое и быстрое, задачу ТС выполнит. Ещё бы от постоянной составляющей избавиться - вообще прелесть! - Dingo(29.12.2017 08:11)
- Это вариант КИХ-фильтра, у которого все коэффициенты - единица. Получается скользящее среднее арифметическое длиной N. lloyd(498 знак., 29.12.2017 07:57, ссылка)
- Умных слов увидел много, пошел в гугель. LightElf(100 знак., 28.12.2017 13:36)
- Фильтр этот тупо кольцевой буффер + указатель + аккумулятор, который хранит сумму N последних выборок. lloyd(295 знак., 28.12.2017 13:40)
- Что-то читаю про эти CIC, и понять не могу - в чём суть, как и за счёт чего оно работает? Можете "на пальцах" пояснить? И как им можно dv/dt поймать? - Dingo(29.12.2017 07:16)
- Забавно.. После изменения первоначальных условий, исходная "синусоида с частотой 100 Гц" превратилась в хрен-знает-что с частотой 400 Гц.. :) Хаос(213 знак., 28.12.2017 13:37, )
- Добавил в первый пост картинку. Частоту дискретизации могу делать любую, в пределах доступной памяти - LightElf(28.12.2017 13:26)
- Если делать всё по теории, то нужен полосовой фильтр на частоту 100 Гц с полосой пропускания + Хаос(138 знак., 28.12.2017 13:04, )
- Софтовый полосовой фильтр - тот еще головняк. lloyd(151 знак., 28.12.2017 13:06)
- Не рассказывайте сказки.. :) - Хаос(28.12.2017 13:08, )
- Хотя если делать notch-фильтр (на одну-единственную частоту, да еще и с большим K) - там вроде довольно кратко получается - lloyd(28.12.2017 13:09)
- Большой К -- большие погрешности. Хотя в цифре оно конечно может и не страшно. Скорей нужен фильтр Баттерворта (с "гладкой" АЧХ). - fk0(28.12.2017 13:24)
- Например: fk0(3279 знак., 28.12.2017 13:29, ссылка)
- БИХ-фильтр 8го порядка? На процессоре без плавучки? lloyd(8 знак., 28.12.2017 13:32)
- Кстати M0 не шибко тормозит на флоатах. Вполне можно жрать. - michas(28.12.2017 19:49)
- Для моих задач M4F казался не сильно шустрым. Но я на него много взвалил - lloyd(28.12.2017 21:47)
- Для того, чтоб посчитать FPU в процессоре не обязателен. Посчитать можно и в целых числах, если коэффициенты подобрать, разумеется в 32-битных как минимум, если не 64 (поэтому даже софтовая плавучка может оказаться быстрей). Фильтр или фильтры fk0(171 знак., 28.12.2017 13:40)
- Кстати M0 не шибко тормозит на флоатах. Вполне можно жрать. - michas(28.12.2017 19:49)
- БИХ-фильтр 8го порядка? На процессоре без плавучки? lloyd(8 знак., 28.12.2017 13:32)
- Например: fk0(3279 знак., 28.12.2017 13:29, ссылка)
- Большой К -- большие погрешности. Хотя в цифре оно конечно может и не страшно. Скорей нужен фильтр Баттерворта (с "гладкой" АЧХ). - fk0(28.12.2017 13:24)
- Хотя если делать notch-фильтр (на одну-единственную частоту, да еще и с большим K) - там вроде довольно кратко получается - lloyd(28.12.2017 13:09)
- Не рассказывайте сказки.. :) - Хаос(28.12.2017 13:08, )
- Софтовый полосовой фильтр - тот еще головняк. lloyd(151 знак., 28.12.2017 13:06)
- Можно сделать ФНЧ и ФВЧ, а потом сравнивать величину сигнала на входе и на выходе фильтров. - SciFi(28.12.2017 13:03)
- Если на вход поступает "грязноватая" синусоида - lloyd(203 знак., 28.12.2017 12:51 - 13:00)
- На таймере делаем пару одновибраторов, на время +/-25%, с перезапуском от приходящего фронта. Если срабатывает "-", а, потом сигнал, то всё ОК, если срабатывает сигнал, а "-", нет, то алярм, если срабатывают "_" и "+", то тоже алярм. - mse homjak(28.12.2017 12:48)
- Ну раз постоянная составляющая меняется, то оцифровывать за ~ 1,5..2 периода в буфер, искать максимумы, смотреть время между ними. Как вариант этого же: собираем в буфер, вычисляем среднее, ищем пересечение уровня 2/3 между мин и макс. Можно на Dingo(160 знак., 28.12.2017 17:43)
- Видимо проще всего будет считать количество максимумов за фиксированный период времени. По амплитуде сигнал может раза в два меняться, форма - растягивается сигнал вширь. Не знаю как описать понятнее. - LightElf(28.12.2017 17:53 - 17:56)
- Максимумы как определять стоит продумать. На вашем рисунке красным отметил "не те" максимумы (но они максимумы на каком-то масштабе времени) и голубым с вопросом - какого уровня помеха может быть, что вызовет появление внеочередного максимума. Dingo(239 знак., 28.12.2017 18:19 - 18:22)
- Пока мысля такая: частота выборок 500Гц. Берем отсчеты за за 1/10 секунды (50 отсчетов), вычисляем среднее значение (оно мне для других целей еще нужно) и находим максимум. Дальше считаем количество интервалов, где сигнал больше 3/4 от максимума. LightElf(12 знак., 28.12.2017 18:49)
- fk0 хорошую идею обозначил: если вспомнить Фурье, да тот же спектр меандра, то станет понятно - такую форму сигнала дают высшие гармоники основной частоты. То есть пропустив через ФНЧ (интегратор), получим бóльшую амплитуду основной частоты. Dingo(239 знак., 29.12.2017 06:22 - 07:29, ссылка, картинка)
- 500Гц не получится, минимум 800Гц - об этом нам Котельников и Найквист говорит. Но в вашем случае и этого маловато будет. Dingo(1102 знак., 29.12.2017 05:57 - 06:10)
- Котельников с Найквистом говорят, что в исходном сигнале есть пики с частотами чуть ли не в десятки кГц, если их аналогово не пофильтровали. И если искать максимумы, то такой пик запросто за максимум сойти может, а если предварительно fk0(2911 знак., 29.12.2017 06:30 - 06:33, ссылка)
- За ссылки отдельное спасибо! Эта не та тема, в которой я силён, но 500 Гц сэмплирования 400Гц сигнала явно мало. С этим вы согласитесь? Dingo(288 знак., 29.12.2017 07:02 - 07:20)
- Котельников с Найквистом говорят, что в исходном сигнале есть пики с частотами чуть ли не в десятки кГц, если их аналогово не пофильтровали. И если искать максимумы, то такой пик запросто за максимум сойти может, а если предварительно fk0(2911 знак., 29.12.2017 06:30 - 06:33, ссылка)
- Пока мысля такая: частота выборок 500Гц. Берем отсчеты за за 1/10 секунды (50 отсчетов), вычисляем среднее значение (оно мне для других целей еще нужно) и находим максимум. Дальше считаем количество интервалов, где сигнал больше 3/4 от максимума. LightElf(12 знак., 28.12.2017 18:49)
- Максимумы как определять стоит продумать. На вашем рисунке красным отметил "не те" максимумы (но они максимумы на каком-то масштабе времени) и голубым с вопросом - какого уровня помеха может быть, что вызовет появление внеочередного максимума. Dingo(239 знак., 28.12.2017 18:19 - 18:22)
- Видимо проще всего будет считать количество максимумов за фиксированный период времени. По амплитуде сигнал может раза в два меняться, форма - растягивается сигнал вширь. Не знаю как описать понятнее. - LightElf(28.12.2017 17:53 - 17:56)
- Analog watchtog не поможет? Оно прерывание генерит. (попозже допишу пару идей) - Dingo(28.12.2017 13:42)
- Пока не понял, чем он мне поможет. Постоянная составляющая у сигнала плавает от экземпляра к экземпляру. - LightElf(28.12.2017 13:45)
- Если бы можно было просто посчитать импульсы за период - я бы их без проблем посчитал. Но "требуется поипаться" именно через АЦП. - LightElf(28.12.2017 12:58)
- тогда БПФ и фсё - danuna(28.12.2017 14:06)
- А! АЦП... В похожей задаче делал так: mse homjak(254 знак., 28.12.2017 13:16)
- Ну раз постоянная составляющая меняется, то оцифровывать за ~ 1,5..2 периода в буфер, искать максимумы, смотреть время между ними. Как вариант этого же: собираем в буфер, вычисляем среднее, ищем пересечение уровня 2/3 между мин и макс. Можно на Dingo(160 знак., 28.12.2017 17:43)