PDA

Просмотр полной версии : Детектор звукового сигнала (тона)



SKirov
27.10.2010, 10:02
Появилась задачка сделать детектор наличия тонального сигнала (~700Гц) в проводной линии. Сигнал слабый ухом не слышно, просто АМ детектор не подходит нужно обнаруживать именно определённый тон.

Сейчас сделал по простому на ATmega8: оцифровка внутренним АЦП, преобразование фурье для трёх близких к тону частот (Goertzel), и мажоритарное декодирование. Чуствительность получилась -12..-16дб ниже уровня шума в полосе стандартного телефонного канала (400...3400Гц).

Гляжу на это чудо и думаю, неужели для такой примитивной функции обязательно нужен процессор, фурье и прочая требуха :) Нет ли каких нибудь готовых микросхем детекторов тона, с похожей чуствительностью, или может кто уже пробовал делать такие детекторы на операционниках, с использованием регенерации например, чтобы обеспечить чуствительность ?

UR5WHK
27.10.2010, 10:16
Вам возможно подойдет NE567
А что касается Вашей разработки - поделитесь со всеми
Столбик светодиодов отображающий уровень на рабочей частоте
был-бы приятным дополнением позволяющим точно настаиваться
на тоновый сигнал
Тем более что эта информация у Вас и так должна вычисляться
в процессе принятия решения о присутствии или отсутствии
тонового сигнала на исследуемой частоте

Спасибо заранее за инфо которую ми увидим

SergeyV
27.10.2010, 10:58
Посмотрпие аппаратуру АТС, там установлены кодовые приемники, выполняющие заданную Вами функцию.

UR5ZQV
27.10.2010, 13:15
Недостаточно данных по Вашей задаче. Насколько уровень искомого Вами сигнала ниже телефонного сигнала в принимаемой полосе (не слышно ухом, это недостаточная информация)? Насколько быстро надо обнаружить этот сигнал? (хоть при цос, хоть при аналоговой обработке за счет сужения полосы, но и соответственно при увеличении времени обработки можно увеличить разрешение определения этого сигнала). Частота сигнала попадает в полосу телефонного канала, если это речь то участки спектра имеют быть и на 700 Гц, но за счет их случайности их можно уменьшить за счет увеличения времени обработки (см. выше).

SKirov
27.10.2010, 20:40
Вам возможно подойдет NE567
А что касается Вашей разработки - поделитесь со всеми

Посмотрел справочные данные на микросхему: -6дб обеспечивает уже неплохо, осталось разжится такой и поэксперементировать :)

А зачем эта штука для настройки, в приёмнике и так есть S-метр, или я чего то непонимаю? Обычно если не слышно сигнал то скиммеры и другие программы для компютеров есть, для чего такая фиговинка обычному радиолюбителю ? В том виде как сейчас программа написанна ничего никто не поймёт, а статью с комментариями делать лень. Вобщем то ничего сверхсекретного там нет - алгоритм из википедии "содран".

У меня задача специфичная , никак не связанная с радио - обнаружение работы несанкционированного оборудования и изменяемой настройки не требуется.

yurio
27.10.2010, 20:57
Посмотрел справочные данные на микросхему: -6дб обеспечивает уже неплохо, осталось разжится такой и поэксперементировать
С этой микросхемой встречался при ремонте комнатного радиотелефона, старенького, с телескопической антенной, монтаж не SMD. там она стояла на декодировании пилот-сигнала, опознания базой трубки. В магазине нашлась дешевенькая.

UR5WHK
27.10.2010, 20:58
Вы же сами говорите что чуствительность получилась -12..-16дб ниже уровня шума
Вот я и подумал что было-бы неплохо для приема телеграфа
Сигнала не слышно и соответственно почти ничего не видно по S-метру
а мы можем настроиться по столбику светодиодов и наслаждаться регенерированным CW
Гёртцель думаю достаточно для одной точки посчитать ( не для 3-х )
Для упрощения математики выбрать частоту оцыфровки входного
сигнала в 4 раза выше обнаруживаемой частоты
А то что задача у Вас специфыческая не страшно - сделайте нам подарок
Выводов предостаточно в проце свободных для столбика светодиодов
или шим и стрелочник

SKirov
27.10.2010, 21:19
Вы же сами говорите что чуствительность получилась -12..-16дб ниже уровня шума

Вот я и подумал что было-бы неплохо для приема телеграфа
Сигнала не слышно и соответственно почти ничего не видно по S-метру


