Страница 7 из 10 Первая ... 56789 ... Последняя
Показано с 121 по 140 из 195

Тема: DF2 - Вторая версия DIY ЦФ

  1. #1 Показать/скрыть первое сообщение.
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию DF2 - Вторая версия DIY ЦФ

    Итак, обещанный проект нового ЦФ.
    Опыт прошлой ветки показал, что вопросы построения ЦФ сводятся к конкретному проекту. Поэтому решил создать отдельную.

    Исходная ветка с обсуждением различных реализаций ЦФ здесь.
    Ветка про ЦФ DF1 здесь.

    С момента публикации прошлой версии ЦФ прокачал скилл по верилогу, поэтому новый ЦФ выполнен проще, и с более сложной арифметикой. В частности добавлены опции шейпера и дополнительного апсемплера, что позволяет выводить данные в том числе на малоразрядные ЦАП, типа AK4499EX.
    Получив определенный опыт понял о чем писал Сергей Агеев (на счет реализации умножителей и многовходовых сумматоров на FPGA). Если правильно выбирать длину конвейера, то нет смысла изобретать оригинальную схему умножителя. Компилятор синтезирует лучше.
    То же самое касается описания сумматоров: использование многовходовых сумматоров оптимизируется лучше, чем ручная разбивка на двух-входовые.

    В отличие от предыдущего проекта, новый делался как заготовка для самостоятельного применения и доработки под свои задачи. Поэтому все режимы досконально не тестировались, и проект выкладывается "как есть" в версии альфа.
    В исходниках есть только пара примеров: для FPGA cyclone и lcmxo2.
    Описание содержит краткое перечисление основных параметров, а так же инструкцию по самостоятельной сборке проекта и генерации собственных коэф-тов в MatLab.
    Картинок много, текста мало. Все как мы любим.
    Утилита и ее исходник для автоматизированной конверсии коэф-тов в формат верилога прилагается.
    Так же прилагаются матлабовские модели всех каскадов фильтра, архив со сгенерированными коэф-тами фильтров, примененных в проекте и симулинк-модель. Для запуска симулинк-модели нужен матлаб версии r2018b.

    - 25.09.2023 - Добавил MatLab модель шейпера в симулинке. На этот раз версии r2013b. В 2018-ом матлабе че-то намудрили со спектроанализатором, и в нем амплитуда сигнала получается зависима от порядка шейпера, или от кратности оверсемплинга.

    - 27.09.2023 - Правка шейпера 3-го порядка

    Шейпер 3-го порядка в проекте выполнен по схеме:
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_132616551.png 
Просмотров:	72 
Размер:	17.0 Кб 
ID:	441606
    NTF шейпера на 1кГц сигнале:
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_132509846.png 
Просмотров:	63 
Размер:	29.1 Кб 
ID:	441605
    Данный шейпер оптимизирован для работы на невысокой частоте семплирования (х16..х32) и с разрядностью данных не менее 7..8 бит.
    На работы на более высоких ЧД при меньшей разрядности данных можно упростить коэф-т шейпера, улучшив SNR и сэкономив на логике. Для этого исключается слагаемое Gain3 (по схеме симулинка):
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_132931529.png 
Просмотров:	44 
Размер:	17.0 Кб 
ID:	441607
    В проекте это слагаемое находится в файле DATA_READ.v:
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_133349302.png 
Просмотров:	62 
Размер:	20.6 Кб 
ID:	441609
    Данное слагаемое отклоняет значение коэф-та от 3-х, создавая дополнительный полюс на NTF. После упрощения коэф-та NTF шейпера принимает вид классического модулятора 3-го порядка.
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_133125636.png 
Просмотров:	58 
Размер:	26.8 Кб 
ID:	441608
    Можно также это слагаемое не удалять, а менять его величину (увеличивать сдвиг), двигая тем самым полюс NTF.
    [свернуть]

    - 28.09.2023 - Отрефакторил модули DATA_READ и SAI_OUTPUT. Поправил описание.
    - 05.10.2023 - Поправил DF_CONTROL. Поправил описание.
    Вложения Вложения
    Последний раз редактировалось dortonyan; 05.10.2023 в 22:16.

  2. #121
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Согласен. Увеличение разрядности тоже не смягчает звук.
    А я шейпер вообще не слышу.
    На ходу переключаю из режима 24 бит без шейпера в 8 бит с шейпером 3-го порядка - никакой разницы, вообще.
    На спектре кстати тоже почти никакой разницы, кроме появления внеполосного шума шейпера.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Из фильтров пока предпочитаю 11 и 10. Это slow и short?
    Да они.
    Кстати, в новых ЦАПах АК и ESS примерно такие же фильтры. Может потому и сделали такие, что больше нравятся? Заодно сэкономили на ресурсах.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Normal 00 я бы заменил на фильтр sharp из DF1.
    Можете в матлабе подобрать под графики АЧХ из описания DF1.
    Только в новом фильтре я еще подбирал "Density Factor" для получения нуля (или близко к нулю) АЧХ квантованных коэффициентов на частоте Найквиста. Но это так, на всякий случай, не обязательно.

  3. #122
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от dortonyan Посмотреть сообщение
    На ходу переключаю из режима 24 бит без шейпера в 8 бит с шейпером 3-го порядка
    Я ещё так не пробовал. На тда-шках удастся сделать? И ещё сигналы управления порядком шейпера не выведены наружу. У меня исходный DF2_FIR_CORE только используется. Там эти сигналы не выведены. Я думал для переключения требуется разная компиляция.

  4. #123
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Я ещё так не пробовал. На тда-шках удастся сделать?
    Да на чем угодно.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    И ещё сигналы управления порядком шейпера не выведены наружу. У меня исходный DF2_FIR_CORE только используется. Там эти сигналы не выведены. Я думал для переключения требуется разная компиляция.
    Порядок задается только условной компиляцией, но выключать можно в риалтайме, отдельный вход есть.
    Можно на постоянную включить дизер, и шейпер задать 3-го порядка. А затем входом iSHPEN - включать/выключать шейпинг "на ходу".

    ---------- Сообщение добавлено 21:06 ---------- Предыдущее сообщение было 20:36 ----------

    P.S.
    Только недавно узнал.
    Оказывается шейпер с маларазрядными ЦАП применялся еще в начале 80-ых. В частности для TDA1540 в плеере Philips CD104, поэтому никаких 14 бит там разумеется не было. Разрядность была ограничена только шиной данных цифрового процессора:
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-11-22_210344481.png 
Просмотров:	50 
Размер:	76.4 Кб 
ID:	444509

    P.P.S.
    Кстати, в проекте DF2 можно для TDA1541 задать разрядность 14 бит. Получится что-то очень похожее на 1540.
    Последний раз редактировалось dortonyan; 22.11.2023 в 21:52.

  5. #124
    Завсегдатай Аватар для Михаил45
    Регистрация
    09.03.2007
    Адрес
    Санкт-Петербург
    Возраст
    62
    Сообщений
    2,060

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Алексей, ставлю 2 для шейпера и 10 бит на выходе и можно подавать на тда1541?

  6. #125
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Надо тоже попробовать поиграться с тдашками в малобитных конфигурациях. Грех не попробовать.

  7. #126
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Алексей, ставлю 2 для шейпера и 10 бит на выходе и можно подавать на тда1541?
    Можно и меньше, я 8 задал у себя. Только уточните, где именно 10 бит задаете?
    Нужно параметром "LENMIN" и на входе "iODW" в модуле DF2_FIR_CORE.
    В модуле SAI_OUTPUT разрядность всегда должна соответствовать ЦАПу.
    Ну и для 10 бит 2-го порядка шейпера наверное будет маловато. Хотя возможно что на слух шум еще не будет слышен.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Надо тоже попробовать поиграться с тдашками в малобитных конфигурациях.
    Можно задать 6 бит, т.е. чтобы работали только DEM ячейки.

    Ну и не забываем, что при снижении разрядности растет внеполосный шум.
    ЦАП превращается..., превращается ЦАП..., в элегантную дельта-сигму. ))

  8. #127
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Если не путаю, то Sony в своих шим-цапах использовала дифференциальный дизер, чтобы в аналоге он компенсировался при суммировании ветвей.

  9. #128
    Завсегдатай Аватар для Михаил45
    Регистрация
    09.03.2007
    Адрес
    Санкт-Петербург
    Возраст
    62
    Сообщений
    2,060

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Я по i2s подключаю, мне главное разрядность ядра, так?
    В режиме 10 бит и 3 шейпинг - шипит и трещит. 2 - играет нормально.
    Последний раз редактировалось Михаил45; 22.11.2023 в 22:25.

  10. #129
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Я по i2s подключаю, мне главное разрядность ядра, так?
    Все верно.

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    В режиме 10 бит и 3 шейпинг - шипит и трещит. 2 - играет нормально.
    А параметр LENMIN в ядре сколько задан?

    ---------- Сообщение добавлено 22:32 ---------- Предыдущее сообщение было 22:28 ----------

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Если не путаю, то Sony в своих шим-цапах использовала дифференциальный дизер, чтобы в аналоге он компенсировался при суммировании ветвей.
    Видел. Там дизер вне цепи ООС шейпера, поэтому его приходится вычитать.
    Но зачем так сделано я не понял. Если дизер поместить внутрь петли ООС, то шум давится всем петлевым усилением шейпера, как обычно и делают.

  11. #130
    Завсегдатай Аватар для Михаил45
    Регистрация
    09.03.2007
    Адрес
    Санкт-Петербург
    Возраст
    62
    Сообщений
    2,060

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    LENMIN = 16. Интересно, если отключить шейпер при 16 бит - начинается легкое попердывание. Ставлю 1 - все норм.
    Наверное, надо сделать ограничение -1 Дб.

    Пытаюсь отпределить оптимальный режим на слух для двух тдашек. Проинвертировал оLRC, буду суммировать выход.
    Последний раз редактировалось Михаил45; 22.11.2023 в 23:09.

  12. #131
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    LENMIN = 16.
    Надо 10. Этот параметр нужно задавать как минимальную используюмую разрядность. В соответствии с ним в проекте выполняется дополнительная аттенюация.
    Иначе получается клипп шейпера и треск.

  13. #132
    Завсегдатай Аватар для Михаил45
    Регистрация
    09.03.2007
    Адрес
    Санкт-Петербург
    Возраст
    62
    Сообщений
    2,060

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Понял, спасибо. Но при 16 бит i2s выход трещит.

    Моя ошибка, не тем файлом пошивал. Все нормально при выключенном шейпинге тоже.

    ---------- Сообщение добавлено 23.11.2023 в 12:14 ---------- Предыдущее сообщение было 22.11.2023 в 22:49 ----------

    Алексей, скажи пожалуйста, если стоит в дф2 ресемплинг х4 , то в случае проигрывания файла 88\24(96\24) он автоматом становится 2? Или байпасируется все, что выше 44.1?
    Последний раз редактировалось Михаил45; 23.11.2023 в 11:53.

  14. #133
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Алексей, скажи пожалуйста, если стоит в дф2 ресемплинг х4 , то в случае проигрывания файла 88\24(96\24) он автоматом становится 2?
    Все верно.
    Байпасс работает только если входная ЧД равна выходной.
    Ну и в примере для циклона добавлена возможность принудительного байпасса (вручную), когда на выход выводится входной поток, независимо от заданной ЧД.

    ---------- Сообщение добавлено 13:05 ---------- Предыдущее сообщение было 12:32 ----------

    Что-то я так впечатлился статьей про старые сидюки, что не пойму, почему так?
    Все же с самого начала делали правильно: малоразрядный ЦАП с DEM + шейпер (практически то же самое, что в современных ЦАП, только сейчас разрядность меньше и DWA вместо DEM).
    А потом пошел какой-то даунгрейд: шейперы из ЦФ и ДЕМ из ЦАПов убрали. Пока не наступила эра ДС ЦАП, где снова вернули хорошо забытое старое под лозунгом 24-х бит. )

  15. #134
    Завсегдатай Аватар для Михаил45
    Регистрация
    09.03.2007
    Адрес
    Санкт-Петербург
    Возраст
    62
    Сообщений
    2,060

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Алексей, твой ДФ просто находка для старых цап. Можно любой цеплять и адаптировать. Спасибо еще раз.
    А по поводу древних решений - не могу понять почему старые цап играют лучше новых, все время возвращаюсь от АК4490 к рсм1702, теперь тда1541.

  16. #135
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Согласен. Точно находка. Можно теперь тда1540 употреблять с пользой для себя.
    В общем я провёл опыты с малым числом разрядов 6, 8, 10, 12 и 14. С нойзшейпингом 2 и 3. ЧуднО конечно это всё. В принципе 12 и 14 можно слушать без подозрений в обмане. Остальное звучит суховато и грязновато, но приемлемо. В первую очередь сибилянты страдают от малоразрядности. Примерно так. Фотки с осциллографа чуть позже выложу.
    Все опыты проводились на конвейере с 4мя тда1541, каждая на 16фс.

    ---------- Сообщение добавлено 18:57 ---------- Предыдущее сообщение было 18:49 ----------

    Иногда компилятор делал какие-то чудеса, и на тда1541 шло 32фс с 8ю битами в семпле, т.е. битклок те же 11,289МГц. И они работали, в смысле звук проходил практически нормально. Я в шоке.

    ---------- Сообщение добавлено 19:01 ---------- Предыдущее сообщение было 18:57 ----------

    Сейчас слушаю 14 бит с нойзшейпингом 2 и выключать не хочется.

  17. #136
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    В общем я провёл опыты с малым числом разрядов 6, 8, 10, 12 и 14. С нойзшейпингом 2 и 3. ЧуднО конечно это всё. В принципе 12 и 14 можно слушать без подозрений в обмане. Остальное звучит суховато и грязновато, но приемлемо. В первую очередь сибилянты страдают от малоразрядности.
    Полагаю, что у нас разные результаты из-за разной реализации ЦАП. При увеличении внеполосного шума растут глитч-индуцированные искажения. Возможно у меня разницы не слышно именно благодаря деглитчеру. Как-нить попробую его отключить и еще раз сравнить.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Фотки с осциллографа чуть позже выложу.
    Больше интересно посмотреть спектры: 1к, 10к, 19+20к в режиме 16 бит и для сравнения 6..8 бит.

  18. #137
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Жаль не получится попереключаться налету 16-1 и 14-2.

    ---------- Сообщение добавлено 19:11 ---------- Предыдущее сообщение было 19:06 ----------

    Возможно и деглитчер бы улучшил звук, но на 8 выходов цап не знаю как реализовать это всё.

  19. #138
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Жаль не получится попереключаться налету 16-1 и 14-2.
    Можно сравнивать 16 с дизером и выключенным шейпером против 14 с шейпером 2-го порядка.

    А вообще можно перенести параметр с порядком шейпера на входные сигналы и менять на ходу, просто расход логики увеличится.
    Ну и быстродействие упадет, но на циклоне возможно прокатит.

  20. #139
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    В общем надо искать 8 шт. тда1540. Они же моно.
    Сижу балдею от 14 бит.
    Ужос.

  21. #140
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Возможно и деглитчер бы улучшил звук, но на 8 выходов цап не знаю как реализовать это всё.
    УВХ можно приделывать после суммирования конвейеров. На х32 оверсемплинге работать будет, проверено. Или в вашем проекте оверсемплинг еще выше?

    ---------- Сообщение добавлено 19:19 ---------- Предыдущее сообщение было 19:15 ----------

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Сижу балдею от 14 бит.
    Ужос.
    А что такого? В современных ДС ЦАПах 6..7 бит максимум.
    Разрядность определяет только уровень внеполосного шума, и ничего более.

    ---------- Сообщение добавлено 19:21 ---------- Предыдущее сообщение было 19:19 ----------

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    В общем надо искать 8 шт. тда1540. Они же моно.
    И с параллельным интерфейсом.

Страница 7 из 10 Первая ... 56789 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

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