PDA

Просмотр полной версии : КВ передатчик на базе программируемого генератора сигналов



Слесарь
07.10.2013, 19:42
Здравствуйте!
Подскажите начинающему, делал ли кто КВ передатчик на базе программируемого генератора сигналов, например AD9851. То есть, программно задавать несущую частоту и амплитуду, SSB модуляцию. С выхода генератора аналоговый сигнал подавать на УМРЧ и в антенну.
Имеет ли право на существование такая схема?

The AD9851’s innovative
high speed DDS core accepts a 32-bit frequency tuning word,
which results in an output tuning res o lu tion of approximately
0.04 Hz with a 180 MHz system clock.
On-Chip High Performance 10-Bit DAC

UR4UDT
07.10.2013, 19:50
Имеет ли право на существование такая схема?
Это называется: "Синтетический" метод формирования SSB".
В жизни получается немного сложнее, чем Вы описали.

Слесарь
07.10.2013, 19:52
Если не рассматривать программную составляющую, аппаратно какие сложности?

UR4UDT
07.10.2013, 20:43
С программой как раз не так сложно.
Занимаюсь сейчас не спеша этой темой. В двух словах не буду даже пытаться объяснить - очень длинный перечень ещё не решенных вопросов.

Слесарь
07.10.2013, 20:46
Но там ведь на выходе обычная псевдо-аналоговая несущая которую можно немного отфильтровать согласно даташита к микрухе и усилить обычным КВ УМРЧ ?

sgk
07.10.2013, 20:48
С программой как раз не так сложно.

По моему задача формирования SSB сигнала с приемлемым качеством не была решена на основе DDS.
http://rx3akt.narod.ru/ssb_on_f.htm

UR4UDT
07.10.2013, 21:06
Вы слишком сильно упрощаете описание процесса формирования SSB.
Попробуйте сначала на бумаге. Возможно мнение изменится.

Добавлено через 14 минут(ы):


По моему задача формирования SSB сигнала с приемлемым качеством не была решена на основе DDS
Не стану пока утверждать, но просветы видны.
В DDS формируется только частотная составляющая. Восстановление огибающей делаю внешним ЦАП-ом. Обратная связь по амплитуде через синхронный детектор. Основная проблема возникает при слабых сигналах на низкой частоте. Связано с повышением погрешности вычисления изменения фазы.

Слесарь
07.10.2013, 22:05
ДА. Многого в этой области не знаю, но мне видится что можно таки с помощью AD9851 квантовать SSB сигнал по частоте с шагом 0.04 Гц и по амплитуде 10-битно, по крайней мере об этом говорится в даташит.

Добавлено через 32 минут(ы):

Хорошо. Понятно.
Тогда пускай AD9851 генерирует только частоту с SSB девиацией частоты, а амплитуду можно задать каким-нить ЦАП.

sgk
08.10.2013, 01:50
Хорошо. Понятно.
Тогда пускай AD9851 генерирует только частоту с SSB девиацией частоты, а амплитуду можно задать каким-нить ЦАП.
А как именно "задавать"?
Полагаю получите "вторую боковую" и будет АМ. Так просто, на практике (само- собой):-P не "получается".
Посмотрите тему о цифровом трансивере и блок схемы формирования сигнала на передачу.
http://www.cqham.ru/forum/showthread.php?t=125 32&p=322910&viewfull=1#post32291 0
http://www.cqham.ru/forum/attachment.php?attac hmentid=46723&d=1262510801

Слесарь
08.10.2013, 09:37
Мне почемут думается что можно. Допустим необходимо транслировать в эфир на частоте 7.0 МГц SSB модуляцию 1 кГц. Настраиваем на выходе AD9851 частоту 7.001 и транслируем, по амплитуде модулируем другим ЦАП. Или я как-то неправильно понимаю суть SSB модуляции

UR5EIN
08.10.2013, 09:53
Здравствуйте!
Подскажите начинающему, делал ли кто КВ передатчик на базе программируемого генератора сигналов, например AD9851. То есть, программно задавать несущую частоту и амплитуду, SSB модуляцию....
С SSB конечно посложнее. Для начала попробуйте АМ. Самый простой метод (100% рабочий, подробнее - в журнале "Радиофронт"). Сигнал нужно усилить, а в разрыв антенны включите угольный микрофон. Один недостаток - только для QRP. Желательно, чтобы микрофон был в пластмассовом корпусе. С телеграфом проще - ключ в антенну и можно уже сотню ватт манипулировать.
Принимать такой ТХ лучше на
http://www.cqham.ru/forum/showthread.php?t=258 62

