Т.е. речь идёт о структуре с низкой ПЧ (не нулевой) ?
Т.е. речь идёт о структуре с низкой ПЧ (не нулевой) ?
Олег 9 - fft это хоть и базовая, по факту не всегда нужная штука. Порядок фильтров зависит еще и от частоты дискретизации - при более высоком сэмплрейте порядок потребуется выше.
На мой взгляд неплохо иметь в dsp узлах автоподавлениеи имбаланса квадратур, ноис блэнкер и ноис редакшн. Из допов автоночь фильтр и эквалайзер (хотя бы 3х полосный).
Влезет ли все это в адау? По моим прикидкам исходя из объемов памяти - не влезет.
Поэтому адау это штука для достаточно простых применений. Как серьезную дсп платформу ее нельзя рассматривать.
Можно на нулевой, можно на не нулевой - как создатель приёмника или трансивера сочтёт целесообразным.
Количество наворотов не ограничено. Есть и обратная сторона, чем больше наворотов в аппарате, тем он дороже, больше и тяжелее. Есть необходимый минимум. Его можно реализовать в ADAU. Что касается адаптивных шумоподавителей, я например, ими никогда не пользуюсь - поганят конкретно звук. Лучше пусть шумок идёт. Автоподавление имбаланса квадратур тоже вещь неодназначная, жрёт много ресурсов. Можно после сборки приёмника запустить один раз автокалибровку подавления имбаланса, запомнить результаты в EEPROM и всё, -70дБ обеспечено при любых условиях. Такое ADAU позволяет. Опять же если сравнивать возможности аппаратов, то надо это делать в схожих массогабаритных и ценовых сегментах. Если вы сможете все эти навороты реализовать в размерах "Белки-DSP" при том же энергопотреблении, то реализуйте. Ели нет, то разговор ниочём . Есть хороший приёмник, Пион-DSP, созданный Вами, но это другой ценогабаритный сегмент. ADAU же хороша для создания малогабаритных экономичных аппаратиков и в таком применении я пока не знаю ей альтернативы.
Последний раз редактировалось Oleg 9; 10.05.2019 в 20:38.
ADAU интересная штука. Но для Sigma Studio есть программный модуль для Sharc процессоров. Вот это еще интереснее. Там вам и FFT есть. Интересно кто-нибудь попробовал уже такой подход c GUI.Только надо cross core studio а это совсем не бесплатно.
Последний раз редактировалось RA1TEX; 10.05.2019 в 22:12.
Потому что эти элементы появлялись в Студии очень постепенно, в основном по мере запросов на форуме поддержки. Например квадратурный VCO. Раньше его просто не было. Или фурье, к сожалению только для старших ADAU с большой памятью только недавно появилось. Я собственно поэтому и проспал эти микросхемы, потому что слишком рано на них посмотрел и забросил.
Я помню еще удивлялся, когда на форуме АД показали реализацию фильтра Герцеля для ADAU - "А что, так можно было?" Вообще то сейчас появилась идея приспособить 1761 к векторному анализатору в качестве детектора фазы-амплитуды, но вот незнаю пока, как две микросхемы ADAU 1761 засинхронизировать между собой с точностью до фазы т.к. мне 4 независимыхканала приема надо а использовать многоканальные по входу ADAU c внешними АЦП не хочу.
Я бы тоже с радостью писал на асме, но его жестко спрятали- политика фирмы. К "веревочному" программированию у меня некоторая идиосинкразия. Хотя тут оно в принципе применимо, т.к все веревочки выполняются за один цикл аудиоданных.
По поводу машинных кодов, кто подскажет, как все таки в Студии генерить листинги типа
Нашел такое в одном из проектов на форуме поддержки, есть желание попытаться восстановить опкоды команд. Похоже это поддерживалось в старых студиях версии 3.2 при вызове компилятора с неизвестными ключами.Код: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
Зы. Кто-нибудь ADAU по мультплексированной во времени I2S (8-channel TDM) к STM32 типа дискавери STM32F746 подключал? В связи с отсутствием фурье хотелось бы свалить задачу обработки спектра на Дискавери.
Чтобы по одному из каналов TDM шел широкополосный поток для панорамы, а по второму- демодулированный звук. Обычынй I2S для такой задачи слабо подходит, а с TDM дела раньше не имел.
А на Sharc можно сделать носимый батарейный приемник с аккумуляторами на неделю? Я вот думаю, как реализовать минимальную графическую панораму на внешнем процессоре чтобы батарейки жрала по минимуму. Придется наверно тактовую менять на период расчета спектра по потом засыпать для экономии батареи.
Последний раз редактировалось khach; 11.05.2019 в 14:19.
При подключении к мощным ST адау теряет полностью свою актуальность и превращается в простой аудиокодек. Это типа как у нас есть тут неиспользуемый функционал, который прекрасно решается другими средствами (процом) , но давайте подумаем как же этот функционал использовать.
Ассемблер = машинный коды с обрамленной мнемоникой. Есть достаточно большой опыт применения ассемблера и я не понимаю что может быть прекрсного в том, что кроме задачи получния конечного результата программист должен еще познать все прелести низкоуровнего кодирования тратя на это время.
Судя по опкодам листинга из ADAU1761_Demo.zip https://ez.analog.com/dsp/sigmadsp/w...to-my-sigmadsp
там на одну команду ДСП пожет приходиться по 5-6 элементарных операций. Это наверно единственный аттач где сохранились полные листинги кроме проекта студии. Может это послужит отправной точкой для реверс-разработки этого ДСП, т.к графических модулей в студии невсегда хватает.
Тут была чуть другая идея. ADAU имеет механизм readout- вычитка цифровой величины из ДСП по интерфейсу управления. Реализуем алгоритм, который вычисляет величину имбаланса, вычитываем во внешний процессор, типа как PIC в Белке. PIC управляет встроенным или внешним ЦАП который подстраивает постоянкой фазы гетеродина квадратурного смесителя. Например через варикапную линию задержки. Диапазон подстройки достаточен в пару градусов. Подстраиваем по шагам до достижения минимума имбаланса. Т.к на реальных сигналах с эфира это делать сложно, то можно использовать второй канал SI5153 как инжектор тестового сигнала, а после автоподстройки отключить его. Автокалибровка вызывается автоматически при смене частот гетеродина или по кнопке.
Stm32 тут вынужденная мера - хочу сделать к Белке панораму, а это какой- никакой Фурье, на ПИКе разве что на DSPIC делать, а я с ними не дружу. Сначала я обрадовался когда увидел в сигмастудии FFT
https://wiki.analog.com/resources/to...encydomain/fft но потом жестко обламался, когда понял что это только для ADAU145x
Зы. есть еще одна шальная идея по поводу трансиверной приставки к смартфону на базе ADAU 1761 которая используется в качестве и квадратурного приемника и модулятора передатчика плюс STM32 в качестве USB моста к смартфону. Но тут затык с софтом для смартфона. Хотя может кто из SDR-щиков подскажет подходящую аппликацию для смарта?
Последний раз редактировалось khach; 11.05.2019 в 16:09.
Там почти так и сделано . За исключением того, что PIC подстраивает сдвиг фаз относительно 90 градусов не внешнего а внутреннего цифрового гетеродина в ADAU, меняя частоту настройки цифрового фазовращателя (all pass filter). Результат одинаков, реализация проще, не надо дополнительного ЦАП и внешних цепей для подстройки фазы 1 гетеродина.
Последний раз редактировалось Oleg 9; 11.05.2019 в 16:36.
Хм, интересно, вот бы полный скетч Белки посмотреть.. А какая дискретность по фазе при этом получается? А то я тут для чуть другой задачи начал городить early-lathe фазовый детектор с цифровыми выходами из ADAU c хардверным ФНЧ и обратной связью на VCXO тактовой ADAU. Такая себе сложнонавороченная АПЧ. Может действительно уйти на софтверный VCO с внешним управлением... Надо подумать.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)