Найти тему
V_A_N

Pro… ресэмплинг [на примере ЦАПа TDA1540]

Изменение частоты дискретизации – процедура не тривиальная. Особенно когда частоты дискретизации не кратны целому числу. И особенно если передискретизация выполняется сторону увеличения частоты сэмплирования. Где брать недостающие сэмплы, то бишь, цифры? При уменьшении можно просто выкидывать, а при увеличении?

Напомню, на сидюках частотах дискретизации (сэмплирования) 44.1 кГц, на DVD обычная звуковая дорожка - 48 кГц, в хай-резах 88.2, 96, 192, 384 кГц. Помимо буйства носителей изменение частоты дискретизации применяется внутри некоторых аудио девайсов.

Так, на пути к ЦАПу TDA1540 выстроились 4 микросхемы: интерполятор разделяет сигналы правого и левого каналов (заодно вырабатывая сигнал тактирования), демодулятор декодирует входной сигнал (PCM) в последовательность цифр, корректор минимизирует ошибки чтения CD, наконец, цифровой фильтр выполняет четырёхкратною передискретизацию (с 44100 Гц в 176400 Гц), заодно отфильтровывая высокие частоты (low pass) и осуществляя нойз-шейпинг.

Можно ли обойтись без последнего звена? Очумелые ручки утверждают, что да!

