Цифровой фильтр, отследить частоты.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

Идут фиксированные известные частоты от 300гц до 2кГц фиксированной длительности 0.5 и 1 сек. Нужно ловить процем определенные комбинации. В оригинале стоят на каждую частоту аналоговые фильтры. А без них нельзя?
Реклама
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

можно.
Контактная информация:
Реклама
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

Martian, а можно без АЦП и большой математики на одних прерываниях?
Нашел транзистор. Понюхал.
Сообщения: 159
Зарегистрирован: Чт сен 19, 2024 19:18:28

Сообщение Базилюк »

Таймер в режиме захвата. Сигнал предварительно довести до прямоугольного компаратором.

Автор скорее всего решает задачу распознавания тональных посылок, как от телефонной станции?
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

[uquote="linkov1959",url="/forum/viewtopic.php?p=4630347#p4630347"]а можно без АЦП и большой математики?[/uquote] можно.

Добавлено after 1 minute 18 seconds:
[uquote="Базилюк",url="/forum/viewtopic.php?p=4630350#p4630350"]Сигнал предварительно довести до прямоугольного компаратором.[/uquote] необязательно, наверное. По крайней мере, в такой постановке задачи это не ясно.
Контактная информация:
Реклама
Мудрый кот
Сообщения: 1712
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Сообщение Novice user »

Если в любой момент времени передается только одна частота то да-можно таймерами,а если одновременно идет две частоты и более то тут только фильтр
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25560
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="linkov1959",url="/forum/viewtopic.php?p=4630347#p4630347"]а можно без АЦП и большой математики на одних прерываниях?[/uquote]С АЦП и очень несложной математикой будет гораздо проще. Вся математика - это дискретное преобразование Фурье на частоты детектирования.
На каждую частоту нужно две таблицы - синус и косинус. Каждый фильтр - это простое суммирование произведений. Отдельно косинус и синус. Потом сумма их квадратов и извлечение корня квадратного. Получается амплитуда попавшего в фильтр сигнала.
Нашел транзистор. Понюхал.
Сообщения: 159
Зарегистрирован: Чт сен 19, 2024 19:18:28

Сообщение Базилюк »

Я сейчас на память не помню, но вот когда в 2000-х годах пошли стационарные телефоны с определителем номера ("Русь-25/27", "Палиха"), там был какой-то хитрый и очень простой алгоритм декодирования двухтональных посылок. Процессор там стоял очень слабенький 8-битный.
Сейчас чето не помню, как назывался такой алгоритм. Но чето точно не на БПФ, и не на захвате таймера.
Друг Кота
Аватара пользователя
Сообщения: 25560
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Базилюк",url="/forum/viewtopic.php?p=4630367#p4630367"]Но чето точно не на БПФ[/uquote]
А кто говорил про БПФ? Вы знаете разницу между БПФ и ДПФ?
:)
https://ru.wikipedia.org/wiki/Алгоритм_Гёрцеля
Но я предпочитаю классический - FIR
Последний раз редактировалось КРАМ Вс сен 29, 2024 21:08:50, всего редактировалось 1 раз.
Нашел транзистор. Понюхал.
Сообщения: 159
Зарегистрирован: Чт сен 19, 2024 19:18:28

Сообщение Базилюк »

А вы?
Друг Кота
Аватара пользователя
Сообщения: 25560
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Базилюк",url="/forum/viewtopic.php?p=4630373#p4630373"]А вы?[/uquote]
Это моя профессия. :)
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

Три частоты передаются последовательно с известной длительностью и не менее пороговой амплитуды, компаратор катит. Во время передачи вызывного сигнала других сигналов нет, но обычно в линии идет разговор с превышением порога и приемник не должен срабатывать, а только от своей комбинации. Ни БПФ ни ДТФ я так и не освоил, могу только сделать перестраиваемый цифровой фильтр от АЦП, но это запасной вариант.
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

Уточню. Сработка от второй посылки, но закодировать нужно 3 частоты. Комбинация 1 и 2 частоты индивидуальный вызов, а 1 и 3 циркуляр.
Пробую на тини13. Прога в Баском, но в Протеусе работает. Два прерывания по входу и по переполнению таймера и два обработчика этих прерываний.
По входу.
Берем значение таймера, это будет период и обнуляем таймер. Если в пределах допуска по первой частоте, то считаем. Когда наберем нужное количество , то поднимаем флаг второй частоты и тоже считаем, но в пределах допуска по второй частоте. Отсчитываем нужную длительность второй посылки и включаем звонок. Сбрасываем флаг.
По переполнению таймера.
Уменьшаем счетчик периодов, как средство от помех и сбрасываем флаг, если долго нет второй посылки.
Мудрый кот
Сообщения: 1779
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="linkov1959",url="/forum/viewtopic.php?p=4630347#p4630347"]Martian, а можно без АЦП и большой математики на одних прерываниях?[/uquote]Если боитесь математики и АЦП, то такими задачами лучше не заниматься.