Слесарь
08.10.2013, 10:00
http://www.cqham.ru/forum/attachment.php?attac hmentid=46723&d=1262510801
Не то же ли самое делает AD9744 в предложенной схеме?


С SSB конечно посложнее. Для начала попробуйте АМ.
AM тож должно поддерживаться, выставляем на выходе AD9851 7.0 МГц и АМ модулируем дополнительным простым ЦАПом.

UR4UDT
08.10.2013, 10:24
Мне почемут думается что можно.
Можно, но совершенно не так.


Полагаю получите "вторую боковую" и будет АМ. Так просто, на практике (само- собой) не "получается".
Посмотрите тему о цифровом трансивере и блок схемы формирования сигнала на передачу.
Здесь использован несколько иной принцип формирования, чем предложенный Верзуновым.
Не буду вдаваться глубоко в теорию, но пару слов нужно сказать. SSB сигнал можно представить в виде вектора, который вращается с угловой скоростью виртуальной несущей, плюс (для верхней БП) или минус (для нижней БП) мгновенное значение модулирующей частоты.
Как сделал я.
Из квадратурного НЧ сигнала вычисляю мгновенные значения частоты модуляции (Fм) и амплитуды огибающей (Ао). Прибавляем Fм к частоте виртуальной несущей и управляем DDS. На внешний ЦАП подаю значение Ао для модуляции передатчика.
Виртуальная несущая и другая боковая отсутствуют вообще. Они просто не генерируются. Хлопоты доставляют "хвосты" с частотой дискретизации. Избавиться от них не удастся, но минимизировать нужно и можно.
Примерно так.

Слесарь
08.10.2013, 10:35
Я вроде о том же, только ничего не понимаю в векторах и вращении. Для SSB передачи речи мне видится такая схема, буду оцифровывать речь с периодичностью допустим 10 кГц, данные оцифровки выводить на управлением частотой генератора и амплитуды. То есть, генератор и амплитуда будут перестраиваться с частотой так же 10 кГц.
Программно к значению частоты несущей допустим 7.0 МГц будет прибавляться моментальное значение частоты речи, плюс несущая будет модулироваться по амплитуде, согласно моментального значения амплитуды речи.
Управление этой системой предполагаю сделать на одном из простых 8-битных МК, способном выполнять порядка 10 миллионов простых операций в секунду.

UR4UDT
08.10.2013, 10:42
Я вроде о том же, только ничего не понимаю в векторах и вращении
Это затруднит реализацию вашей идеи.
"Дорогу осилит идущий"(С).

Слесарь
08.10.2013, 10:49
Это затруднит реализацию вашей идеи..
Но я пока не вижу проблем. Моментальное значение частоты речи распознать с помощью АЦП и МК можно. Даже с помощью встроенного в МК АЦП. Моментальное значение амплитуды речи распознать можно. Далее, полученные данные периодически выводить на генератор несущей математически сложением частоты передачи с частотой звука и на простой ЦАП управляющий амплитудой передачи. На выходе передатчика получится частота (частота передачи + частота звука) и амплитуда, как амплитуда звука. Ведь это и есть SSB модуляция?

UR4UDT
08.10.2013, 11:00
Но я пока не вижу проблем.
Они начнутся, когда перейдёте к конкретному исполнению задуманного.
Не хочу Вас обидеть, но с теорией желательно разобраться глубже.
Это как при собирании грибов: можно сразу пойти в грибное место, а можно долго и безрезультатно бродить по лесу.

Слесарь
08.10.2013, 11:04
Но я пока только по архитектуре схемы, чтоб собрать необходимые элементы и спаять плату. Думаю все проблемы будут решаться уже по программной части. Сейчас меня интересует только вопрос, достаточно ли AD9851 как генератора частоты передачи и например MCP4921 (ЦАП 12-bit) для управления амплитудой передачи?

Для оцифровки звука думаю можно применить AD7478 (АЦП 8-bit, 1.2 MSPS) если потребуется более точное и оперативное вычисление моментального значения частоты звука. Или встроенный в МК 10-битный АЦП 0.1 MSPS, если будет достаточно. Или лучше и то и другое, для раздельного определения частоты и амплитуды звука разными АЦП.

