Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Реализация двухчастотной модуляции
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
varvar
Не знаю, куда и податься с вопросом - в математику - так засмеют.
Цель выглядит просто - нужно передатчик промодулировать сигналом - просто ряд частот, 8 штук. А принимается сигнал на обычную радиостанцию на слух. До сего вечера эти приемники-передатчики даже в руках не держал. А тут вдруг выясняется, что для работы системы шумопонижения/ разделения пользователей сигнал должен быть дополнительно промодулирован низкочастотным CTCSS сигналом - номером канала, частота от 67 до 250 герц. Идея использовать сермяжный таймер как-то сразу испарилась. Надо как-то цифровым методом замешать две частоты - просто смешать два сигнала нельзя, они идут на SI4432 логическим уровнем.

Подскажите, люди добрые sm.gif , слово волшебное, которое погуглить надо, как эти частоты, будь они неладны, замешать?
А если еще бы как-то это на аппаратном уровне 430-го сделать (типа один таймер переключает режим другого) !

Что-то видел какой-то звон с реализацией DTMF - суть та же, но как-то ничего путнего не находится.
kovigor
Цитата(varvar @ Mar 16 2013, 23:14) *
Что-то видел какой-то звон с реализацией DTMF - суть та же, но как-то ничего путнего не находится.

У Atmel'а есть апп. ноут про "DTMF generator". Там как раз этот самый DTMF генерируется в виде сигнала с ШИМ, который затем подается на ФНЧ (вам-то ФНЧ не нужен):
http://www.atmel.com/Images/doc1982.pdf

А у TI был апп.ноут про FSK modulation/demodulation. Но я не знаю, или он вам подойдет ...
varvar
Цитата(kovigor @ Mar 17 2013, 00:34) *
У Atmel'а есть апп. ноут про "DTMF generator". Там как раз этот самый DTMF генерируется в виде сигнала с ШИМ, который затем подается на ФНЧ (вам-то ФНЧ не нужен) ...

К сожалению, не совсем то - я бы хотел просто два меандра сложить, ШИМ - слишком высокочастотный для SI4432.
kovigor
Цитата(varvar @ Mar 17 2013, 00:40) *
К сожалению, не совсем то - я бы хотел просто два меандра сложить, ШИМ - слишком высокочастотный для SI4432.

Может, я чего не понимаю, но обычный элемент "Исключающее ИЛИ" даст вам именно сумму без учета переполнения. Если нужен также и бит переполнения, то такая схема будет называться полусумматором. См., например, Титце и Шенка. Кстати, вы уверены, что вам нужна именно сумма (обратите внимание на спектральный состав результирующего сигнала) ?
http://oldskola1.narod.ru/trigF37.htm
ut1wpr
Никак не пойму, зачем надо что-то с чем-то складывать? При чем тут DTMF, если упомянут CTCSS? Это же совершенно разные вещи? Что нужно ТС-у? Похоже, он сам не знает. Почитайте для образования:
http://www.sagatelecom.ru/encyclopedia/pro...ID=26&ID=20
varvar
Цитата(ut1wpr @ Mar 17 2013, 01:44) *
Никак не пойму, зачем надо что-то с чем-то складывать? При чем тут DTMF, если упомянут CTCSS? Это же совершенно разные вещи? Что нужно ТС-у? Похоже, он сам не знает.

Спасибо за ответ.

Вы знаете, я все-таки кое о чем догадываюсь sm.gif

Может, просто плохо изложил. Мое устройство - простейший маячок. Выдает пачку сигналов, 8 тонов, с понижающейся мощностью. Каждый тон - 1...3 секунды. Радиостанция настроена на определение этого самого кода CTCSS. Этот самый CTCSS - это просто низкочастотный сигнал замешанный с полезным, в общем случае это речь, в моем - одночастотный тон. Приемник включает УНЧ, когда обнаруживает свой код CTCSS в сигнале. Ну и теперь при чем тут DTMF - там две частоты замешаны, и я поверх своей частоты хочу замешать CTCSS. Те же две частоты. Соотношение разное. Частота тонов не догма - можно как-то поиграть с ней, чтобы упростить алгоритм.