Вообще идея конечно интерестная, этакий телеграфный компютер, но ведь уже есть WinMobile устройства и готовые программы, стоит ли игра свеч, когда можно просто пойти и купить готовое.
Соединить проводами с трансивером и пользоватся, наблюдая связи на красивом цветном экране...

PS. Может потом как нибудь смастерю чтонибудь подобное ;)

UA6XM
27.10.2010, 21:27
Гляжу на это чудо и думаю, неужели для такой примитивной функции обязательно нужен процессор, фурье и прочая требуха
Можно аналоговым методом. Методом сравнения фазы сигналов в двух каналах. Один канал прямой, а в другом канале повернуть фазу сигнала на частоте 700 Гц на 180 град. и сложив их получим сигнал отображающий наличие в канале сигнала частотой 700+-? Гц, что зависит от точности работы фазовращателя. Возможно по затратам это дешевле. По количеству элементов вряд ли. Но всё же цифровым методом эффективнее и стабильнее.

SKirov
27.10.2010, 21:56
Можно аналоговым методом. Один канал прямой, а в другом канале повернуть фазу сигнала на частоте 700 Гц на 180 град. и сложив их получим сигнал отображающий наличие в канале сигнала частотой 700+-? Гц,

Получается операционник с RC цепочкой в обратной связи, регулирующей усиление на определённой частоте - итого регенератор ;) В Микрокапе ковыряю такую схемку, как то не очень работает моделька ...

Anvar
27.10.2010, 22:57
Получается операционник с RC цепочкой в обратной связи, регулирующей усиление на определённой частоте - итого регенератор ;) В Микрокапе ковыряю такую схемку, как то не очень работает моделька ...

Для Вашей задачи идеальный вариант - электромеханический фильтр на 700 Гц с полосой 5...10 гц, такие выпускались в Японии 30 лет назад.
При решении задачи на ОУ - надо сделать активный полосовой фильтр на полосу 7 Гц, добротность будет более 100, что для ОУ очень проблематично обеспечить стабильность. Можно попробовать на интеграторном звене, эти схемы были на форуме (телеграфные фильтры по НЧ).

Леонид3
28.10.2010, 09:45
Anvar, отчего же только в Японии, по железкам и в СССР был порядок :D

UR5ZQV
29.10.2010, 13:37
Anvar

При решении задачи на ОУ - надо сделать активный полосовой фильтр на полосу 7 Гц, добротность будет более 100, что для ОУ очень проблематично обеспечить стабильность.
Зачем же обязательно 2-го порядка (звенеть будет и все выше сказанное Вами), берем счетверенный ОУ в одном корпусе и имеем приличный ПФ 8-го порядка с приличной прямоугольностью и можно еще с усилением (что очень уменьшает шумы).

rx3apf
29.10.2010, 14:06
Anvar

Зачем же обязательно 2-го порядка (звенеть будет и все выше сказанное Вами), берем счетверенный ОУ в одном корпусе и имеем приличный ПФ 8-го порядка с приличной прямоугольностью и можно еще с усилением (что очень уменьшает шумы).
Еще берем кучу прецизионных резисторов и конденсаторов, а потом пытаемся со всей этой фигней взлететь... 567 - "классика жанра", несмотря на свою древность, она и ныне живее всех живых. Один стабильный пленочный конденсатор, один триммер, один раз выставить частоту - и все прекрасно. Первоначальное решение, на микроконтроллере, с программной фильтрацией - тоже хорошее и правильное, но несколько чрезмерно, IMHO. Все ж дороже, требует программирования. Зато неоспоримое достоинство - ничего не надо настраивать, может хватить даже заводской точности RC-опорника, а с кварцем или пьезиком вообще чудо. И сервис при необходимости можно добавить (фильтрацию помех там, или еще один или несколько тональных каналов).

SKirov
31.10.2010, 11:47
567 - "классика жанра", несмотря на свою древность, она и ныне живее всех живых.

Попробовал 567 - удалось получить чуствительность в белом шуме -14дб, при наличии мешающих тональных помех иногда происходят ложные срабатывания, система ФАПЧ в микросхеме их тоже захватывает.

В детекторе на Атмега8, не удаётся получить чуствительность больше -24дб, как ни увеличиваю время накопления. Похоже на ошибки округления в целочисленной арифметике (или оцифровки ?), поискал в инете ничего толкового про такие ошибки и как с ними боротся найти немогу. Предполагаю есть какой нибудь хитрый алгоритм вычислений компенсирующий такой тип ошибки, и придумать его должны были давно когда "компютеры были маленкими". Может кто подскажет полезные ссылочки ?

Полученный результат в принципе устраивает, это уже больше спортивный интерес ;)