выпаиваем цифровой фильтр SAA7030 и заменяем его перемычками. SAA7000 занимается интерполяцией. Для корректной работы 14 битного ЦАПа необходимо перевести микросхему SAA7000 в режим 16 bit to 14 bit. Так сказать делаем NOS мод (No OverSampling mod). Для этого отключаем от земли 16 ножку SAA7000 и подтягиваем через резистор на + питания (18 ножка). По звуку и правда такой мод лучше по сравнению с заводской схемой!
[https://pikabu.ru/story/legkiy_tvik_progryivatelya_philips_cd304_5278803]

Из спецификации SAA7030:

-2

Вообще, по ключевой микросхеме SAA7030 много путаницы. В частности, 28 бит не разрядность сигнала, а всего лишь разрядность сумматора! То есть как внутри, так и на выходе только 16 бит (или 14 бит, если в интерполяторе включен такой режим).

[https://stereo.ru/p/kvuyy-philips-cd104-test-samogo-populyarnogo-iz-vintazhnyh-cd-proigryvateley]
[https://stereo.ru/p/kvuyy-philips-cd104-test-samogo-populyarnogo-iz-vintazhnyh-cd-proigryvateley]

FIR (он же КИХ) фильтр состоит из накопительного сумматора и массива коэффициентов, на которые перемножается входной сигнал (скользящая выборка такового). Чем больше разрядность фильтра, тем, как правило (зависит от типа фильтра), круче срез по частоте и тем больше искажения фазы. Коэффициенты фильтра определяются на этапе его проектирования и далее не меняются.

Параметр ripple задаёт неравномерность АЧХ в рабочей полосе частот, существенно влияя на размерность фильтра. Например, для частоты среза 20 кГц и подавлении 90 дБ получаем порядок narrowband FIR фильтра, равный 94.

-4

Следует иметь в виду, что в SAA7030 сначала осуществляется параллельная разбивка последовательности цифр (16 сдвиговых регистров по 24 бита каждый). 96 коэффициентов фильтра хранятся в 12 битах (ROM) , что логично, т.к. излишняя точность оных при целочисленном перемножении ничего не даёт. Кстати, 96 коэффициентиков для КИХ фильтра означает его порядок, что весьма круто во всех смыслах (прежде всего среза АЧХ). Умножитель фильтра состоит из массива 12 чисел по 16 бит. Целочисленный сумматор фильтра не исключает переполнения (даже при 28 битах), но для музыки в крайне маловероятных случаях. На самом выходе параллельные регистры сворачиваются обратно в последовательность цифр.

Получается, вкупе с 4-х передискретизацией фильтр в микросхеме SAA7030 заточен именно под ЦАП TDA1540 ?

Дело в том, что на выходе плеера с TDA1540 помимо операционного усилителя стоит чисто аналоговый фильтр 3-го порядка (Бесселя с практически линейной фазой), который худо бедно, но подчищает огрехи как 14 бит, так и шумок.

-5

А хвалёная передискретизация, мол, лишь бантик. Тут необходимо уточнить, что слух у людей сильно разнится, а многие, особенно в возрасте выше 10 кГц ничего не слышат («только море» - см. фильм «Страна глухих»). Оным «слухать» без SAA7030 даже кайф – звук становится ещё контрастней, хотя и шумнее.

Читать некоторые опусы весьма забавно:

Без фильтра:
Отличная динамика и микродинамика, детальность, бешеная энергичность. Тембры натуральнее, плотнее, чем с фильтрами, в целом звучание более натуральное, но звучание эмоционально более ровное. На некоторых записях возникает ощущение, что играет/поет робот. Завал на ВЧ, звучание более грубое, особенно ВЧ. Звучание субъективно более медленное. Оно не несется безрассудно вперед, а не спеша, с расстановкой воспроизводит каждый нюанс (на современных жанрах это может восприняться как минус). Более брутальное звучание, нет нежности в звучании.
SAA7030:
В сравнении с безфильтровым вариантом появляется эмоциональность. Но она воспринимается как окрас, звучание становится богатым на различные оттенки звучания (толстый/тонкий звук, в безфильтровом варианте практически всегда толстый), более мягкий, округлый весь такой, аналоговый звук. Но при этом динамические контрасты становятся слабыми, энергетика снижается, звучание становится менее основательным (нижняя середина - верхний бас проседают). Звук становится более "попсовым". Хотя в целом в таком варианте слушать более приятно и главное привычно (более похоже на звучание всех современных цапов).
SAA7220:
Я его слушал немного в самом начале и остались лишь смутные воспоминания (дело в том, что без паяния SAA7030 и SAA7220 не поменять). Звучание эмоциональнее, чем в безфильтровом варианте (может быть даже эмоциональнее 7030), но эта эмоциональность опять же воспринимается как окраска. Звук более грубый, жирный, чем с SAA7030, вроде меньше детальность... Когда сравнивал свой комбайн с выходом на наушники у Philips 304MK2 (АКА дырка), характер звучания был очень сильно похож. Не даром в филипсе стоит тот же фильтр, хотя и сам ЦАП другой.
[https://forum.doctorhead.ru/forums/topic/12193-sistema-alexander/page/4/#:~:text=сложилось%20такое%20впечатление%3A-,Без%20фильтра%3A,в%20филипсе%20стоит%20тот%20же%20фильтр%2C%20хотя%20и%20сам%20ЦАП%20другой.,-Ответ%20с%20цитатой]

Увы и ах, поскольку никакими измерениями сие экзерсисы не подкрепляются, то подобные эмоциональные словеса приходится списать на буйство фантазии.

Реализовав в LabView элементарное отсечение (транкейт) двух младших бит и проверив на разнообразных музыкальных сигналах, я убедился (и слуховые ощущения перепроверил спектральным анализом), что 14 битность сама по себе кроме привнесения шума и усечения динамического диапазона ничегошеньки не даёт.

Значит, 4-х кратное повышающее сэмплирование вместе с нойз-шейпингом было применено неспроста!!!

А каким образом осуществляется апскейл частоты дискретизации в SAA7030? Ни где ни гу-гу!!! Собственно, вариантов не много: либо линейной интерполяцией, либо сплайном, либо ... фильтром. Последнее заведомо качественнее в плане привнесения отражённых частотных составляющих и тп. Почему бы не совместить в одном флаконе передискретизацию с фильтрацией и нойз-шейпингом?

[продолжение следует]

======================================================

Что такое ресемплинг? (resampling, передискретизация) | AREFYEV Studio