Понятно, что самый простой выход - отключить CTCSS в радиостанции и все будет работать и так. Но хочется, чтобы все было красиво. И приемник включался когда он обнаружит свою посылку.
В аналоговом виде это выглядит так (не мой случай, просто картинка откуда-то):

Нажмите для просмотра прикрепленного файла

А вот что сделать, чтобы это работало в чисто цифровом виде - в этом и вопрос. И крайне желательно, чтобы без внешних компонентов - только микропроцессор.
rx3apf
Можно попробовать через коррекцию смещения частоты, если это можно делать "на ходу" при передаче. Дискретность там вроде достаточно мала, так что необходимый уровень девиации может быть и удастся получить (я с этими чипами дела не имел, вникать в формулы лениво).
varvar
Цитата(rx3apf @ Mar 17 2013, 13:44) *
Можно попробовать через коррекцию смещения частоты, если это можно делать "на ходу" при передаче. Дискретность там вроде достаточно мала, так что необходимый уровень девиации может быть и удастся получить (я с этими чипами дела не имел, вникать в формулы лениво).

К сожалению, тут у меня тоже засада, хотя мысль хорошая. Одна и та же нога используется для непосредственной модуляции, и эта же нога данные SPI, которым можно поменять частоту. Либо-либо.
rx3apf
Смешайте их программно, вычисляя для каждой точки нужную девиацию. Не утверждаю, что получится, но попробовать можно.
varvar
Цитата(rx3apf @ Mar 17 2013, 15:51) *
Смешайте их программно, вычисляя для каждой точки нужную девиацию. Не утверждаю, что получится, но попробовать можно.

это мысль, спасибо, буду ее думать - ведь можно заранее все вычислить повторяющийся кусок, положить в память, а потом DMA все выплевывать в SPI. Если SI4432 поддержит такой тип издевательства (тоже не уверен, все-таки PLL и прочее не рассчитаны на такое).
ut1wpr
Цитата(varvar @ Mar 17 2013, 09:59) *
Спасибо за ответ.

Вы знаете, я все-таки кое о чем догадываюсь sm.gif

Может, просто плохо изложил. Мое устройство - простейший маячок. Выдает пачку сигналов, 8 тонов, с понижающейся мощностью. Каждый тон - 1...3 секунды. Радиостанция настроена на определение этого самого кода CTCSS. Этот самый CTCSS - это просто низкочастотный сигнал замешанный с полезным, в общем случае это речь, в моем - одночастотный тон. Приемник включает УНЧ, когда обнаруживает свой код CTCSS в сигнале. Ну и теперь при чем тут DTMF - там две частоты замешаны, и я поверх своей частоты хочу замешать CTCSS. Те же две частоты. Соотношение разное. Частота тонов не догма - можно как-то поиграть с ней, чтобы упростить алгоритм.

Понятно, что самый простой выход - отключить CTCSS в радиостанции и все будет работать и так. Но хочется, чтобы все было красиво. И приемник включался когда он обнаружит свою посылку.
В аналоговом виде это выглядит так (не мой случай, просто картинка откуда-то):

Нажмите для просмотра прикрепленного файла

А вот что сделать, чтобы это работало в чисто цифровом виде - в этом и вопрос. И крайне желательно, чтобы без внешних компонентов - только микропроцессор.
В простейшем варианте смешивают речевой сигнал с кодовым CTCSS на обычном резистивном сумматоре. Потом результат подают на модулятор. Ваш вариант еще проще. Тон в звуковом диапазоне надо замешать с одной из частот CTCSS. Я правильно понял? Т.е. фактически надо просто сгенерировать два тона одновременно? Я делал подобное с табличной генерацией синусов эмуляцией DDS на МК. Работая одновременно с двумя FTW получал сумму синусов. STM32F100C4T6 - вполне достаточно. Диапазон частот для каждого из сигналов 1 Гц - 20 КГц. Без ухищрений с ассемблером, чистый нативный Си.

rx3apf
Проблема в том, что используемый трансивер не имеет аудиовхода. Все только "в цифре".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.