Страница 19 из 22 Первая ... 91718192021 ... Последняя
Показано с 361 по 380 из 436

Тема: Проектируем цифровой фильтр для ЦАП

  1. #1 Показать/скрыть первое сообщение.
    Забанен (навсегда)
    Автор темы
    Аватар для Эзотехник
    Регистрация
    10.10.2004
    Адрес
    Ru
    Сообщений
    1,188

    По умолчанию Проектируем цифровой фильтр для ЦАП

    Подскажите структуру идеального фильтра и его желаемые характеристики, например для частоты 4х44 кГц. Если в наличии значительная вычислительная мощность и объём памяти.
    Нужна именно теория, поскольку "синицы в руках" уже имеются и подробно рассмотрены в других ветках (микросхемы NPC и BB).
    Кстати фирма Wadia в своих изделиях применяла мотороловские процессоры на шестислойных платах, а не готовые фильтры.

  2. #361
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    4,030

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Всем доброго времени суток.
    Озадачился я дизерингом для проекта на плисине. Соорудил генератор с треугольным распределением +/-1LSB. И вот не задача, при попытке добавить дизеринг к 16-ти разрядному сигналу шум добавляется, а гармоники квантования никуда не деваются. Если же взять 24-х разрядный сигнал, то при округлении до 16 бит с дизерингом получается все красиво, шумы квантования исчезают полностью.
    Отсюда возникает вопрос: а возможно ли избавить от шумов квантования исходный 16-ти разрядный сигнал? Вот в фубаре есть такая опция вывода данных в 16 бит с дизером и без, как это там получается?
    Пробовал 16-тиразрядный сигнал нарастить нулями до 24-х разрядного и округлить с дизером - шум квантования таким образом не устраняется.

    Цитата Сообщение от Костя Мусатов Посмотреть сообщение
    Однако, на реальных музыкальных сигналах присутствует шум размером минимум на несколько бит, а часто даже сильно больше. Какой смысл тогда в дополнительном дизеринге?
    В том и дело, что дизеринг это не маскировочный шум, а перераспределение спектра шума квантования. Дизерингом можно ужать 24 бита ДД в 16 бит (условно). Шум на записи в этом никак не поможет, как и любой другой шум.

  3. #362
    Завсегдатай Аватар для BesPav
    Регистрация
    01.06.2011
    Адрес
    Москва
    Возраст
    44
    Сообщений
    2,765

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Пробовал 16-тиразрядный сигнал нарастить нулями до 24-х разрядного и округлить с дизером - шум квантования таким образом не устраняется.
    Не, нулями не получится, нужен интерполятор

  4. #363
    Забанен (навсегда)
    Автор темы
    Аватар для Эзотехник
    Регистрация
    10.10.2004
    Адрес
    Ru
    Сообщений
    1,188

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    И вот не задача, при попытке добавить дизеринг к 16-ти разрядному сигналу шум добавляется, а гармоники квантования никуда не деваются. Если же взять 24-х разрядный сигнал, то при округлении до 16 бит с дизерингом получается все красиво, шумы квантования исчезают полностью.
    Для качественной обработки 16-битного сигнала его сначала переводят в формат с плавающей точкой, без потерь и вычислений (если ресурсов мало). После апсэмплинга, фильтраций и регулировки уровня реальная разрядность (число меняющихся бит в сигнале) увеличится сама.
    ЦАП-ы с только 16-ти битным входом - древние и невысокого качества, им любая обработка не поможет.

    Компьютерный DX-плагин bitpolicy показывал меняющиеся с вероятностью 50% биты сигнала (значимые). Если какой-то бит от 0 до 23 меняется с другой вероятностью - там или нет звука или разрядность обрезана плохими алгоритмами в цепочке наложенных эффектов.

    Ещё такой эффект есть, где входное кол-во бит для интерполяции в 24 можно регулировать:

    "Stereo Tool 7.83 - Help - Dequantizer
    Нажмите на изображение для увеличения. 

