Возникла идея заменить компьютер или аналоговый демодулятор/формирователь SSB на микроконтроллер:
http://www.rigexpert.com/index?s=art...=zif_trxd&l=ru
НЧ-часть приемника можеть быть сделана, например, так:
Есть ли другие идеи на эту тему?
Вид для печати
Возникла идея заменить компьютер или аналоговый демодулятор/формирователь SSB на микроконтроллер:
http://www.rigexpert.com/index?s=art...=zif_trxd&l=ru
НЧ-часть приемника можеть быть сделана, например, так:
Есть ли другие идеи на эту тему?
Денис! То, что нарисовано на Ваших рисунках действительно можно легко реализовать на микроконтроллере. Очень заманчиво заменить одной микросхемой низкочастотный фазовращатель в ТПП. Только поясните пожалуйста мне (и может не только мне) суть работы устройства. Беспокоить В.Т. Полякова мне как то неудобно, а упомянутой его книжки нет под рукой. Лично мне удобнее рассматривать устройство для режима ПЕРЕДАЧА. На сколько я понял входной микрофонный сигнал с полосой 0...3 КГц оцифровывается входным АЦП (зачем нужен таймер к ФНЧ?). Затем отсчеты программно перемножаются с сигналом виртуального генератора 1,5 КГц (Фазы на смесители под 90 или 180 град? Сигнал - синус или меандр?). Затем отсчеты с выходов "смесителей" превращаются в аналоговый вид выходными ЦАП. После фильтрации получаются два сигнала со сдвигом 90 гр. в полосе до 3 КГц (почему вых. ФНЧ имеют Fсреза 1,2 КГц, а не 3 КГц? Зачем нужен второй таймер? Как он относится к первому таймеру?)
Ответьте пожалуйста на поставленные вопросы. Поясните - почему происходит сдвиг на 90 град. в полосе?
PS: Умею осуществлять прямую 10 разрядную оцифровку по нескольким каналам с Fтакт=22 КГц и обратную 16-ти разрядную оцифровку по двум каналам на ОДНОМ чипе ATtiny26 с внутренним PLL тактированием около 120 МГц/4=30 МГц (реальные цифры!)
PS...PS: Нельзя ли сделать двухканальным такой фазовращатель. Для нижней боковой (0...1,2 КГц) и верхней (1,7...3 КГц) ?
Ок, в режиме передачи:
Это для случая, если ФНЧ на микросхеме фильтра с переключаемыми конденсаторами.
90 градусов, синус.
Потому что "ноль Герц" приемника (или передатчика) соответствует полутора килогерцам на микрофоне или динамике.
Если использовать одинаковые микросхемы фильтров, то для 1.2 кГц и 3 кГц им понадобятся разные тактовые частоты.
Теорию объяснил В.Т. Поляков - я не смогу сделать этого лучше.
Также можете почитать здесь: http://lea.hamradio.si/%7Es53mv/zifssb/block.html
Осталось подобрать частоту дискретизации, кратную полутора килогерцам - так таблицу синусов можно заменить всего несколькими константами, а операции умножения - сложениями.
Да уж сам начал соображать потихоньку.Не встречал ЭТОГО до сиих пор. Всего знать нельзя (Хи!)
+/- десяток герц погоду не сделает, а кратность действительно соблюсти надо! (что бы фазового шума небыло (Хи!) Куда деваться от DDS!)
Это частности...
Вот это непонятно. Зачем оставлять "несущую"? Конечно сложение делать быстрее, но динамика падает в два раза... В подавлении несущей при сложении можно ли надеяться на выходные фильтры? Может подавить 1,5 КГц тоже программным способом? Компенсировать... Тогда получится также долго, как при умножении...
По ссылке... Какие же супостаты все же молодцы! А 5 ГГц паралончиком все же прикрыл от глаз...
Как на счет PS...PS?
Приветствую всех!
Денис, идея эта уже неоднократно появляется на разных форумах сайтов. И Вы не едины в этом стремлении. Но идея остается только идеей. Нужно обосновать это на цифрах. Какой МК это потянет. AVR МК есть разные и у всех АЦП-ЦАП 10бит разрешение. Может какой то и упустил. Хватит этого разрешения для обработки или нет? Один коллега уже реализовал это на ADSP-2181. Так у него 16бит и использовал он частоту дискридитации 16кГц. Вот обоснуйте возможность применения МК и какого.
ТО RX3FKT
Оцифровать это одно. Но потом все это обработать фильтрами, перенести, сфазировать и т.д. и вывести на УНЧ выход наверно трудновато этому МК.
У меня есть 8-ми ядерный МК Propeller P8X32A так возможно он потянет всю обработку и без внешних приблуд. Но пока опыта ноль. Надо вникать в ЦОС. Что потихоньку и начинаю. Если есть возможность, то представьте алгоритм Вашей оцифровки AVR. Может и легче будет вникать.
В том то и дело, что задача, поставленная в этой теме Денисом (UU9JDR), выполняется ЭЛЕМЕНТАРНО простым и дешевым (~40 руб.) микроконтроллером... А сам процесс оцифровки происходит в них в фоновом режиме. Достаточно только брать из соответствующих регистров готовые результаты во время прерывания, вызванного окончанием очередного цикла работы АЦП или класть данные для работы ЦАП-а.
Собственно, алгоритм я уже описал. Что же касается алгоритма работы той "схемы", которую нарисовал Денис, то это другой вопрос. Можно и его расписать, но потребуется объяснять много теоретических моментов. Например, как программно осуществить функцию балансного смесителя, генерации синусоидального квадратурного сигнала и др. Тем более что никакого реального сигнала в контроллере то и нет! Все в т.н. виртуальном виде... А на выходе все по-настоящему!
Вот и удивляет меня, если это так ЭЛЕМЕНТАРНО просто и в Дениса по ФФФ методу и по квадратуре обычной, а нет реально выполненной конструкции у Вас, Сергей. Да и другие коллеги не представили до сих пор. Да и промышленность то же. На сигнальных процессорах то есть, а вот на МК нет. Значит не так то просто, как кажется на самом деле. Будет реальная конструкция у Вас на МК типа ATtiny26, о котором Вы вели речь, тогда и поверю, что это ЭЛЕМЕНТАРНО просто. Да еще вдобавок и управление ТРХ-ом и хотя бы простенькая панорама на этом МК...
Так, у меня есть другие реально выполненные конструкции. Смотрите на моем сайте... http://www.rx3akt.narod.ru Лично я не отношусь к большим поклонникам техники прямого преобразования. Делаю трансивер с фильтровым формированием с преобразованием вверх и с двумя ПЧ. (смотрите здесь... http://forum.qrz.ru/thread16711.html) На все просто времени не хватает.
Никто и не утверждает, что это просто. Лично мне захотелось поэкспериментировать. Там и увидим... Плюс данной идеи - простота, дешевизна и предсказуемость параметров. Минус - при входной полосе 3 КГц на выходе имеем полосу всего 1,2 КГц. Для CW вполне пригодно, а для SSB - нет.
В цифровой технике, в отличии от аналоговой, все решается на уровне идеи. А реализация - дело второстепенное и зависит от умения программиста. Идея мне понятна. Как ее реализовывать - тоже. Поэтому для меня это ЭЛЕМЕНТАРНО. Для других - не знаю.
А это уже не про то... Мы же рассматриваем маленький узелок, а не весь трансивер...
За неродивых коллег и промышленность (которой нет) я не отвечаю...
Тут Вы, Сергей, ошибаетесь. На выходе таже полоса, что и на входе. Смотрите по ссылке режим передачи http://forum.cqham.ru/download.php?id=4000
Просто получается два полуспектра шириной 1200Гц которые потом складываются и востанавливается исходный спектр по средине несущей передачи +- 1.2кГц.
А это режим приема http://forum.cqham.ru/download.php?id=4580
В режиме приема приемник так настраивается, что бы центр полосы спектра в 2400Гц оказался по центру на выходе ПЧ1 1.6кГц. По обе стороны от 1.6кГц +- 1200Гц и будет наш спектр. Остается подавить писк с частотой 1.6кГц фильтром. Програмно это должно отлично получиться.
А обычная квадратура так как Вы думаете, можно на МК осуществить?
Или все же это будет более эффективно, чем ФФФ метод. Ведь полоса в ФФФ сужается как бы вдвое но больше мороки с програмными смесителями и вдобавок виртуальный квадратурный генератор.
Спасибо за пояснение. Действительно, что то я не до конца понял...
Программные балансники без фильтров от этой несущей ничего не оставят...
Думаю, что на AVR-ах - НЕТ!
Я уже писал, что для данного способа (ФФФ) и для данной "схемы" для меня все ПРОЗРАЧНО. Т.е. алгоритмически совершенно ясно. Отсчеты синуса опоры 1,5 КГц берутся из таблиц. Каждая фаза из своей. Это и есть "программный квадратурный генератор". Далее, для каждого канала отсчет опоры умножается на отсчет входного сигнала (для передачи). Результат - это выходные отсчеты смесителей (две боковые с подавленной опорой). Их осталось только превратить в аналоговый вид (просто послать в регистры сравнения ШИМ-ЦАП-ов). Самое неприятное здесь - длительная процедура умножения. Но и ее можно сократить по времени. Составить таблицу умножения для всех комбинаций. Это займет некоторый объем ПЗУ, но сейчас контроллеры имеют необъятные памяти программ и это не проблема. Главное - использовать контроллеры на максимально возможной тактовой частоте и повысить разрядность ЦАП-АЦП. Обе этих задачи решаются с помощью Русской смекалки. Производители контроллеров и сами не подозревают иногда, на что способны их детища. Я уже писал, что если использовать в качестве тактовой частоту внутреннего PLL умножителя контроллера и выставить умножаемую частоту на максимальное значение, то чип продолжает НАДЕЖНО работать при скорости около 34 МГц. Ни при каких других способах тактирования контроллер на такой частоте не работает, а так - ДА! Тоже и с 16-ти разрядным, вместо 8-и, ЦАП-ом... Из двух 8-и разрядных легко получается один 16-ти разрядный, путем добавления всего одного резистора в общем интеграторе на выходе ШИМ-ов... Смотришь на осциллографе ступеньки сигнала на интеграторе. Пальцем подконтачиваешь доп-резистор и вмето ступенек видишь гладкую кривульку, без ступенек... Чудеса! А как все это звучит! Я тут сделал такой оцифратор для осуществления программной ЧМ-АМ в своем DDS синтезаторе. Послушал ЖИВОЙ сигнал - HI-FI!
Приветствую всех!
Спасибо Сергей RX3AKТ, за разьяснения. Интересный момент с тактированием МК. И это проходит со всеми МК AVR, у которых есть умножитель?.
Пока ищу инфу и штудирую. Вот нашел салькулятор по Sigma-Delta ADC
http://www.pulsedpower.net/Applets/E...e%20Resistance
Если есть что у кого, то вылаживайте здесь.
Я думаю, что всех, у которых есть внутренний PLL умножитель тактов и возможность использовать этот сигнал для тактирования. Я же использовал это свойство только на ATTiny26, 46 и 86. Скоро закончу микросинтезатор на ADF4360-6 для получения тактов для DDS AD9912 (1000 МГц). Там использую ATtiny25. У нее тоже есть PLL. Испытаю - напишу...
Во-первых то, что Вы нарисовали не будет заменой аналогового модулятора/демодулятора. Во-вторых непонятна цель применения микроконтроллера и вообще цель перехода в digital domain в данной идее (ведь ничего кроме проблем при этом не приобретается)? Хотя если чисто для маркетинга, то можно :)Цитата:
Возникла идея заменить компьютер или аналоговый демодулятор/формирователь SSB на микроконтроллер
Ну а про проблемы фликкер шума и баланса аналогового тракта (особенно дрейф по постоянному току) я уже и не упоминаю ;) ...
Почему Вы так считаете, что не будет заменой аналогового? Ведь уже этот узел попытался осуществить один коллега и довольно успешно, правда на ADSP 2181 со всеми фильтрами. Не понятны выводы про фликер шумы. В ФФФ и ППП аналоговом они тоже присутстуют, но это не мешает получить хорошую чувствительность. А баланс амплитуд можно скорректировать програмно и в ручную аппаратно. А что бы не было на выходе первых СМ-ов постоянки, поставить емкости разделительные. Применение МК обосновывается их дешевизной и доступностью.
А если выполнить только самый ответственный узел приемника ППП и самый трудновыполнимый и габаритный на ЦОС. Тогда при применении двух МК допустим AVR серии из серии 8-ми выводных, получится маленький блочок. Почему именно два МК. Так производительность одного МК не достаточна будет для обработки двух каналов. По сравнению с представленной Денисом структурной схемы, эта блок-схема(см.приложение) проще по алгоритму. В верхнем канале идет только перетрансляция сигнала на выход, необходимая только для того, что бы запомнить считанный отсчет и уровнять время перед почти одновременной выдачей сигналов на выход в аппаратный сумматор. Два или один МК использовать, зависит от быстродействия применненого МК. Возможно и один AVR справится. Это уже нужно просчитать время, затрачиваемое на обработку. Может Сергей RX3AKT прикинет время, если АЦП и ЦАП на 10бит и частоте дикретизации 16кГц и время затрачиваемое на сдвиг по фазе в нижнем канале.
Юрий, если в структурной схеме меньше квадратиков, то это совершенно не значит, что ее проще реализовать. :-)
Кстати, если вместо одного МК использовать два - Вам будет гарантирована неидентичность характеристик ЦАП-ов и АЦП.
Самый интересный квадратик на этой схеме - тот, что обозначен как "90 градусов". Внутри МК такое можно сделать при помощи дискретного преобразования Гильберта. Оно довольно часто используется в алгоритмах обработки сигналов.
Есть одно "но": АЧХ такого преобразователя оставляет делать лучшего. Я имею в виду преобразователь с количеством коэффициентов, который реально реальзовать на DSP-процессоре (или, если удастся исхитриться, на микроконтроллере). Хорошая картинка есть в статье http://wifiset.ru/content/view/478/32/ .
Первое - это неравномерность АЧХ в желаемой полосе пропускания. При суммировании с "не-сдвинутым" сигналом для подавления нежелательной полосы никакого серьезного подавления не получится.
Второе - провал амплитуды на низких (а также высоких, близких к половине частоты дискретизации) частотах. Опять же, что что произойдет, когда мы просуммируем сигналы с выходов АЦП? - Нужно добавлять ФВЧ.
Что касается реализации на МК - как и для программного ФНЧ (или ФВЧ), для Гильберта требуется много-премного раз перемножать каждую выборку входного сигнала с коэффициентами фильтра. Специальзированные DSP-процессоры как раз "заточены" под эту задачу, а МК - нет.
Я думаю, с этой задачей гораздо лучше справятся пассивные полифазные фильтры (народ вовсю делает трансивер "Пилигрим") или активные - на операционниках. Японцы, вон, на переключаемых конденсаторах предлагают:
http://ieeexplore.ieee.org/Xplore/lo...number=1013864
Да чего там попусту слова тратить. Вот попробуем это СДЕЛАТЬ и тогда напишем...
Кстати, панораму делал японец:
http://elm-chan.org/works/rsm/report_e.html
http://elm-chan.org/works/rsm/ifspec2c.png
http://members.jcom.home.ne.jp/felm/ifspec.avi
Расчет очень прост:
Период предлагаемой частоты сэмплирования Тс=1/16КHz=62,5 мкс
Длительность одной операции при Fтакт.=30 МГц равна То=1/Fтакт.=0,03 мкс
Число однотактовых команд за время Тс равно Тс/То= 2083
С учетом того, что процесс прямой и обратной оцифровки идет вобще в фоновом режиме и не затрачивает почти времени контроллера, за эти две тысячи операций можно буквально ГОРЫ СВЕРНУТЬ, причем одним-единственным контроллером! О двух и речи быть не может. Кстати, один цикл АЦП занимает 13 тактов контроллера...
К стати в ROM P8X32A жестко вшиты(а жаль, лучше бы на память RAM больше, а таблицы по необходимости можно и подгружать) таблицы sin, cos и таблицы Log и Anti-Log по которым можно значительно сократить время на обработку. Так таблица sin состоит из 2049 отсчетов с дискретностью 0.0439град. Конечно обьем 4кБ, но память на программы AVR-ок до 64кБ и более. Так что нужно только пробовать. А то что ППП-ки делают это успешно на полифазерах то же замечательно. Но многим подбор R и C в трудность да и цена на весь комплект R и C значительная, учитывая то что придется потратиться не только на чисто для запайки а и отбор. Так что век на дворе 21 а мы все в 20-тый норовим.
Для создания таблиц для конструкции "Микропередатчик PSK31" http://rx3akt.narod.ru/psk31_akt.html мною написана простенькая программа, которая генерит готовый текст инклюд-файла таблицы на ассемблере. Легко получаются таблицы ЛЮБЫХ функций, ЛЮБОЙ разрядности и для ЛЮБОЙ скорости выборок, зависящей от тактовой частоты контроллера. Учтено округление значений соседних отсчетов...
Девайс давно работает, как трансивер. Дело в том, что жизнь сама направляет движение развития этой разработки. Было желание (даже были проработки) создать самостоятельный, полнофункциональный приемник для приема PSK31 с декодированием. Требованиями к конструкции (габариты, простота, цена) мы обрекали бы себя на просмотр участка принимаемого спектра, как бы через "узкую щель". Но, тут появились КПК (наладонники) и радиолюбительские программы к ним. И смысл делать приемник с декодером и дисплеем ОТПАЛ! Сейчас для связи используется комплекс: микропередатчик PSK31, приемник DEGEN и КПК с программой. Антенна на RX/TX переключается маленьким реле.
Если сделать со всеми фильтрами и смесителями в цифровом виде, то это будет заменой аналогового демодулятора-модулятора, так как нарисовано - нет, т.к. в состав модулятора-демодулятора входят аналоговые узлы.
В ППП влияние фликкер шума значительно ослабляется ограничением полосы снизу до 200-300Гц, в первом сообщении был нарисован фазофильтровый вариант, там тракты должны пропускать все, вплоть до постоянного тока, соответственно фликкер шум и разбаланс по постоянке вылезут в середину спектра (на 1.5кГц). Если поставить разделительные конденсаторы, получите провал в середине спектра (для SSB пойдет, для всего остального нет). Вот теперь думайте стоит ли оно того... Пара аналоговый перемножителей и простой генератор на 1.5 кГц справятся с задачей пожалуй получше (проще, точнее, дешевле), данной схемы...Цитата:
Не понятны выводы про фликер шумы. В ФФФ и ППП аналоговом они тоже присутстуют, но это не мешает получить хорошую чувствительность. А баланс амплитуд можно скорректировать програмно и в ручную аппаратно. А что бы не было на выходе первых СМ-ов постоянки, поставить емкости разделительные.
Если есть что-нибудь дешевое и доступное это еще не значит, что его нужно применять везде...Цитата:
Применение МК обосновывается их дешевизной и доступностью.
Если хотите сделать что-то, что может доставить удовольствие, а не разочарование, используйте более правильный путь, постройте тракт по принципу хорошо Вам известного SDR-1000 и т.п. Поставьте цифровой процессор и обработайте все без помощи PC, правда AVR здесь явно не подойдет...
Удачи!
P.S. Т.к. RX3AKT все понятно, в моих комментариях я так понял он не нуждается...
Так тут как раз и есть смысл исключить DEGEN из этого комплекса, поручив КПК обрабатывать моно сигнал НЧ в полосе PSK участка, или при применении синтезатора можно значительно уменьшить полосу по приему. Ведь смесители реверсивные. Остается коммутировать НЧ узлы ТХ/RX. На выходы СМ-ов поставить ВЧ фазовращатель LC. Благо, здесь не нужна широкая его полоса. По НЧ, если использовать участок в 4кГц, то конечно стоит обрабатывать в МК. Если использовать синтезатор, то НЧ полосу можно уменьшить до 400Гц и в полосе 600-1000Гц можно применить НЧ фазовращатель всего 2-го порядка, что обеспечит подавление ненужной боковой свыше 40дБ. Такое и у DEGEN-а я сомневаюсь что есть в режиме CW, SSB. Вы подумайте... Смесители у Вас прекрасные. Динамика великолепная. С таким аппаратом надеюсь Вы проведете намного более интересные связи, чем с DEGEN-ом. Жаль что нет пока софта под мобилы и смарты... А то КПК пока не по карману. По дешевке приобрел и пока пользуюсь Nokia 7610. Пытаюсь что то писать на паскале, но это не тот язык для смартов, да и библиотеки для работы со звуком худенькие. Попробовал написать морзе-тренажер под свою мобилу, так качество генерации не то. Как то рвано и тон двойной с вибрацией, как у элетроинструментов. В общем нужны более продвинутые средства програмирования, а они стоят хороших денег.
Добавлено через 1 час 4 минуты
Ну и что. Ведь заменяются вторые СМ-ы, генератор. А это уже минус несколько корпусов МС. В дополнение убирается сложность в подавлении поднесущей 1.5кГц, ведь при использовании програмного его на выходе нет в помине. Ведь он виртуальный. В этом уже убедились.
Работают такие аппараты на ФФФ и че то нет жалоб на сильные шумы в районе 1.5кГц. Эти шумы видать автоматически переносятся на выходе в тот же диапазон 0-200Гц и отрезаются в подальшем в УНЧ, иначе наблюдался бы свистящий шум. А этого не отмечается экпериментаторами.
Ну и применять никто никого не заставляет. Только результат решает многое. Вспомните про цифровой звук, как в начале его отвергали. А теперь повсеместно он командует парадом, запхнув подальше винил и магнитную запись. Так и здесь. Не хочеш не применяй.
А что, творческий процесс не удовольствие. Я так не считаю. Даже и не будет реального результата желанного, так за это время познается очень много нового, которое может дать в дальнейшем много полезного. Ведь не стандартный подход намного больше дает радости, чем идти по проторенной всеми дороге, как робот в концеконцов.
Я лично хочу попробовать вариант, представленный мной. И выполнить это конечно не на AVR, а на Propeller P8X32A. А это мощный 8-ми ядерный МК с суммарной производительностью 160Мимп. Если получится сюда впихнуть и фильтры и сумматор, то это будет еще лучше.
Во-первых, то, о чем Вы пишете, не будет заменой аналогового модулятора/демодулятора.
Во-вторых, непонятна цель применения цифрового процессора и вообще цель перехода
в digital domain (паяли ведь на резисторах-конденсаторах в 1960-м году, и ничего.) Хотя, если чисто для маркетинга, то можно. :-)
А фликер-шумы и разбаланс аналогового тракта (особенно, дрейф по постоянному току) достигают совершенно баснословных значений.
Конструктивно? ;-)
То, что я пишу как раз будет - если бы Вы немного поразбирались, то поняли бы это.
В SDR-1000 и подобных оцифровывается низкая ПЧ (а не НЧ), а вся демодуляция происходит в цифровом виде именно это и позволяет координально улучшить многие параметры. Аналоговая часть это только конвертер на низкую ПЧ.
Цель применения - улучшение параметров и технологичности, применение новых методов фильтрации и обработки сигнала, которые нереализуемы аналоговыми методами - думаю достаточно.
Ну да ладно вижу здесь все все знают, а так как такой поцесс еще и доставляет удовольствие и все у всех работает, то удачи - не буду мешать получать удовольствие...
P.S. че-та тока невидно - что и где работает и, кстати ниразу не конструктивно...
Прислушальсь бы к советам Олега sov1178 - человек прошел все это сам и добился отличного результата, непревзойденного пока на просторах exUSSR.
http://t03dsp.skydan.in.ua//Download_ru.htm
Не умаляя достижений sov1178 мне кажется, что обсуждение пошло не в ту сторону. Предложенная UU9JDR блок-схема ОДНОЗНАЧНО может быть реализована на AVR контроллере. Вне всяких сомнений она же с успехом в 300% может быть реализована на DSP. Но это будет похоже на стельбу из пушки по воробьям. По моему мнеию для DSP следует делать все СОВЕРШЕННО ПО-ДРУГОМУ не по предложенному Денисом алгоритму, а так, как делается в SDR. А попытка сделать хотя бы модулятор на контроллере - это просто ЛЮБОПЫТНАЯ задача. Можно, как минимум, реализовать квадратурный генератор НЧ опоры на AVR, а все остальное на внешних узлах. Стоит этой задачей заняться хотя бы из спортивного интереса. А, вобще, каждый судит со свой колокольни...
Олег! С ВОСХИЩЕНИЕМ познакомился с Вашей конструкцией DSP-трансивера. К сожалению далеко не все, даже самые ПРОДВИНУТЫЕ конструкторы, знакомы со спецификой DSP.
Пользуясь случаем и советом Александра (EU1ME) прошу Вашей консультации...
Скажите пожалуйста, правильно ли я понимаю процессы происходящие при декодировании SSB сигнала в SDR приемнике? (Упрощенно. Без процесса обработки квадратурных составляющих)
1) После оцифровки всего принимаемого спектра (0...~40 КГц) программа производит быстрое преобразование Фурье, после которого "знает" амплитуду (фазу???) каждой частотной составляющей с разрешающей способностью (какой??? 1 Гц?, 10 Гц?)
2) Программа "интересуется" только участком спектра шириной 3 КГц (меняется!) соответствующему спектру принимаемой SSB станции. Тем самым осуществляются функции Фильтра Основной Селекции.
3) Программа "переносит" частотные составляющие отмеченного участка в область частот с нулевой частотой на месте подавленной несущей принимаемого сигнала. (для LSB - полная инверсия спектра)
4) Программа преобразует обработанные частные полосы из цифрового в аналоговый вид и выдает на выход звуковой карты.
Правильно ли я все понимаю?
RX3AKT
Обработку сигнала можно делать по разному. Это зависит от многих факторов в том числе и от особенностей платформы на которой производится обработка сигнала (например DSP/FPGA/PC и прочее) и от целей обработки (основные алгоритмы можно реализовать и во временной и в частотной области, но бывают и "особые случаи").
В моем варианте вся обработка производится во временной области. Т.е. преобразования Фурье с переходом в частотную область не производится (при обработке DSP процессором так удобнее и расходуется меньше памяти). В первоначальном варианте со старым поцессором (DSP56001) демодуляция сигнала на ПЧ (15кГц) производилась по методу Weaver'а (фазофильтровый приемник с переходом на 0 ПЧ и обратно). Однако сейчас используется обычный фазовый принцип (как в приемнике прямого преобразования). Это не самый эффективный путь (с точки зрения используемых вычислительных ресурсов), но он позволяет избежать появления проблем с ошибками округления при вычислениях (особенности архитектуры конкретного DSP и применения полностью цифровой АРУ). Подробнее можно посмотреть PDF файл на моем сайте с кратким описанием алгоритмов DSP.
Если бы мне нужно было подсоединить свой блок DSP к "железке" выполненной в стиле SDR-1000, то изменения в программе были бы минимальными - вместо перемножения реального сигнала ПЧ на комплексный сигнал гетеродина нужно было перемножить комплексный входной сигнал (с двух каналов АЦП) на комплексный сигнал гетеродина - все остальное осталось бы без изменений (ну еще можно ввести коррекцию фаз/амплитуд каналов).
Если не вдаваться в детали, предложенный Вами вариант должен быть работоспособен. От выбранной разрешающей способности БПФ и оконной функции будет зависеть избирательнось Вашего ФОС.
Удачи!
Олег! Спасибо за развернутый ответ на мои вопросы. Я не являюсь специалистом по DSP и в своем посте только проявил личное видение решения вопроса цифровой обработки сигнала. Спасибо, что познакомили нас и с другими путями решения этой проблемы.
Недавно я реализовал программноуправляемую звуковую АМ и ЧМ на своем DDS синтезаторе. Результаты вполне обнадеживающие. Консультировался с RA3AAE по вопросу формирования SSB сигнала непосредственно на выходе чипа, без фильтров и смесителей, прямо на рабочей частоте в диапазоне перестройки от нуля до, примерно, 400 МГц. Встает задача выработки управляющего сигнала для цифровой модуляции амплитуды, частоты и фазы ВЧ сигнала синтезатора в соответствии с мгновенными значениями этих параметров исходного НЧ напряжения. Не могли бы Вы высказать здесь свои соображения по данному вопросу? Надеюсь, что это будет интересно не только мне.
Уважаемые участники, такая интересная тема и заглохла. Проводил ли кто нибудь из присутствующих, какие либо опыты ?
Приветствую всех! Два года прошло, что нового в этом направлении? Есть какие-нибудь схемные решения?
Я тоже заинтересовался подобной проблемой. В поисках всевозможной информации набрел на эту тему.
В принципе меня интересует не создание приставки к СДР приемнику, а сама проблема переноса всей обработки сигнала в цифру. Проблема избавления от дорогостоящих кварцевых фильтров, настроек-балансировок и т.д. Как приставка к СДР - это частный случай.
Предложенная автором темы структура с фазовым однополосным смесителем мне не нравится. Не в деталях не нравится, а принципиально. Хотя следует признать, что все делают именно так.
Вот как обосновывает В.Т.Поляков применение фазового однополосного смесителя:
----------
В супергетеродинных приемниках для достижения однополосного приема используются фильтры в тракте промежуточной частоты. В приемниках прямого преобразования нет такой возможности, а селективность входных фильтров явно недостаточна для дазделения боковых полос приема. Введение фазового однополосного смесителя позволяет устранить этот самый существенный недостаток приемников прямого преобразования.
----------
Т.е. если идет речь о создании примника с основной обработкой в цифре, то проще с точки зрения схемотехники, сделать преобразование вверх для фильтрации зеркалки, потом вниз на частоту 12 кгц и этот сигнал оцифровать.
Оцифрованный сигнал фильтруется КИХ фильтром (фильтр основной селекции), полученный спектр сдвигается на 12 кгц вниз и получим НЧ сигнал.
Таким образом, правда, не получится детектировать АМ-ФМ сигналы, но мне этого и не надо.
По поводу применения AVR - это бесперспективно, даже более шустрые С8051, которые работают до 100 МИПС, тоже малоприменимы.
Тут нужен именно ДСП процессор, с его командами, заточенными под работу в программах обработки данных, с ДМА, двухпортовыми ОЗУ и т.д. Если уж выбирать что-то для начала попроще, это dsPIC33. Я на них заглядывался, как-то они попроще, по понятнее, а потом побоялся, что на середине проекта обнаружу недостаток производительности и остановился на TMS320VC5505. Процессор очень крутой, для моих нужд даже чрезмерно сложный, но ничего, разбираюсь потихоньку.
"По поводу применения AVR - это бесперспективно, даже более шустрые С8051, которые работают до 100 МИПС, тоже малоприменимы"
Мне кажется уважаемый RA3RBE вы не множечко не в теме :)
С8051F120 могут и еще как ;)
сами посудите 16 битный аппаратный МАС не путать с АВРовским мильтиплаером.делает гильберта за 25-27% цикла стейтмашины. едиственное что серьезных LMS фильтров конечно не реализовать. но в купе с неплохим кодеком TLV320AIC23 получается неплохой цифровой "наитивный преобразователь" . незнаю как назвать ...э
едиственное что нужно расходывать мощности разумно. важен принцип разумной достаточности (порядки фильтров). самое интересное что после преобразования Гильберта и пары небольших фильтров у контроллера еще есть ресурсы чтобы рулить BG320240B с тачскрином. я работу еще не закончил считаю что силабс не для этого разрабатывался да и черт с ним на то и мы радиолюбители :) а вообще ребята если хотите сделать "реальное" радио осваивайте Blackfin. благодаря uclinux он стал доступен для самодельщиков. gnICE эмулятор и Blackfin toolchain среда и вперед мигать всем чем попало :) багатая переферия мощи да дури. есть с флешем на борту (как МК). даже любимый АКТ FFT на паралельном АЦП на PPI шине "черного плавника"можно реализовать. есть еще TMS320VC5505 и компания. у тех вообще FFT на аппаратном уровне.чеж удивляся что в серьезных аппаратах стоят подобной мощности DSP ониж там ваще всем рулят через раширитель интерфейса т.н. expander на плис ибо ног не хватает на все кнопочки лампочки. считаю блекфин лучший кандидат на "цифровое сердце" трансивера.
2 RA3RBE я тоже было схватился за 5505 купил УСБ стик этот. даже плату макетную сделал где SDRAM кодек и прочая фича стояла. тока отказался по причине не развитой перефирии. просто я хочу на DSP повесить и фунции контроллера рулить кнопками SPI, I2C устройствами. вобщем ушел на ADSP-BF532-400 не лучший ну самый доставаемый. еще не понравилдась система документации техасов куча ошибок причем дебильных опечаток. документов милион пришлось выкурить. с аналогами както проще ну может потомучто с техасом разобрался. думаю не лучший всетаки 5505 проц для трансивера вцелом. CSL ваще что-то ориетирована на программеров который не смотрят на железо. скорость разработки увеличивается сильно тоолько ресурсы жрутся сильно, монструозные структуры. например посмотрите реализицию работы с GPIO.вообще семество 55 сыровато просто сыровато. уж если работать то на 54хх пока. даже утилиту hex55.exe только недавно исправили чтоб та правильно в EEPROM раскладывала. до этого несварение и бутлоадера было. как это еще назвать.
Сейчас доступны одноплатные компьютеры, типа http://www.zao-zeo.ru/catalog
или nanoATX на базе intel. Т.к. имею практику написания ПО SDR все думаю, чтоб приспособить под эту цель, что б не дорого. Под SDR на базе FFT достаточно Intel совместимый процессор 1Ггц или ARM от 200МГц (при оптимизации на asm, что весьма трудоемко). Если взять intel 1.6-2ГГц, то разработка ПО значительно убыстрится. Думаю в эту сторону нужно копать.