UR4UDT
08.10.2013, 11:30
пока только по архитектуре схемы
Я использую для экспериментов PIC18F27J53, AD9954, MCP4921.
Вычислительных ресурсов контроллера вполне хватает.
Квадратуру беру с ПК по USB (от PowerSDR) или из таблицы в памяти контроллера.
Получить квадратуру с микрофона - отдельная тема. Может понадобится более мощный контроллер (может DSP).
Сначала нужно получить качество сформированного сигнала, которое меня устроит.

Слесарь
08.10.2013, 11:39
Понятно. Это и хотелось услышать.
Немного не понимаю что такое квадратура, но могу ли я просто для определения моментального значения частоты звука делать несколько отсчетов АЦП и на основе этих отсчетов рассчитывать числовое значение частоты? Я делал подобные вещи, но только на базе 1-битного АЦП. Далеко ходить не надо, например в стиральной машине у меня 1-битный АЦП распознает частоту следования импульсов тахометра электромотора в диапазоне 64 ... 2560 Гц. С периодичностью оцифровки и вывода значения каждые 8 импульсов тахометра. Достаточно достоверно.
Еще помнится с мобильных телефонах применяют встроенный в микрофон АЦП работающий на частоте оцифровки в пару МГц, чем выше синус звука - тем плотнее заполнение импульсами на цифровом выходе микрофона, цифровой сигнал такого микрофона думаю будет еще проще разобрать как значения частоты и амплитуды звука?

UR4UDT
08.10.2013, 11:48
что такое квадратура
Сигналы сдвинутые по фазе на 90 градусов.

могу ли я просто для определения моментального значения частоты звука делать несколько отсчетов АЦП и на основе этих отсчетов рассчитывать числовое значение частоты?
По каждому отсчету АЦП производится расчет. Но это совсем не просто и не быстро, как хотелось бы.
На данном этапе я не ставлю перед собой такой задачи. Хочу использовать в передающей части SDR трансивера.