Название:	stereo_tool.png 
Просмотров:	185 
Размер:	35.0 Кб 
ID:	287859
    Dequantizer section
    Bit depth increaser.

    The Dequantizer can takes files of a certain bit depth (CD*s are 16 bit, but you might also have recordings that use less), and calculate a few extra bits. It can clean up quantization noise in the process, if the recording was created without dithering.

    This process does generate MP3-like artifacts, however the level of those is much lower than that of the noise that is removed."

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

    http://www.gamedev.ru/code/forum/?id=34461 - про последнюю
    Последний раз редактировалось Эзотехник; 27.02.2017 в 23:39.

  5. #364
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    4,030

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от BesPav Посмотреть сообщение
    Не, нулями не получится, нужен интерполятор
    Цитата Сообщение от Эзотехник Посмотреть сообщение
    После апсэмплинга, фильтраций и регулировки уровня реальная разрядность (число меняющихся бит в сигнале) увеличится сама.
    Понятно, т.е. данные все таки преобразуются. Так я и думал. Ай-яй-яй, а как же битперфект. ))

    Цитата Сообщение от Эзотехник Посмотреть сообщение
    ЦАП-ы с только 16-ти битным входом - древние и невысокого качества, им любая обработка не поможет.
    Это понятно, использовать такие цапы потребности нету. Я 16 бит использовал для наглядности, т.к. на 24-х битах даже без дизера шумов квантования не видно.

  6. #365
    Завсегдатай Аватар для tomtit
    Регистрация
    23.06.2009
    Адрес
    пгт.Торонтовка
    Возраст
    67
    Сообщений
    1,045

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Дизериннг помогает убрать гармоники квантования за счет понижения отношения сигнал/шум.Так что "встроенный" шум звукового 16-бит сигнала можно использовать, но округлять надо скажем до 15 бит, тогда это сработает.В вашем случае я бы просто заменил младший бит 16-битного сигната на случайный и посмотрел спектр.Должно сработать.

  7. #366
    Частый гость Аватар для i.overko
    Регистрация
    17.08.2016
    Адрес
    Львов
    Сообщений
    118

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Отсюда возникает вопрос: а возможно ли избавить от шумов квантования исходный 16-ти разрядный сигнал?
    здравствуйте, дизеринг надо добавлять до процеса отбрасывания младших разрядов тогда он будет работать, и с треугольным распределением потребуется 2 мзр насколько помню.

  8. #367
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    4,030

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от tomtit Посмотреть сообщение
    Дизериннг помогает убрать гармоники квантования за счет понижения отношения сигнал/шум.Так что "встроенный" шум звукового 16-бит сигнала можно использовать, но округлять надо скажем до 15 бит, тогда это сработает.В вашем случае я бы просто заменил младший бит 16-битного сигната на случайный и посмотрел спектр.Должно сработать.
    Я примерно с этого и начинал, т.е. пробовал делать сумму по модулю два равномерного шума и младшего разряда, не прокатило. Или я не правильно понял?

    Цитата Сообщение от i.overko Посмотреть сообщение
    здравствуйте, дизеринг надо добавлять до процеса отбрасывания младших разрядов тогда он будет работать, и с треугольным распределением потребуется 2 мзр насколько помню.
    Это понятно. Но для этого нужно иметь эти самые младшие разряды. А если мы их не имеем?
    По идее можно обойтись без ресемплинга: домножить семплы на константу типа 0xFF, увеличив таким образом разрядность сигнала, а затем уже усреднять с дизером.

  9. #368
    Частый гость Аватар для i.overko
    Регистрация
    17.08.2016
    Адрес
    Львов
    Сообщений
    118

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    А если мы их не имеем?
    Тогда округлять нечего, разрядность уже такая как надо.
    Или Вы хотите взять сигнал который был неправильно округлен до 16бит и путем неких манипуляций убрать искажения от неправильного округления? Так это невозможно, ваши искажения уже есть вашим "полезным" сигналом.

  10. #369
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    4,030

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    i.overko, спасибо, все понятно.

  11. #370
    Мимо проходил Аватар для Костя Мусатов
    Регистрация
    05.03.2004
    Адрес
    Москва
    Возраст
    59
    Сообщений
    5,529

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    В том и дело, что дизеринг это не маскировочный шум, а перераспределение спектра шума квантования. Дизерингом можно ужать 24 бита ДД в 16 бит (условно). Шум на записи в этом никак не поможет, как и любой другой шум.
    Не спорю. Однако, как проявляется этот шум квантования при подаче сигналов, содержащих шум?
    Я не спроста задаю этот вопрос. В зависимости от архитектуры ресемплера, шум записи может работать в качестве дизеринга, а может и не работать.
    Заметь - перераспределение спектра шума квантования. Этого шума нет без сигнала, он привязан к сигналу. Его поведение на чистых сигналах понятно и предсказуемо. А на зашумленных?

  12. #371
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    4,030

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

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

  13. #372
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    4,030

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Как-нить попробую сделать ресемплинг 16бит сигнала с дизером, а затем округлить обратно в 16 без дизера. Посмотрю что получится.
    Попробовал. Действительно, при наличии шума в исходной записи последующий ресемплинг и переквантование не мешают, и дополнительного дизеринга не требуется. Константин абсолютно прав.

  14. #373
    Завсегдатай Аватар для Meta|_
    Регистрация
    08.03.2005
    Адрес
    Северная Голландия
    Возраст
    41
    Сообщений
    2,201

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Тут зависит от конкретной записи. Если запись очень хорошая, и шума меньше -100 дБ (понимаю, это редкость), то при преобразовании в 16 бит добавить шума таки надо. Плюс от спектра шума тоже может зависеть эффективность такого "автоматического" дизеринга.
    ∇·D = ρ
    ∇·B = 0
    ∇xE = – ∂B/∂t
    ∇xH = j + ∂D/∂t
    © J. C. Maxwell, O. Heaviside

  15. #374
    Завсегдатай Аватар для aal
    Регистрация
    04.11.2004
    Адрес
    пос. Краснообск, Новосибирская область
    Возраст
    53
    Сообщений
    2,854

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Попробовал. Действительно, при наличии шума в исходной записи последующий ресемплинг и переквантование не мешают, и дополнительного дизеринга не требуется. Константин абсолютно прав.
    Т.е. записи того же сд-аудио, которые с завода должны идти с дизерингом, после ЦФ повышающего уже нет смысла дизерить - он и так есть в нужном размере!!! А вот хайрез заводской может быть и надо под реальное разрешение своего ЦАП. Т.е. если запись отдизерили до 18 бит (типа ниже один хрен ничего нет) то для ад1853 уже и не надо дизерить, ну а коли запись реально сделали 22битную, то её для 1853 стоит отдизерить до 18..20 бит. А вот с самописным харезом наверняка бардак. Как-то так.
    Цитата Сообщение от Meta|_ Посмотреть сообщение
    Если запись очень хорошая, и шума меньше -100 дБ (понимаю, это редкость), то при преобразовании в 16 бит добавить шума таки надо.
    ИМХО - да.

  16. #375
    Завсегдатай Аватар для Meta|_
    Регистрация
    08.03.2005
    Адрес
    Северная Голландия
    Возраст
    41
    Сообщений
    2,201

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от aal Посмотреть сообщение
    Т.е. записи того же сд-аудио, которые с завода должны идти с дизерингом, после ЦФ повышающего уже нет смысла дизерить - он и так есть в нужном размере!!!
    Как так? Там же 16 бит, соответственно после ЦФ мы имеем перемноженные и затем сложенные 16-битные числа, то есть не менее 32-х бит (в зависимости от длины фильтра). Если мы их выводим в ЦАП как 24 бита, то надо дизерить. Шум на уровне -140дБ точно проблемне составит Ну а если выводим в 16-битный ЦАП - то надо аккуратно дизериить.

    Выше вроде говорили, доставке 16-битного файла до 24-битного ЦАПа безо всяких ЦФ.
    ∇·D = ρ
    ∇·B = 0
    ∇xE = – ∂B/∂t
    ∇xH = j + ∂D/∂t
    © J. C. Maxwell, O. Heaviside

  17. #376
    Завсегдатай Аватар для Yurgen
    Регистрация
    23.05.2005
    Адрес
    Из Замкадья
    Возраст
    54
    Сообщений
    1,656

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    А если после ЦФ в 32 бита на дс модулятор, то можно не дизерить?

  18. #377
    Завсегдатай Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    39
    Сообщений
    4,030

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Meta|_ Посмотреть сообщение
    Как так? Там же 16 бит, соответственно после ЦФ мы имеем перемноженные и затем сложенные 16-битные числа, то есть не менее 32-х бит (в зависимости от длины фильтра). Если мы их выводим в ЦАП как 24 бита, то надо дизерить. Шум на уровне -140дБ точно проблемне составит Ну а если выводим в 16-битный ЦАП - то надо аккуратно дизериить.
    Я же выше писал, что ресемплинг почти никак не влияет на шумы квантования (специально проверил, тупо отбрасывая 16 младших бит из 32 бит в ресемплированных отсчетах). Если в 16 бит записи есть дизеринг, то для 16 бит ЦАПа дополнительный дизеринг не требуется, а для ЦАП бОльшей разрядности и подавно.

    Цитата Сообщение от Yurgen Посмотреть сообщение
    А если после ЦФ в 32 бита на дс модулятор, то можно не дизерить?
    Для устранения шумов квантования - да, можно не дизерить. Но дизеринг и ноизшейпинг могут еще применяться для устранения диф. нелинейностей ЦАП, это уже другой вопрос. Если например ЦАП имеет диф. нелинейность в 4LSB, то дизеринг в 1LSB ему явно не поможет.

  19. #378
    Завсегдатай Аватар для aal
    Регистрация
    04.11.2004
    Адрес
    пос. Краснообск, Новосибирская область
    Возраст
    53
    Сообщений
    2,854

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Meta|_ Посмотреть сообщение
    Как так? Там же 16 бит, соответственно после ЦФ мы имеем перемноженные и затем сложенные 16-битные числа, то есть не менее 32-х бит (в зависимости от длины фильтра). Если мы их выводим в ЦАП как 24 бита, то надо дизерить.
    Да хоть 124 - дизеринг наложен на 16-й бит - он уже есть и его уровень много больше любого привнесённого шума после ЦФ.
    Цитата Сообщение от dortonyan Посмотреть сообщение
    Если в 16 бит записи есть дизеринг, то для 16 бит ЦАПа дополнительный дизеринг не требуется, а для ЦАП бОльшей разрядности и подавно.
    Что я уже и написал по предыдущему посту.

    Сколько лет теорию изучал, а эту фишку только сейчас осознал Т.е. дизеринг обязан накладывать звук.режисёр в соответствии с качеством релиза.... Но в случае хайреза, возможно иногда стоит накладывать свой с учётом реального разрешения ЦАПа...

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Но дизеринг и ноизшейпинг могут еще применяться для устранения диф. нелинейностей ЦАП, это уже другой вопрос. Если например ЦАП имеет диф. нелинейность в 4LSB, то дизеринг в 1LSB ему явно не поможет.
    А это расшифровать на пальцах можно - что-то я не догнал.


    Итересно: а можно ли вычислить на какой бит наложен дизеринг?

    В свете выше выясненного получается, что дизеринг может быть наложен ещё на уровне АЦП каждой дорожки сведения в соответствии с разрешением АЦП. Но так же получается, что во время сведения, мы имеем N дорожек со своим уровнем дизеринга. Нужен ли дизеринг после сведения с этой точки зрения? Ведь либо мы ослабляем дорожку так, что уровень её шумов квантования проваливается до разрядности сведённого файла, либо будет уже отдизеринен как надо!

    Странные мысли на ночь глядя
    Последний раз редактировалось aal; 06.03.2017 в 18:24.

  20. #379
    Завсегдатай Аватар для Meta|_
    Регистрация
    08.03.2005
    Адрес
    Северная Голландия
    Возраст
    41
    Сообщений
    2,201

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от aal Посмотреть сообщение
    Да хоть 124 - дизеринг наложен на 16-й бит - он уже есть и его уровень много больше любого привнесённого шума после ЦФ.
    Эээ... может я чего-то не понимаю...
    Если мы оверсемплим в два раза (речь ведь о ЦФ, делающих именно это?), то у нас заранее есть половина семплов, остальные мы как раз обнуляем, и потом вычисляем в ЦФ. И попадать они будут совсем не в ту же 16-битную разрядную сетку (где у нас 8 младших бит - нули). Те семплы, которые мы не вычисляли - наверное можно не дизерить, но я под конец рабочего дня не соображу что будет на выходе если дизерить каждый второй семпл %)
    ∇·D = ρ
    ∇·B = 0
    ∇xE = – ∂B/∂t
    ∇xH = j + ∂D/∂t
    © J. C. Maxwell, O. Heaviside

  21. #380
    Завсегдатай Аватар для aal
    Регистрация
    04.11.2004
    Адрес
    пос. Краснообск, Новосибирская область
    Возраст
    53
    Сообщений
    2,854

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Meta|_ Посмотреть сообщение
    Эээ... может я чего-то не понимаю...
    Спектр дизеринга должен быть уже 1/2 Fs Т.е. это сигнал, который уже есть в записи с уровнем -90..100дБ. Если делаете апсэмплинг, то вы сохраняете исходный спектр сигнала, а значит и дизеринг!!!! Здесь не дизеринг просится, а ноизшейпинг, что бы эти шумы за звуковой диапазон выбросить, но как отделить шумы от полезного сигнала? Стало быть это работа самого ЦАПа - всё связанно с его разрешением. Т.е. исходя из его разрешения и делать ноизшейпинг после ЦФ, чтобы шумы квантования самого ЦАПа замаскировать и выкинуть за звуковой диапазон!!.

    Но в общем случае: дизеринг сохраняется, работа аналогового фильтра упрощается.

    Об этом не говорится, но в общем, дизеринг в АЦП более важен, нежели в ЦАП. В ЦАПе с ЦФ ноизшейпинг. В мастиренге дизеринг под формат носителя/реального разрешения записи.

    P.S. О многом мы не задумываясь принимаем на веру

    "О сколько нам открытий чудных
    Готовят просвещенья дух
    И Опыт, [сын] ошибок трудных,
    И Гений, [парадоксов] друг,
    [И Случай, бог изобретатель]

    октябрь — ноябрь 1829
    А.С. Пушкин "
    Последний раз редактировалось aal; 06.03.2017 в 20:05.

Страница 19 из 22 Первая ... 91718192021 ... Последняя

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

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

Ваши права

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