Добавлено after 3 minutes 9 seconds:
[uquote="Базилюк",url="/forum/viewtopic.php?p=4630350#p4630350"]Таймер в режиме захвата. Сигнал предварительно довести до прямоугольного компаратором.[/uquote]Ну да. :))) автор судя по всему:
[uquote="linkov1959",url="/forum/viewtopic.php?p=4630318#p4630318"]Нужно ловить процем определенные комбинации.[/uquote]распознаёт комбинации нескольких гармонических колебаний. Одновременных.

Добавлено after 7 minutes:
[uquote="linkov1959",url="/forum/viewtopic.php?p=4630479#p4630479"]Пробую на тини13. Прога в Баском[/uquote]ужос!... :facepalm:

1) взять Cortex-M;
2) изучить си (а лучше и +ассемблер);
3) изучить работу АЦП.
...
После выполнения этого минимума, можно приступать к задаче.
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

jcxz, Сработаемся! Тини13 у меня много, но тут подвалило на шару полсотни плат разработки на stm32f207vet6 по 10грн. Можно вспомнить, что я математик и освоил cubeIDE. Даже есть готовая прошивка под stm32f100c8t6 на БПФ, но украденная у конкурентов:) Можно ли эту прошивку hex как-то перенести на stm32f207vet6?
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

можно
Контактная информация:
Мудрый кот
Сообщения: 1779
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="linkov1959",url="/forum/viewtopic.php?p=4631368#p4631368"]Можно ли эту прошивку hex как-то перенести на stm32f207vet6?[/uquote]Смысл?
Вымогатель припоя
Сообщения: 582
Зарегистрирован: Вт окт 01, 2024 15:22:33

Сообщение Adrift »

[uquote="linkov1959",url="/forum/viewtopic.php?p=4630479#p4630479"]Пробую на тини13.[/uquote]
В былые времена делали АОНы на z80, который явно не шустрее tiny13. И задачи очень схожи, т.к. был набор фиксированных частот от 700 до 1700Hz c шагом 200 и все кодировалось комбинациями любых двух частот. Насколько помню достаточно просто "накладывать" искомую частоту поверх сигнала(после компаратора) и считать совпадения. Если уровень совпал, инкрементим счетчик совпадений, если нет, то декрементим. В конце, если в сигнале присутствует искомая частота, должно получится достаточно большое положительное или отрицательное число выше порогового значения. Не думаю что тогда использовали БПФ, впрочем, как и не думаю, что tiny13 стоит использовать сейчас )
Мудрый кот
Сообщения: 1712
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Сообщение Novice user »

По принципу частотомера считать и выставлять флаги,например каждые 250 мсек,если частота 300 Гц то на считаем 75(+-) импульсов,если 2кГц то 500(+-)
+- потому что тактирование аттини будет внутренним,то есть не стабильным
Конкретно бы знать какие частоты и как передаются,ведь они известны только вам
Друг Кота
Аватара пользователя
Сообщения: 25560
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="linkov1959",url="/forum/viewtopic.php?p=4631368#p4631368"]Даже есть готовая прошивка под stm32f100c8t6 на БПФ[/uquote]Эту задачу не решают с помощью БПФ. Эту задачу решают с помощью ДПФ. А конкретно с помощью алгоритма Гёрцеля.
[uquote="Adrift",url="/forum/viewtopic.php?p=4631376#p4631376"]Насколько помню достаточно просто "накладывать" искомую частоту поверх сигнала(после компаратора)[/uquote]
Вы "помните" неправильно. После компаратора возникнут интермодуляционные частоты. То есть ничего определить будет невозможно. Кроме того, все эти игрища "после компаратора" говорят лишь о непонимании игрунами школьного курса тригонометрии. В зависимости от начальной фазы частот будет получаться совершенно разная картинка.
Ну и не требуется никакой особой производительности для реализации нескольких фильтров. Вопрос со скоростью актуален, если требуется фильтровать сигнал в реальном времени. А если между накоплением сигнала и принятием решения проходит куча времени (сотни миллисекунд и более), то все это делается на самых медленных МК.
Ответить

Вернуться в «Разные вопросы по МК»