Леонид3
08.10.2013, 11:50
Слесарь, для начала попробуйте на "бумажке" посчитать мгновенные значения частоты звука, например, запишите свой голос "аллё" и по дискретным отсчётам считайте: будете удивлены диапазоном "мгновенных" частот.
Звук уже есть однополосный сигнал т. к. отрицательные частоты существуют только в математике :smile: Резложив его преобразованием Фурье и прибавив к каждой частоте несущую ( или вычитая из несущей) Вы и получите частотный спектр необходимого SSB сигнала, останется сделать обратное преобразование (свёртку на временнУю ось), но для этого необходим очень быстрый процессор, какого Вы не найдёте среди имеющихся в продаже :-(
Конечно можно на каждую частоту сделать по два процессора, по отдельности они успеют посчитать, и сложить их данные для отправки в синтезатор :roll:
Удачи!

ur8us
08.10.2013, 12:16
Поскольку такая тема возникает (и благополучно затухает) на форуме не в первый раз, еще раз напоминаю о статье А. Погосова "Синтез SSB сигнала в телеграфном передатчике", журнал Радио N5, 1987 г. Можно найти много интересного в этой статье.

UR4UDT
08.10.2013, 12:19
Можно найти много интересного в этой статье.
И не только в ней. А попробовать на современной элементной базе хочется уже 40 лет.
Человек спросил, а я ответил. Топик стартер может благополучно закрывать тему. Я не собираюсь ни с кем вступать в диспут.

Слесарь
08.10.2013, 13:45
Слесарь, для начала попробуйте на "бумажке" посчитать мгновенные значения частоты звука, например, запишите свой голос "аллё" и по дискретным отсчётам считайте: будете удивлены диапазоном "мгновенных" частот.
При записи звука на компьютере и просмотре синусоиды смотрится достаточно просто. По нескольким отсчетам думаю можно рассчитать моментальную частоту с точностью до единиц или даже долей Герц, в зависимости от примененного АЦП. Обновлять частоту генератора ВЧ передатчика думаю достаточно с периодичностью 9 кГц, а отсчеты при оцифровке звука производить с периодичностью 72 кГц если будет недостаток достоверности при расчете моментальной частоты звука. То есть, 8 отсчетов АЦП звука, засекаем период синусоиды 8 раз, рассчитываем среднее значение периода 8 отсчетов и выводим значение в Герцах.

Так диапазон мгновенных частот значительно сузится аппаратно перед АЦП, до единиц килогерц, Спектр голоса достаточно узок.

DMJ
08.10.2013, 14:08
Примерно по такому принципу (генератор с управляемой частотой и амплитудой) делали первые вокодеры. Идея была в том, что если по каналу связи передавать не голос, а законы изменения частоты и амплитуды, то можно сильно сузить полосу частот. Но не всё оказалось так просто. Говорить нужно медленно. Смысл фраз ещё разобрать можно, а голос узнать - нет. Есть свои особенности в женском и мужском голосе. И т. д. и т. п. Дальше всё пошло по пути усложнения. Оказывается, мы о голосе и его формировании знаем далеко не всё.

Слесарь
08.10.2013, 14:14
Да. Согласен. Трудности могут возникнуть.
Думаю, моментальное значение частоты звука в процессе оцифровки можно рассчитывать, зная тенденцию моментальных значений синуса голоса, двум значениям. Лучше по 4 или 8 значениям для большей достоверности, усредняя.

sgk
08.10.2013, 14:17
Дальше всё пошло по пути усложнения. Оказывается, мы о голосе и его формировании знаем далеко не всё.
Один из методов
http://informaticslib.ru/books/item/f00/s00/z0000010/st036.shtml
По состоянию "на сегодня", передача SSB решена в ПЛИС и ЦАП, ссылки были ранее.

Слесарь
08.10.2013, 14:47
Идея была в том, что если по каналу связи передавать не голос, а законы изменения частоты и амплитуды,
Так это по эфиру передавать, а тут данные о частоте и амплитуде будут передаваться внутри схемы с периодичностью трехкратно превышающей частоту самого голоса. Хотя считается что достаточно двухкратно высокочастотного семплирования. Для диапазона звука 20 ... 20000 Гц применяют семплирование на частоте 44 кГц.

Добавлено через 20 минут(ы):

Заказал детали. Получается передатчик будет стоить порядка 1000 руб на базе AD9851, MCP4921 и PIC18F25K22, остальную обвязку пока не считаю, но думаю для 10 Ватт передатчика так и останется в пределах 1000 руб.
Лучше конечно PIC18F67J60 процессор, за теже деньги можно сразу обеспечить поддержку Ethernet для трансивера, но такого проца сейчас нет в магазине, попробую поискать у себя в хозяюстве.

RN6LKU
08.10.2013, 14:55
AM тож должно поддерживаться, выставляем на выходе AD9851 7.0 МГц и АМ модулируем дополнительным простым ЦАПом.

У ДДС-ки уже есть вход для АМ. DAC Rset.

Слесарь
08.10.2013, 15:03
У ДДС-ки уже есть вход для АМ. DAC Rset.
Да. Спасибо!
Надеюсь этот вход способен регулировать во всем диапазоне амплитуду генератора. Я намереваюсь в цифре задавать как амплитуду, так и регулировать выходную мощность всего передатчика. Сделать 8 младших бит MCP4921 для звуковой модуляции РЧ сигнала, и 4 старших бита для регулировки выходной мощности передатчика.

rx9cim
09.10.2013, 06:58
У меня большие сомнения, что быстродействия PIC18F25K22 хватит для этой задачи. Если к примеру взять частоту дискретизации хотя бы 22050Гц, то получается что на один такт дискретизации будет приходиться 16000000/22050 =725 тактов процессора. Для вычисления фазы вам потребуется или квадратурный гетеродин или преобразование Гильберта. А потом еще апроксимация арктангенса. С учетом того, что переменные будут скорее всего не 8 бит и рроцессор не для цос, этих 725 тактов даже на вычисление фазы может не хватить. Советую применять другой проц, те же стм32 с ядром кортекс м3 или м4. Там и эзернет есть и еще много чего.

Добавлено через 10 минут(ы):

И еще здесь писали про проблемы с частотой дтскретизации. Т.е. Если дрпустим применяется частота дискретизации (обработки измерений с микрофона и посылки данных в ддс) 22050Гц, то побочные каналы излучения будут находится ±11025 от основной частоты и далее периодически? И как я понимаю уровень этих излучений будет немалый, влзможно тот же что и на основной частоте.
Если посмотреть в SunSDR где стоит ad9957, то там эта проблема решается за счет интерполяции внуутри ad9957. Там итерполяция до 256, т.е. входная частота дискретизации умножается на 256.

Слесарь
09.10.2013, 09:34
В 725 тактов проца можно многое что уместить. Там же не будет никаких операционных систем. Все будет написано с чистого листа. Сейчас у меня вся стиральная машина которая уже стирает и выводит данные на дисплей умещается на 1000 строк программы, примерно те же самые 725 команд процессора.