Измерения | DDS-генератор на AVR - нужна помощь |
|
---|---|---|
skb4: Леонид Иванович: С интересом прочитал о разработке любительского генератора на DDS. Леонид Иванович спасибо за схему, а листинг и прошивкой вы поделитесь? |
|
|
skb4: а зачем Вам прошивка? Неужели повторять будете? Эта конструкция весьма далека от "народной", так как содержит дорогие и редкие комплектующие (сам еще не смог всего достать). Да и печатная плата для домашнего изготовления сложновата. Я хотел сделать более "народную" конструкцию, даже закончил схему и дизайн. Вот схема: http://caxapa.ru/upload/files/3d8ebea0bc380c0778b92fc2d9a1fc374bbf784d Если есть желание, могу принять участие в завершении этой разработки, многое уже готово. Фактически нет только меню управления. Надо сказать, что у меня они получаются плохо, я всегда не доволен эргономикой. Но с помощью коллективного разума можно было бы попробовать устранить этот недостаток. Но чтобы браться за эту работу, нужно быть уверенным в ее полезности. На другом форуме меня сильно критиковали с этой разработкой, что, мол, такой генератор никому не нужен, раз в компьютере есть звуковая карта. |
|
|
Леонид Иванович: Нужно различать побочные компоненты в выходном спектре DDS, которые появляются в результате квантования амплитуды и образы несущей. Первые нельзя устранить с помощью выходного фильтра, так как они попадают в рабочую полосу частот. Для реального 8-разрядного ЦАП это немногим лучше -40 dBc. А вот вторые устраняются фильтром, и степень их подавления зависит только от качества фильтра. При отношении Fs/Fout = 4 требования к фильтру не такие уж жесткие, фильтр Чебышева 4-го порядка, который я применяю, вполне справляется. 1) Несколько слов в защиту нашего генератора с 8-разрядным цапом. Спуры, или цифровой шум, являются следствием квантования исходного сигнала. Мощность этого шума LSB^2/12 распределена на всей полосе частот от нуля до частоты Найквиста, т.е. fS/2. Ну и поскольку наша полоса 1250 кГц, а ваша только 103 кГц, мощность наших спуров размазывается в полосе в 12 раз большей, чем ваша. Далее, для корректности сравнения будем генерить сигнал в полосе 0-50 и использовать ваш фильтр 4-го порядка. Все спуры в полосе 50-1250 срежутся фильтром. Посчитал уровень спектрального шума при данных условиях - всего на 12.8 дБ выше, чем в вашем генераторе. Не так уж и плохо. 2) Для реального цапа уровень спуров у моего экземпляра генератора не выше -50..-55 дБс, причём снято прямо на выходе цапа, без всякого фильтра. 3) Фильтр должен давить все частоты от Найквиста и выше, в вашем случае выше 50, так что отношение частот 103\50=2.06, а не 4. |
|
|
1)Спуры, или цифровой шум, являются следствием квантования исходного сигнала. Мощность этого шума LSB^2/12 распределена на всей полосе частот от нуля до частоты Найквиста, т.е. fS/2. Ну и поскольку наша полоса 1250 кГц, а ваша только 103 кГц, мощность наших спуров размазывается в полосе в 12 раз большей, чем ваша. Никто не спорит, что передискретизация уменьшает шум квантования. Но в реальности не всё так гладко. Реальные ЦАПы имеют еще и нелинейность, которая порядка LSB. А нелинейность ЦАП приводит к появлению спуров на частотах гармоник сигнала. Причем все гармоники, попадающие в нечетные зоны Найквиста, поподут в 1-ю зону, т.е. почти наверняка в полосу пропускания выходного ФНЧ. Их обычно мы и слышим в сигнале DDS с низкой разрядностью ЦАП. 2) Для реального цапа уровень спуров у моего экземпляра генератора не выше -50..-55 дБс, причём снято прямо на выходе цапа, без всякого фильтра. Уровень отдельных спуров - может быть. Но в целом отношение сигнал-шум для 8-битного ЦАП даже в теории не более 49.92 дБ. 3) Фильтр должен давить все частоты от Найквиста и выше, в вашем случае выше 50, так что отношение частот 103\50=2.06, а не 4. Всё верно, отношение частоты Найквиста к максимальной выходной частоте у меня примерно равно 2. Но я говорил об отношении частоты дискретизации к максимальной выходной частоте, которое примерно равно 4. |
|
|
Леонид Иванович: Уровень отдельных спуров - может быть. Но в целом отношение сигнал-шум для 8-битного ЦАП даже в теории не более 49.92 дБ. |
|
|
Отношение сигнал/шум примерно равно 10 * log(46/2^4*Np + 0.44/2^4*Na)^0.5 (этот вопрос рассмотрен, например, в книге "Гармонические сигналы в цифровых системах контроля и испытаний"). В Вашем случае разрядность квантования фазы Np = 10 (256 элементов таблицы на 1/4 периода), разрядность квантования амплитуды Na = 8. Подставляем всё в формулу, получаем -49.2 dB. Если не учитывать шум квантования фазы, то получим около -50 dB. |
|
|
Ничего не имею против вашего прибора, просто свой вариант защищаю. Кстати, при смене частоты у вас генерация частоты прерывается или нет? А ГКЧ у вас можно реализовать? Л.И.: Очевидно, что если сужать полосу, то отношение с/ш будет лучше (Книга, наверное, хорошая, а вот формула непонятная. В нашем генераторе отношение сигнал/шум=10log(127*127*12)=53дБ. Если фильтровать от Найквиста и выше, добавится 3 дБ, всего 56 дБ. При цифровом синтезе спуры были, есть и будут, куда от них деваться) |
|
|
GM: Ничего не имею против вашего прибора, просто свой вариант защищаю. Так на Ваш вариант никто и не нападает GM: Кстати, при смене частоты у вас генерация частоты прерывается или нет? Генерация не прерывается, но присутствует скачок фазы. У меня центральный процессор по UART передает сопроцессору, на котором реализован двухканальный DDS, новый код частоты или фазы. Там он сохраняется в буфере, а когда будут приняты все байты, перегружается DDS (в случае управления фазой - оба канала). При этом я останавливаю DDS, на выходе ЦАП удерживается последний сформированный уровень. Затем перегружаю регистры частоты (или фазы, если регулируется фаза), затем снова запускаю DDS. Длительность загрузки составляет порядка 1.5 мкс.
Иначе никак, ведь внутри одного цикла DDS нужно перегрузить две 32-разрядных переменных, на это просто нет времени. На ПЛИС и в интегральных DDS делают два регистра частоты и фазы, при перестройке загружается неиспользуемый регистр, затем регистры переключаются. Можно нечто подобное сделать и в МК, например, написать две отдельных реализации DDS, использующих раздельные регистры частоты, а переключаться между ними по флагу. Но опять не ясно, что делать с регулировкой фазы. Да и в моем случае ресурсов не хватает для таких вещей. GM: А ГКЧ у вас можно реализовать? Быстрое качание частоты я не предусматривал. А снятие АЧХ может быть сделано под управлением компьютера, все необходимые команды в протоколе управления для этого есть. GM: В нашем генераторе отношение сигнал/шум=10log(127*127*12)=53дБ Если только под свой генератор Вы разработали свои собственные законы физики Отношение мощности синусоидального сигнала к мощности шумов квантования равно 1.76+6.02·N dB (http://en.wikipedia.org/wiki/Quantization_error). Т.е. в Вашем случае это 49.92 dB. Это максимальная теоретическая оценка, не учитывающая ни нелинейность ЦАП, ни шумы квантования фазы в DDS. |
|
|
Да уж: пришел Л.И. и внес смуту в мозги участников проекта. Л.И., не в упрек, а в пожелание: Вы бы про свои генераторы отдельную темку открыли, а? |
|
|
ATLab: Да уж: пришел Л.И. и внес смуту Ладно, ладно, ухожу. Если кого-то интересуют какие-то технические подробности, пишите на мой e-mail: wubblick@yahoo.com |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |