Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 2 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 11 по 20 из 52

Тема: ADAU DSP демодулятор

  1. #11
    Аватар для Tadas
    Регистрация
    12.06.2002
    Адрес
    KO24AV
    Сообщений
    3,356
    Позывной
    LY1CE
    Т.е. речь идёт о структуре с низкой ПЧ (не нулевой) ?
    Хороша теория, но что ты с ней будешь делать ?
    73 de LY1CE


  2. #12

    Регистрация
    21.06.2006
    Адрес
    Екатеринбург
    Сообщений
    3,191
    Позывной
    RX9CIM
    Олег 9 - fft это хоть и базовая, по факту не всегда нужная штука. Порядок фильтров зависит еще и от частоты дискретизации - при более высоком сэмплрейте порядок потребуется выше.
    На мой взгляд неплохо иметь в dsp узлах автоподавлениеи имбаланса квадратур, ноис блэнкер и ноис редакшн. Из допов автоночь фильтр и эквалайзер (хотя бы 3х полосный).
    Влезет ли все это в адау? По моим прикидкам исходя из объемов памяти - не влезет.
    Поэтому адау это штука для достаточно простых применений. Как серьезную дсп платформу ее нельзя рассматривать.

  3. #13
    Цитата Сообщение от Tadas Посмотреть сообщение
    Т.е. речь идёт о структуре с низкой ПЧ (не нулевой) ?
    Можно на нулевой, можно на не нулевой - как создатель приёмника или трансивера сочтёт целесообразным.
    Цитата Сообщение от rx9cim Посмотреть сообщение
    На мой взгляд неплохо иметь в dsp узлах автоподавлениеи имбаланса квадратур, ноис блэнкер и ноис редакшн. Из допов автоночь фильтр и эквалайзер (хотя бы 3х полосный).
    Количество наворотов не ограничено. Есть и обратная сторона, чем больше наворотов в аппарате, тем он дороже, больше и тяжелее. Есть необходимый минимум. Его можно реализовать в ADAU. Что касается адаптивных шумоподавителей, я например, ими никогда не пользуюсь - поганят конкретно звук. Лучше пусть шумок идёт. Автоподавление имбаланса квадратур тоже вещь неодназначная, жрёт много ресурсов. Можно после сборки приёмника запустить один раз автокалибровку подавления имбаланса, запомнить результаты в EEPROM и всё, -70дБ обеспечено при любых условиях. Такое ADAU позволяет. Опять же если сравнивать возможности аппаратов, то надо это делать в схожих массогабаритных и ценовых сегментах. Если вы сможете все эти навороты реализовать в размерах "Белки-DSP" при том же энергопотреблении, то реализуйте. Ели нет, то разговор ниочём . Есть хороший приёмник, Пион-DSP, созданный Вами, но это другой ценогабаритный сегмент. ADAU же хороша для создания малогабаритных экономичных аппаратиков и в таком применении я пока не знаю ей альтернативы.
    Последний раз редактировалось Oleg 9; 10.05.2019 в 20:38.

  4. #14
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    14,741
    Цитата Сообщение от Oleg 9 Посмотреть сообщение
    До сих пор этот метод самый экономичный по энергопотреблению
    Да он и останется самым экономичным, все что требует обработки на более высокой частоте, и потреблять будет намного больше
    Вадим

  5. #15
    ADAU интересная штука. Но для Sigma Studio есть программный модуль для Sharc процессоров. Вот это еще интереснее. Там вам и FFT есть. Интересно кто-нибудь попробовал уже такой подход c GUI.Только надо cross core studio а это совсем не бесплатно.
    Последний раз редактировалось RA1TEX; 10.05.2019 в 22:12.

  6. #16
    Цитата Сообщение от Oleg 9 Посмотреть сообщение
    Александр, не совсем понял, почему Вы решили, что "ADAU не была предназначена разработчиком для обработки сигнала с преобразованием частот" ? В комплекте инструментария есть генераторы, есть перемножители и есть фильтры.
    Потому что эти элементы появлялись в Студии очень постепенно, в основном по мере запросов на форуме поддержки. Например квадратурный VCO. Раньше его просто не было. Или фурье, к сожалению только для старших ADAU с большой памятью только недавно появилось. Я собственно поэтому и проспал эти микросхемы, потому что слишком рано на них посмотрел и забросил.
    Я помню еще удивлялся, когда на форуме АД показали реализацию фильтра Герцеля для ADAU - "А что, так можно было?" Вообще то сейчас появилась идея приспособить 1761 к векторному анализатору в качестве детектора фазы-амплитуды, но вот незнаю пока, как две микросхемы ADAU 1761 засинхронизировать между собой с точностью до фазы т.к. мне 4 независимыхканала приема надо а использовать многоканальные по входу ADAU c внешними АЦП не хочу.
    Цитата Сообщение от UR5ZQV Посмотреть сообщение
    Какой Вы умный, а я "тупой" после "несложной ЦОС" производил, произвожу и буду производить (иногда низшей степени управления различными ОС, спускаясь до Ассемблера, а иногда еще "ниже", до машинных кодов).
    Я бы тоже с радостью писал на асме, но его жестко спрятали- политика фирмы. К "веревочному" программированию у меня некоторая идиосинкразия. Хотя тут оно в принципе применимо, т.к все веревочки выполняются за один цикл аудиоданных.
    По поводу машинных кодов, кто подскажет, как все таки в Студии генерить листинги типа
    Код:
    0    1          nop                                                                                         "Beginning"         2
    1    2          set_active_dag_regs 0 0                                                                     "Beginning"         3
    2    3          dagx_offset = coeff[sin_0]                                                                  "Beginning"         4
    3    4          dagx_base = coeff[sin_0]                                                                    "Beginning"         5
    4    5          dagy_base = coeff[sin_0]                                                                    "Beginning"         6
    5    6          dagy_offset = coeff[sin_0]                                                                  "Beginning"         7
    6    7          accum0 = 0 + coeff[2_POW_P0]*data[zero]                                                     "Beginning"         8
    7    8          dagx_length = coeff[NonModRamAlloc]                                                         "Beginning"         9
    8    9          loopcount = coeff[NonModRamAlloc]                                                           "Beginning"         10
    9    10         nop                                                                                         "Beginning"         11
    10   11         nop                                                                                         "Beginning"         12
    11   12         do loopcount                                                                                "Beginning"         13
    12   13         data[IX+=1] = accum0                                                                        "Beginning"         14
    12   14  #enddo                                                                                             "Beginning"         15
    13   15         nop                                                                                         "Beginning"         16
    14   16         nop                                                                                         "Beginning"         17
    15   17  #label Start                                                                                       "Beginning"         18
    15   18         nop                                                                                         "Beginning"         19
    16   19         nop                                                                                         "Beginning"         20
    17   20         nop                                                                                         "Beginning"         21
    18   21         nop                                                                                         "Beginning"         22
    19   29         accum0 = 0 + coeff[numLoad_SafeLoad]*data[one], ucr                                         "SafeLoadCode"      8
    20   30         xreg = coeff[addressLoad_SafeLoad]                                                          "SafeLoadCode"      9
    21   31         yreg = data[xreg]                                                                           "SafeLoadCode"      10
    22   32         loopcount = coeff[numLoad_SafeLoad]                                                         "SafeLoadCode"      11
    Нашел такое в одном из проектов на форуме поддержки, есть желание попытаться восстановить опкоды команд. Похоже это поддерживалось в старых студиях версии 3.2 при вызове компилятора с неизвестными ключами.
    Зы. Кто-нибудь ADAU по мультплексированной во времени I2S (8-channel TDM) к STM32 типа дискавери STM32F746 подключал? В связи с отсутствием фурье хотелось бы свалить задачу обработки спектра на Дискавери.
    Чтобы по одному из каналов TDM шел широкополосный поток для панорамы, а по второму- демодулированный звук. Обычынй I2S для такой задачи слабо подходит, а с TDM дела раньше не имел.
    Цитата Сообщение от RA1TEX Посмотреть сообщение
    Но для Sigma Studio есть программный модуль для Sharc процессоров. Вот это еще интереснее. Там вам и FFT есть.
    А на Sharc можно сделать носимый батарейный приемник с аккумуляторами на неделю? Я вот думаю, как реализовать минимальную графическую панораму на внешнем процессоре чтобы батарейки жрала по минимуму. Придется наверно тактовую менять на период расчета спектра по потом засыпать для экономии батареи.
    Последний раз редактировалось khach; 11.05.2019 в 14:19.
    Александр

  7. #17

    Регистрация
    21.06.2006
    Адрес
    Екатеринбург
    Сообщений
    3,191
    Позывной
    RX9CIM
    При подключении к мощным ST адау теряет полностью свою актуальность и превращается в простой аудиокодек. Это типа как у нас есть тут неиспользуемый функционал, который прекрасно решается другими средствами (процом) , но давайте подумаем как же этот функционал использовать.
    Ассемблер = машинный коды с обрамленной мнемоникой. Есть достаточно большой опыт применения ассемблера и я не понимаю что может быть прекрсного в том, что кроме задачи получния конечного результата программист должен еще познать все прелести низкоуровнего кодирования тратя на это время.

  8. #18
    Цитата Сообщение от rx9cim Посмотреть сообщение
    Ассемблер = машинный коды с обрамленной мнемоникой. Есть достаточно большой опыт применения ассемблера и я не понимаю что может быть прекрсного в том, что кроме задачи получния конечного результата программист должен еще познать все прелести низкоуровнего кодирования тратя на это время.
    Судя по опкодам листинга из ADAU1761_Demo.zip https://ez.analog.com/dsp/sigmadsp/w...to-my-sigmadsp
    там на одну команду ДСП пожет приходиться по 5-6 элементарных операций. Это наверно единственный аттач где сохранились полные листинги кроме проекта студии. Может это послужит отправной точкой для реверс-разработки этого ДСП, т.к графических модулей в студии невсегда хватает.
    Цитата Сообщение от Oleg 9 Посмотреть сообщение
    Автоподавление имбаланса квадратур тоже вещь неодназначная, жрёт много ресурсов. Можно после сборки приёмника запустить один раз автокалибровку подавления имбаланса, запомнить результаты в EEPROM и всё, -70дБ обеспечено при любых условиях. Такое ADAU позволяет.
    Тут была чуть другая идея. ADAU имеет механизм readout- вычитка цифровой величины из ДСП по интерфейсу управления. Реализуем алгоритм, который вычисляет величину имбаланса, вычитываем во внешний процессор, типа как PIC в Белке. PIC управляет встроенным или внешним ЦАП который подстраивает постоянкой фазы гетеродина квадратурного смесителя. Например через варикапную линию задержки. Диапазон подстройки достаточен в пару градусов. Подстраиваем по шагам до достижения минимума имбаланса. Т.к на реальных сигналах с эфира это делать сложно, то можно использовать второй канал SI5153 как инжектор тестового сигнала, а после автоподстройки отключить его. Автокалибровка вызывается автоматически при смене частот гетеродина или по кнопке.
    Цитата Сообщение от rx9cim Посмотреть сообщение
    При подключении к мощным ST адау теряет полностью свою актуальность и превращается в простой аудиокодек. Это типа как у нас есть тут неиспользуемый функционал, который прекрасно решается другими средствами (процом) , но давайте подумаем как же этот функционал использовать.
    Stm32 тут вынужденная мера - хочу сделать к Белке панораму, а это какой- никакой Фурье, на ПИКе разве что на DSPIC делать, а я с ними не дружу. Сначала я обрадовался когда увидел в сигмастудии FFT
    https://wiki.analog.com/resources/to...encydomain/fft но потом жестко обламался, когда понял что это только для ADAU145x
    Зы. есть еще одна шальная идея по поводу трансиверной приставки к смартфону на базе ADAU 1761 которая используется в качестве и квадратурного приемника и модулятора передатчика плюс STM32 в качестве USB моста к смартфону. Но тут затык с софтом для смартфона. Хотя может кто из SDR-щиков подскажет подходящую аппликацию для смарта?
    Последний раз редактировалось khach; 11.05.2019 в 16:09.
    Александр

  9. #19
    Цитата Сообщение от khach Посмотреть сообщение
    Тут была чуть другая идея. ADAU имеет механизм readout- вычитка цифровой величины из ДСП по интерфейсу управления. Реализуем алгоритм, который вычисляет величину имбаланса, вычитываем во внешний процессор, типа как PIC в Белке. PIC управляет встроенным или внешним ЦАП который подстраивает постоянкой фазы гетеродина квадратурного смесителя. Например через варикапную линию задержки. Диапазон подстройки достаточен в пару градусов. Подстраиваем по шагам до достижения минимума имбаланса. Т.к на реальных сигналах с эфира это делать сложно, то можно использовать второй канал SI5153 как инжектор тестового сигнала, а после автоподстройки отключить его. Автокалибровка вызывается автоматически при смене частот гетеродина или по кнопке.
    Там почти так и сделано . За исключением того, что PIC подстраивает сдвиг фаз относительно 90 градусов не внешнего а внутреннего цифрового гетеродина в ADAU, меняя частоту настройки цифрового фазовращателя (all pass filter). Результат одинаков, реализация проще, не надо дополнительного ЦАП и внешних цепей для подстройки фазы 1 гетеродина.
    Последний раз редактировалось Oleg 9; 11.05.2019 в 16:36.


  10. #20
    Цитата Сообщение от Oleg 9 Посмотреть сообщение
    Там почти так и сделано . За исключением того, что PIC подстраивает сдвиг фаз относительно 90 градусов не внешнего а внутреннего цифрового гетеродина в ADAU,
    Хм, интересно, вот бы полный скетч Белки посмотреть.. А какая дискретность по фазе при этом получается? А то я тут для чуть другой задачи начал городить early-lathe фазовый детектор с цифровыми выходами из ADAU c хардверным ФНЧ и обратной связью на VCXO тактовой ADAU. Такая себе сложнонавороченная АПЧ. Может действительно уйти на софтверный VCO с внешним управлением... Надо подумать.
    Александр

Страница 2 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Покритикуйте ЧМ-демодулятор
    от digiandr в разделе Непроверенные идеи
    Ответов: 12
    Последнее сообщение: 04.06.2023, 20:50
  2. Внешняя АРУ тюнер<->демодулятор
    от tiger() в разделе Для начинающих
    Ответов: 1
    Последнее сообщение: 26.08.2013, 14:56
  3. Обратимый модулятор/демодулятор ЧМ
    от radiofakel в разделе Техника прямого преобразования
    Ответов: 13
    Последнее сообщение: 06.08.2011, 22:45
  4. Демодулятор
    от ra3qwy в разделе Технический кабинет
    Ответов: 1
    Последнее сообщение: 14.02.2010, 19:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •