В схеме УНЧ нарисовано две TDA7233 одна в дипе другая в смд включенных параллельно ,что так и должно быть или ставить одну из них?
В схеме УНЧ нарисовано две TDA7233 одна в дипе другая в смд включенных параллельно ,что так и должно быть или ставить одну из них?
UA7KJ, на выбор, то что будет в наличии
Для работы ASRC мне нужно знать точное соотношение частоты ОГ компьютера и ОГ своего DSP. Чтобы его вычислить я использую два таймера - один измеряет частоту ОГ в DSP (она определяет частоту дискретизации трансивера), второй таймер измеряет частоту SOF пакетов (она определяет частоту дискретизации со стороны компьютера). На второй таймер заведен сигнал SOF от USB блока, в итоге его можно использовать для измерения частоты SOF пакетов.
Далее ASRC выполняет ресэмплинг для каждого отсчета, чтобы согласовать немного отличающиеся частоты дискретизации двух клоковых доменов. Таким образом получается устранить разрывы фазы и артефакты (в моей реализации ASRC мусор лежит ниже где-то -150дБ), а также избежать проблем с буфером. В теме "Как шумит радио" было исписано несколько страниц по этому поводу. Можете заглянуть туда там были разные примеры и небольшое обсуждение.
Спасибо от R3DI
А я считаю, что надо принимать решение о ресэмплинге на основании размера очереди между выходом uac и входом модулятора. Если она растёт - надо корректировать в одну сторону, если в пределах допустимого threshold то оставляем как есть, если грозит опустошиться - в другую сторону. В любом случае данные должны идти непрерывно, если рассчитанное по таймерам отклонение использовать, результат зависит от интервала, на котором измеряем.
Можно и так, пробовал - работает, но точность определения соотношения частот будет хуже. Описанный алгоритм если вдуматься будет все время болтаться у одного из крайних значений этого самого threshold'a, в итоге получим обычный пропорциональны регулятор с большим джиттером. Положение можно частично исправить добавив ПИД-регулятор, что однако привносит с собой новые грабельки . Такой вариант стоит использовать там, где по другому никак, например, когда данные приходят по сети с большим и джиттером. Под мои требования точность должна быть очень высокой. Кроме того мой вариант дает минимальный размер буфера и минимальные задержки соответственно.
Не понял что и от чего зависит? Фактически сделан обычный частотомер (точнее два, но то издержки моей конструкции - можно было бы и одним обойтись), данные естественно идут непрерывно. Все это не теория, а реально работающая схема, притом работающая реально хорошо
Пробежался по теме, только в районе 33 стр. но без конкретного решения, хотя может чего упустил...
ASRC со стороны хоста ? Это на стороне компьютера, мне только сообщить ошибку?
Это тот метод где есть еще один EP для сообщения соотношение частоты хосту?
Каждую милисекунду частотомер выдает соотношение частот. на какой размер блока данных влияет это значение? Такой вопрос я задал еще в той теме "про шумящее радио". от этого зависит возможное перерегулирование в том числе (и джиттер в модулирующем сигнале) - просто при столь минимальном объяснении некоторые вещи могут показаться опасными в реализации.
на основании частотомеров делается ресэмплинг. КОлисество данных после ресэмплинга и потребляемого модулятором сходится? не накапливается ли ошибка? Ведь именно это в конце-концов является целью ресэмплинга.
лог работы показывает что коррекция происходит только в одну сторону, с периоличностью соответствующей ожиданиям (в пределах погрещности е-4 и меньше)
Последний раз редактировалось Genadi Zawidowski; 06.08.2017 в 22:34.
Нет. Это я все делаю сам (внутри МК), USB аудио интерфейс синхронный.
Нет. См. выше.
Размер блока всегда постоянный - интерфейс синхронный. Отношение влияет на то, как будут сформированы отсчеты, а точнее на их положение на оси времени. Каждый отсчет на выходе блока ASRC интерполируется по времени на основе данных о соотношении частот. В итоге у меня с одной стороны ASRC может заходить больше данный, а с другой выходить меньше, или наоборот. Буфер нужен только для компенсации случайных отклонений частот.
Да, все ок. Специально проверял - очередь стоит как вкопанная по много часов. Ну и в случае проблемы буфера будут "сброшены". Естественно это вызовет появление артефакта, но при нормальном хосте (который удовлетворяет спецификации) такое невозможно.
e-4 как-то многовато. Я так понимаю, чем больше очередь, тем меньше джиттер? Для определения соотношения частот под мои требования ошибка в 2^-22 была "на грани" даже пришлось извратиться немного т.к. float при использовании его "в лоб" не хватало.
Спасибо от R3DI
Ну не помню точно... на практике раз в несколько минут добавлялся сэмпл - это явно меньше чем е-4 (Число из спеки, romanetz напоминал). Очередь с нормальным состоянием шесть блоков по 57 стерео сэмплов. со стороны хоста заполяется по 48 стерео сэмплов за милисекунду (или по сколько хост решит), критерием является только размер очереди.
Если что, смотреть тут.
Последний раз редактировалось Genadi Zawidowski; 06.08.2017 в 23:37.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)