-
03.03.2008, 23:58 #16
- Регистрация
- 21.01.2007
- Адрес
- Москва
- Возраст
- 71
- Сообщений
- 812
- Поблагодарили
- 56
- Поблагодарил
- 11
Не знаю дойдут ли у самого руки до SSB в DDS, но с ЧМ и АМ вроде все красиво на контрольном приемнике. У меня дома есть СК4-59. Надо посмотреть спектр по внимательней. Картинки выложу здесь.
Геннадий! Проясни, что там за автосканирование в AD9954? Можно ли этот режим использовать для автоматической линейно-кусочной аппроксимации между воздействиями? Чую, что нельзя, а жалко! Такой режим неплохо бы ввести в железо чипов DDS по всем трем изменяемым параметрам сигнала - ЧМ, АМ и ФМ. Надо Девайсовцам идейку кинуть. Вот тогда действительно дискреты будут идти с тактовой частотой фаз-аккумулятора, как говорил Денис.73. Сергей (RX3AKT)
-
11.04.2008, 20:38 #17
- Регистрация
- 21.01.2007
- Адрес
- Москва
- Возраст
- 71
- Сообщений
- 812
- Поблагодарили
- 56
- Поблагодарил
- 11
Для получения прямосинтезированного модулированного сигнала на чип DDS необходимо подавать управляющие цифровые сигналы в последовательном коде. Я для этого применяю SPI-интерфейс контроллеров семейства AVR. К сожалению их быстродействие не обеспечивает максимально возможной скорости обмена, равной 25 Мегабит в секунду (по данным на синтезатор AD9952). Для достижения такой скорости необходимо иметь микроконтроллер с производительностью выше 50 mips. (у AVR около 20 mips).
Кто бы порекомендовал какой-либо НЕДОРОГОЙ и ДОСТУПНЫЙ скоростной контроллер с встроенным АЦП и синхронным последовательным интерфейсом?Последний раз редактировалось RX3AKT; 11.04.2008 в 20:51. Причина: Добавлено сообщение
73. Сергей (RX3AKT)
-
11.04.2008, 23:23 #18
- Регистрация
- 21.01.2007
- Адрес
- Москва
- Возраст
- 71
- Сообщений
- 812
- Поблагодарили
- 56
- Поблагодарил
- 11
Спасибо за интересную информацию, Александр!
Контроллеры C8051F360 мне понравились больше, чем LPC2364. И система команд привычнее и функции не такие избыточные, как у LPC. "ПЛАВНИКИ" тоже несколько избыточны пока (речь идет пока только о АМ и ЧМ) вот когда дело дойдет понастоящему об SSB, тогда им здесь самое место. У моего любимого ATMEL-а тоже есть ARM-ы и AVR-16, но не хочется с ними связываться. Они, тут на медни объявили об ATxmega, но по мипсам не проходят.
На практике 10 разрядов АЦП вполне достаточно для довольно качественного звуковоспроизведения. Недавно сделал сквозной АЦП (10 разр.) - ЦАП (16 разр. ШИМ) ~22 Ксэмпла/c на AVR (ATtiny26 - 40 руб. за 1 шт.) для проверки качества. Послушал сам себя на м-м гарнитуру с программной задержкой 10 с. и остался доволен.
PS: Надо же! Научились для MCS-51 делать 1 MIPS на 1 MHzПоследний раз редактировалось RX3AKT; 11.04.2008 в 23:41.
73. Сергей (RX3AKT)
-
12.04.2008, 14:43 #19
- Регистрация
- 21.01.2007
- Адрес
- Москва
- Возраст
- 71
- Сообщений
- 812
- Поблагодарили
- 56
- Поблагодарил
- 11
Я предпочитаю докапываться во всем до самых скальных оснований. Когда то, в начале эры AVR (почему то они мне понравились больше, чем PIC) были сложности с программированием. Код опознавания некоторых контроллеров был "левым" и имеющиеся программаторы и софт часто просто отказывались работать с данными девайсами. Пришлось изобрести свой программатор, который обходился (и до сиих пор обходится) вообще без "железа". Просто шнур между выводами LPT порта и ножками контроллера. Все остальное - собственная программа.
Вижу, что и с C8051 поступлю так же. Тем более что "рыба" программы достаточно развита.
За годы работы с микропроцессорами (с 1980-го года) и микроконтроллерами (MCS-48, MSC-51, 8080, Z80, 8086, 6800, 68000, PIC, AVR.....) у меня выработались собственные приемы отладки, основанные на включение в код тестовых участков. Раньше при УФ ПЗУ оставлял участки NOP (FFh), потом тест участок, потом вместо FF вставлялся JMP обхода теста. Сейчас с возможностью многократного перепрограммирования флэш-ПЗУ эта проблема снимается. Тем более, что с годами привык делать отладку вообще В УМЕ. Т.е. при анализе только ТЕКСТА в мозгах складывается целостная картина того, что происходит с периферией в реальном времени. Так родилась прошивка моего синтезатора... http://www.rx3akt.narod.ru/dds_akt.html
8 кило ассемблерного кода вручную.
Недавно был казус: Один покупатель обнаружил редко воспроизводимый баг. При анализе программы выяснилось, что причиной был готовый кусок кода (процедура) рекомендованная фирмой ATMEL. Когда я сам до этого допер, то решил заглянуть еще раз на эту процедуру через интернет и... с удивлением обнаружил, что фирмачи уже втихую исправили свою ошибку. И...молчок! Если интересно приведу конкретные сравнительные тексты. Правда, это тема другого форума и довольно специфичная, не всем интересная.
Вот такое бывает...Последний раз редактировалось RX3AKT; 12.04.2008 в 14:48.
73. Сергей (RX3AKT)
-
13.04.2008, 12:55 #20
- Регистрация
- 14.01.2007
- Сообщений
- 51
- Поблагодарили
- 7
- Поблагодарил
- 0
А были ли попытки сделать на базе АРМа с USB (LPC2148 LPC2368) передатчик прямого синтеза сигнала, который бы "прикидывался" звуковой аудиокартой USB для компьютера? Т.е поручить задачу оцифровки микрофона компьютеру, а устройство принимает аудиопоток и только перестраивает DDS в соответствии с текущим звуковым отсчетом?
И второй вопрос. В принципе вычислительных возможностей такого АРМа хватает, что бы "крутить" преобразование фурье в реальном времени (а без такого преобразования SSB передатчика имхо не сделать). А если использовать не обычный звуковой поток (отсчеты амплитуды от времени) а MP3? МП3 грубо говоря представляет собой представление сигнала в спектральной облсти, и его легче преобразовать в отсчеты перестройки фазы и амплитуды DDSa?
-
13.04.2008, 13:28 #21
- Регистрация
- 21.01.2007
- Адрес
- Москва
- Возраст
- 71
- Сообщений
- 812
- Поблагодарили
- 56
- Поблагодарил
- 11
А вообще, были ли замечены ПОПЫТКИ сделать звуковую (речевую) модуляцию непосредственно в DDS ?
У меня уже год АМ, ЧМ и DSB работают неплохо на AD9952YSVZ (модификация моего синтезатора http://rx3akt.narod.ru/dds_akt2.html ) и без всяких АРМ-ов, на ATtiny26 в качестве оцифратора...
До SSB еще руки не дошли. Только предварительные эксперименты.73. Сергей (RX3AKT)
-
15.06.2008, 00:50 #22
- Регистрация
- 15.06.2008
- Адрес
- КРАСНОДАР
- Возраст
- 74
- Сообщений
- 2
- Поблагодарили
- 0
- Поблагодарил
- 1
Здравствуйте, Сергей!
Здесь, похоже, ответ на ваш вопрос и предложение к кооперации:
//forum.cqham.ru/viewtopic.php?p=228587#228587
73! Владимир RZ6AT.
-
19.06.2008, 12:48 #23
- Регистрация
- 21.01.2007
- Адрес
- Москва
- Возраст
- 71
- Сообщений
- 812
- Поблагодарили
- 56
- Поблагодарил
- 11
Владимир! (RZ6AT)
Думаю что формирование с помощью DDS SSB сигнала на рабочей частоте очень перспективная и заманчивая вещь. Конечно без побочных эффектов, таких, например, как расширение полосы, здесь не обойтись. Но, получаемые ПЛЮСЫ могут все это компенсировать. А результаты лучше всего в любом новом деле оценивать на практике. А вдруг получится, что "не так страшен черт, как его рисуют". По моему мнению надо стремиться к минимизации "железа". Ведь можно обойти трудности получения информации о мгновенных компонентах исходного НЧ сигнала применением "навесных" элементов. Например с помощью двух синхронизированных DDS сформировать квадратурные сигналы DSB и затем суммировать их. Правда для этого потребуется НЧ фазовращатель для каждого из двух каналов оцифровки речи. А это уже "АНАЛОГОВЩИНА"! Думаю, что это возможно уже сейчас. Есть путь увеличения частоты дискретизации - применение последних скоростных чипов с параллельной загрузкой управляющих слов. Вобщем, тема интересна и для обсуждения и для воплощения. К примеру, АМ и ЧМ - это уже пройденный этап. Субъективно звучит все очень неплохо. Теперь тружусь над АМ/ФМ - непосредственным синтезом PSK31 с помощью DDS. Тем более, что ЗАДЕЛ имеется... http://www.rx3akt.narod.ru/psk31_akt.html
К сожалению я не смогу воспользоваться Вашей ссылкой. Доступ на сей "славный" форум мне бессрочно закрыт админом UA6AP. Даже взглянуть нельзя! Видимо я принес слишком мало полезной информации для этого сайта и форума... http://forum.cqham.ru/search.php?sea...ergey+Makarkin
А некоторые сообщения просто выкинуты целыми темами. Например про синтезатор.
Зато освободилось много времени от бесполезных дебатов...Последний раз редактировалось RX3AKT; 19.06.2008 в 12:56.
73. Сергей (RX3AKT)
-
19.06.2008, 19:10 #24
- Регистрация
- 15.06.2008
- Адрес
- КРАСНОДАР
- Возраст
- 74
- Сообщений
- 2
- Поблагодарили
- 0
- Поблагодарил
- 1
Хочу поделиться и обсудить идею, решение которой я нашёл в сентябре 2007 года, но всё нет возможности допаять и отладить программу, поэтому рещил попросить помощь на форуме, может кто поможет проверить работоспособность идеи программно формировать SSB (USB или LSB выбирается программно) речевой сигнал на любой выходной частоте DDSa. Это позволит избежать применение смесителей на передачу, но, возможно, и на приём тоже, но это потом.
Суть идеи заключается в том, что в современных DDSах в их структуру введены дополнительные регистры, которые позволяют управлять программно амплитудой и фазой выходного сигнала DDSa. И, возможно, они сами и придумали такой способ формирования в том числе и SSB сигнала и ввели для этого эти блоки, а мы, не зная этого, изобретаем то, что они придумали до нас... Но как бы то ни было, давайте посмотрим, как можно программно формировать SSB речевой сигнал сразу на выходной частоте DDSa. Допустим, что мы запрограммировали DDS на выдачу выходного сигнала с частотой 10 МГц?, смотри схему ниже. Мы заглянули в описание DDSa и посчитали код, который нужно записать в регистр инкремента сумматора фазы и этот код инкремента стал постоянно, с частотой генератора Gen1 накапливаться (суммироваться) в сумматоре фазы, линейное нарастание которой, с шагом(инкрементом), обратно пропорциональным выходной частоте, производит выборку из зашитой внутри DDSa таблицы синуса и подаёт выбранный код амплитуды синуса на выходной ЦАП DDSa, добавленные в структуру регистр + сумматор кода фазы и регистр + перемножитель кода амплитуды позволяют вариировать в такт со звуковым сигналом мгновенную фазу и амплитуду выходного сигнала. Так как информация о фазе и амплитуде внутри DDS должна быть представлена в цифровом виде, то мы должны перевести аналоговый сигнал с микрофона в цифровой, для чего необходимо его усилить, например, на операционном усилителе ОР1 и подать на вход ADC0 аналогово-цифрового преобразователя, например, встроенного в микроконтроллер МК АТmega8. Частоту выборок нужно сделать по крайней мере не ниже удвоенной верхней частоты звукового диапазона речи, например 8 кГц, но для того, чтобы получить информацию о фазе звукового сигнала, нужно производить выборку квадратурного сигнала, т.е. сдвинутого на 90 градусой сигнала 8 кГц или просто через четверть периода от основной выборки. Тогда быстродействие АЦП должно составлять 32 кГца, но внутри АТmega8 быстродействие составляет 16 Кгц. Для того, чтобы он успевал делать квадратурные выборки, применим схему выборки и хранения на аналоговом ключе SW1, который управляется одним из выходов МК так, что ключ открывается и заряжает конденсатор C1 весь период 8кГц, за исключением времени от четверти до половины периода, как бы перенося во времени иформацию о мгновенной амплитуде речевого сигнала с четверти на половину периода и считывая его вторым входом АЦП ADC1 и тогда быстродействия в 16 кГц хватает, чтобы выбирать и основной и квадратурный сигналы. Информацию о мгновенной амплитуде можем легко вычислить, представив, что наши выборки являются проекциями вектора мгновенной амплитуды на ортогональные оси, так как они сдвинуты по времени на 90 градусов. Тогда амплитуда равна корню квадратному из суммы квадратов двух выборок основной и квадратурной за период, а фаза равна арктангенсу отношения основной выборки к квадратурной. Но вычисление отношения имеет подводные камни, когда знаменатель может быть, а он вполне может быть, равен нулю. Для обхода подводных камней вспомним, что частота является производной от фазы и что вместо изменения регистра фазы мы можем изменять регистр частоты, пропорционально производной от фазы, а производная от фазы это производная от арктангенса отношений основной и квадратурной выборок за период. Смотрим в справочник по производным и находим, что производная от арктангенса отношения А/B равна А делить на сумму квадратов А и В, а так как сумма квадратов всегда больше нуля, хотя бы от шума микрофона, то подводные камни обойдены. И теперь если мы хотим иметь верхнюю боковую на выходе, то вычисляем производную и прибавляем в регистр частоты соответствующий довесок к мгновенной частоте, а если нижнюю боковую, то вычитаем и соответственно вычисляем по описанной ранее методике текущую амплитуду и засылаем её в регистр амплитуды - на выходе должен формироваться соответствующий однополосный сигнал.
Если кто может смакетировать такую схему и написать программу и проверить как это работает, то всем нам откроется путь как формировать SSB сигнал без применения смесителей, сразу на рабочей частоте.
-
12.05.2012, 01:22 #25
- Регистрация
- 10.10.2003
- Адрес
- Калуга
- Возраст
- 50
- Сообщений
- 441
- Поблагодарили
- 12
- Поблагодарил
- 7
Предлагаю за частоту дискретизации низкочастотного сигнала и принять высокую рабочую частоту, при этом управлять амплитудой высокой частоты только амплитудой низкочастотного сигнала в моменты дискретизации. Верхняя боковая полоса получится тогда, когда напряжение модулирующего сигнала возрастает, так как при этом будет возрастать и амплитуда высокочастотного сигнала, соответственно, ожидаемое значение амплитуды ( вкратце ) будет заведомо больше, чем при синусоиде с постоянной амплитудой. При убывании значения напряжения НЧ сигнала получится нижняя боковая полоса. Несущая должна остаться "виртуальной".
RA3XCQ ( Larry158 )
Социальные закладки