Там основная заморочка была в источнике сигнала - требовалось реализовать машину, на ней lwIP, с помощью которого реалиовать UPnP. Это для того,чтобы пользователь мог с компа посылать DSD поток на ЦАП.
Все верно. PCM записи конвертировать в DSD нет ни какого смысла, но некторые упоротые ведутся на эту мульку - типа DSD это круто. Действительно круто, если оцифровано прямо в DSD с аналоговой мастер-копии на специальной технике, но добыть такие записи достаточно сложно. А проверить как была получена DSD оцифровка - невозможно. Так они гоняют друг другу копии Pink Floyd-а в DSD фомате, которую кто-то когда-то левой пяткой перегнал с CD и выдал за мастер-копию. :-)
Я как-то рассматривал вариант проектирования "аудиофильского" конвертора DSD512 (22.5792 MHz) в 32-х битный PCM (I2S) с помощью ПЛИС, чтобы проигрывать на крутом ЦАП-е. Всё это оказалось крайне заморочено и с непонятной конечной целью. :I
Давайте спросим у ChatGPT какой шум в dB будет внесен при транскодинге DSD256 в PCM16 48kГц.
What is the noise in dB when converting DSD256 to PCM16 48k
When converting DSD256 (Direct Stream Digital at 11.2896 MHz) to PCM 16-bit at 48 kHz, the noise floor you end up with depends heavily on:
The quality of the DSD-to-PCM conversion process, especially the low-pass filtering stage used to remove ultrasonic noise inherent in DSD.
The bit depth and sampling rate of the PCM target format (in this case, 16-bit / 48 kHz).
The dither used during bit depth reduction.
Let's break it down with approximate figures:
🔧 DSD256 Characteristics:
Sampling rate: 11.2896 MHz (256× CD rate)
1-bit quantization
Very high noise shaping — pushes quantization noise to ultrasonic frequencies
In the audible band (20 Hz – 20 kHz), DSD256 can have an SNR of over 120 dB, sometimes even approaching 130 dB, depending on implementation.
However, the ultrasonic noise (above ~30–50 kHz) is extremely high — on the order of -20 dBFS or worse — so it must be filtered out when converting to PCM.
🎚️ PCM16 at 48 kHz Characteristics:
16-bit dynamic range = ~96 dB theoretical
Sampling rate = 48 kHz (Nyquist = 24 kHz)
When you convert from DSD256 to PCM16/48k:
A low-pass filter (typically steep, ~20–24 kHz) removes ultrasonic noise.
The signal is downsampled from 11.2896 MHz to 48 kHz.
Dithering is applied to avoid quantization distortion when reducing to 16 bits.
📉 Resulting Noise Floor (Estimates):
After conversion:
Audible noise floor: roughly -90 to -96 dBFS (depends on dithering)
Effective SNR: Limited by PCM16 to ~96 dB max
Noise added by conversion: Not so much added noise as lost resolution compared to the original DSD256 — you're dropping from 120–130 dB dynamic range to ~96 dB.
So the "noise" in the result is essentially:
The PCM16's limited resolution (adds quantization noise if not dithered properly)
Any leftover artifacts from imperfect filtering (poor filters might let some DSD ultrasonic noise alias into the audio band — this is rare with good converters)
✅ Summary Answer:
The effective noise floor after converting DSD256 to PCM16/48k is around -96 dBFS, limited by the 16-bit depth. The original DSD256 may have had >120 dB SNR, so you're effectively losing 25–30 dB of dynamic range. However, if done correctly, there should be no audible increase in noise — just a reduced headroom/resolution compared to the original.
Let me know if you want to compare with PCM24/96 or look at spectrograms.
Итого:
The effective noise floor after converting DSD256 to PCM16/48k is around -96 dBFS, limited by the 16-bit depth. The original DSD256 may have had >120 dB SNR, so you're effectively losing 25–30 dB of dynamic range.
При наложении нескольких аудиозаписей (что часто используется в звуко-записывающей индустрии), это создаст весьма заметное на слух искажение звука. Поэтому в индустрии звукозаписи в формате DSD не конвертирую и не обрабатывают стандартными средствами. Треки в DSD микшируют прямо в этом формате, а для проигрывания имеются специальные аппартные средства.
Теорема Шеннона/Найквиста/Котельникова как раз о том, что сигналы полученные разной частотой дискретизации нельзя преобразовать один в другой без потерь. У DSD и PCM частоты различаются на несколько порядков. На практике их делают кратными друг другу чтобы снизить потери при цифровом преобразовании. Но это совершенно разные методы кодирования сигнала.
а как именно он получен - уже вторично, лишь бы частота дискретизации совпадала.
В DSD нет частоты дискретизации в том понимании в котором она есть в PCM. Там частота сэмплирования битов на несколько порядков выше чем у PCM. Например, у DSD256 частота сэмплирования составляет 11.2896 МГц. DSD поток нельзя переконвертировать в PCM без потери качества, это другой метод преобразования аналогово сигнала в цифровой.
Совершенно верно. Стоимость производства изделий в технопарках закосмическая, пригодная только для единичных прототипов и демонстрационных образцов.
Производство в технопарках еще плохо тем, что накопленный опыт не масштабируется - то, что могу произвести в лабораторных услових совершенно не пригодно для массового производства. Люди изготовившие образцы своих изделий в технопарке наивно полагают, что у них всё готов и надо лишь только найти поизводство для серии. Но как как только они находят такое производство под своё изделие, им приходится перепроектировать изделия с самого начала.
На мой взгляд технопарки в том виде в котором они сейчас есть это такое непонятно что и зачем. Нужны реальные маштабные производства с центрами прототипирования при них, ориентирующиеся на возможности своего производства. А не абстрактные технопарки, где люди никогда не видели реального поизводства и не понимают как проектировать для него.
2. Использовать технопарки и вузы. 3. Создавать локальные кластеры.
Все это мертвому припарка! Нужны обьемы! Стабильные обьемы заказов на сотни тысяч однотипных изделий в год и будет Вам нормальная цена не хуже чем в Китае. При штучных заказах имеем то, что имеет. Сам нахожусь в такой же ситуации.
А кто нибудь помнит как назывался текстово-командный проигрыватель .STM файлов под MS-DOS образца 1992 года (не Scream Tracker) ? Его можно было оставить резидентом (TSR) играть музыку в фоне, при этом спокойно прогать в Borland C или редактировать текст в Norton Commander. :-)
Нет! Описанный в статье PWM это способ проигрывания PCM сэмплов. DSD это другой алгоритм и преобразовать в него из PCM прямого способа не существует.
Я в свое время реализовывал на i286 сканер и проигрыватель в DSD (сам правда того не зная, просто придумали с товарищем и реализовали). Для сканирования (оцифровывания) звука мне пришлось "изобрести" простейший девайс на основе триггера Шмидта, который преобразовывал аналоговый сигнал в однобитовую последовательность разной длительности и подавал на сигнал готовности принтера в LPT порт где захватывался программой написанной на Turbo C. Для проигрывания эта же последовательность один к одному выводилась в бит управления PC Speaker-ом. Звучание по качеству было несколько лучше чем описанный в статье PWM, так как в этом способе нет частоты дискретизации как таковой.
ЗЫ: DCD широко используется в современной Hi-End аудиотехнике как раз по причине отсутствия артефактов квантования (антиалиасинга).
Вот это автор заморочился! Спасибо за статью! Интересно, много в стране держателей "Специалиста" сейчас ?
"Специалист" была одним из первых для меня ПЭВМ, собирали в сарайке у товарища в 89-90-м годах по схемам из журнала Моделист-Конструктор. Вытравленные платы (с ошибками) приобрели на рынке, долго мучались с ними. Парочку КР580ВМ80А нам добыл его отец, он работал на заводе (обслуживал советские ЧПУ). Помню как набивали длиннющие дампы и часто не сходилась контрольная сумма из-за опечаток в журнале. :(
А Вы пробовали ? Для меня большая поблема статью на Хабре написать. А написать книгу, к тому же интеесную, это гигансткий труд. Так что прошу оставить Роберта, нашего, Хайнлайна в покое. :)
Все верно. Если снять сигнал EN с драйвера, то шина перейдет в третье состояние, о чем, скорее всего, говорится на следующей странице вашего мануала. Этот зазор во всех даташитах называется receiver threshold.
Тут есть два подхода: взять готовую микруху или соорудить самому на оптопарах и куче обвязки. Основная проблема - где брать питание для обеих сторон, ведь эти два источника должны быть гальванически несвязанны друг с другом. Один из способов - передать питание с одной стороны на другую через трансформатор, то есть одна сторона превращает постоянное напряжение в перемнное (в прямоугольник), передает его через развязывающий трансформатор, а другая выпрямляет, стабилизирует и использует для запитки. Схема получается достаточно сложной, но именно так работает микросхема RS-485 трансивера LTM2881 которую мы часто используем в своих проектах.
Да, прочитал только что про фотоумножители.
Кому-то бог послал Байкал, а кому-то Средиземное море. ;)
PS: Интересно, как фиксируют нейтрино если оно "почти не взаимодействует с веществом" ?
Хорошая статья, хороший опыт у товарища получился. Я тоже отправлял патч в ядро Linux, в ветку sunxi (Allwinner), но его не приняли.
Там основная заморочка была в источнике сигнала - требовалось реализовать машину, на ней lwIP, с помощью которого реалиовать UPnP. Это для того,чтобы пользователь мог с компа посылать DSD поток на ЦАП.
Все верно. PCM записи конвертировать в DSD нет ни какого смысла, но некторые упоротые ведутся на эту мульку - типа DSD это круто. Действительно круто, если оцифровано прямо в DSD с аналоговой мастер-копии на специальной технике, но добыть такие записи достаточно сложно. А проверить как была получена DSD оцифровка - невозможно. Так они гоняют друг другу копии Pink Floyd-а в DSD фомате, которую кто-то когда-то левой пяткой перегнал с CD и выдал за мастер-копию. :-)
Я как-то рассматривал вариант проектирования "аудиофильского" конвертора DSD512 (22.5792 MHz) в 32-х битный PCM (I2S) с помощью ПЛИС, чтобы проигрывать на крутом ЦАП-е. Всё это оказалось крайне заморочено и с непонятной конечной целью. :I
Давайте спросим у ChatGPT какой шум в dB будет внесен при транскодинге DSD256 в PCM16 48kГц.
What is the noise in dB when converting DSD256 to PCM16 48k
When converting DSD256 (Direct Stream Digital at 11.2896 MHz) to PCM 16-bit at 48 kHz, the noise floor you end up with depends heavily on:
The quality of the DSD-to-PCM conversion process, especially the low-pass filtering stage used to remove ultrasonic noise inherent in DSD.
The bit depth and sampling rate of the PCM target format (in this case, 16-bit / 48 kHz).
The dither used during bit depth reduction.
Let's break it down with approximate figures:
🔧 DSD256 Characteristics:
Sampling rate: 11.2896 MHz (256× CD rate)
1-bit quantization
Very high noise shaping — pushes quantization noise to ultrasonic frequencies
In the audible band (20 Hz – 20 kHz), DSD256 can have an SNR of over 120 dB, sometimes even approaching 130 dB, depending on implementation.
However, the ultrasonic noise (above ~30–50 kHz) is extremely high — on the order of -20 dBFS or worse — so it must be filtered out when converting to PCM.
🎚️ PCM16 at 48 kHz Characteristics:
16-bit dynamic range = ~96 dB theoretical
Sampling rate = 48 kHz (Nyquist = 24 kHz)
When you convert from DSD256 to PCM16/48k:
A low-pass filter (typically steep, ~20–24 kHz) removes ultrasonic noise.
The signal is downsampled from 11.2896 MHz to 48 kHz.
Dithering is applied to avoid quantization distortion when reducing to 16 bits.
📉 Resulting Noise Floor (Estimates):
After conversion:
Audible noise floor: roughly -90 to -96 dBFS (depends on dithering)
Effective SNR: Limited by PCM16 to ~96 dB max
Noise added by conversion: Not so much added noise as lost resolution compared to the original DSD256 — you're dropping from 120–130 dB dynamic range to ~96 dB.
So the "noise" in the result is essentially:
The PCM16's limited resolution (adds quantization noise if not dithered properly)
Any leftover artifacts from imperfect filtering (poor filters might let some DSD ultrasonic noise alias into the audio band — this is rare with good converters)
✅ Summary Answer:
Let me know if you want to compare with PCM24/96 or look at spectrograms.
Итого:
При наложении нескольких аудиозаписей (что часто используется в звуко-записывающей индустрии), это создаст весьма заметное на слух искажение звука. Поэтому в индустрии звукозаписи в формате DSD не конвертирую и не обрабатывают стандартными средствами. Треки в DSD микшируют прямо в этом формате, а для проигрывания имеются специальные аппартные средства.
Теорема Шеннона/Найквиста/Котельникова как раз о том, что сигналы полученные разной частотой дискретизации нельзя преобразовать один в другой без потерь. У DSD и PCM частоты различаются на несколько порядков. На практике их делают кратными друг другу чтобы снизить потери при цифровом преобразовании. Но это совершенно разные методы кодирования сигнала.
В DSD нет частоты дискретизации в том понимании в котором она есть в PCM. Там частота сэмплирования битов на несколько порядков выше чем у PCM. Например, у DSD256 частота сэмплирования составляет 11.2896 МГц. DSD поток нельзя переконвертировать в PCM без потери качества, это другой метод преобразования аналогово сигнала в цифровой.
Мистер Трамп, перелогиньтесь.
Ответственность за перевозку несет страховая компания. По закону перевозчик обязан страховать все свои перевозки.
Совершенно верно. Стоимость производства изделий в технопарках закосмическая, пригодная только для единичных прототипов и демонстрационных образцов.
Производство в технопарках еще плохо тем, что накопленный опыт не масштабируется - то, что могу произвести в лабораторных услових совершенно не пригодно для массового производства. Люди изготовившие образцы своих изделий в технопарке наивно полагают, что у них всё готов и надо лишь только найти поизводство для серии. Но как как только они находят такое производство под своё изделие, им приходится перепроектировать изделия с самого начала.
На мой взгляд технопарки в том виде в котором они сейчас есть это такое непонятно что и зачем. Нужны реальные маштабные производства с центрами прототипирования при них, ориентирующиеся на возможности своего производства. А не абстрактные технопарки, где люди никогда не видели реального поизводства и не понимают как проектировать для него.
Все это мертвому припарка! Нужны обьемы! Стабильные обьемы заказов на сотни тысяч однотипных изделий в год и будет Вам нормальная цена не хуже чем в Китае. При штучных заказах имеем то, что имеет. Сам нахожусь в такой же ситуации.
Как всегда, снимаю шляпу.
А кто нибудь помнит как назывался текстово-командный проигрыватель .STM файлов под MS-DOS образца 1992 года (не Scream Tracker) ? Его можно было оставить резидентом (TSR) играть музыку в фоне, при этом спокойно прогать в Borland C или редактировать текст в Norton Commander. :-)
Напоминает, но им не является. PWM (PCM) и DSD - два разных алгоритма оцифровки звука.
Нет! Описанный в статье PWM это способ проигрывания PCM сэмплов. DSD это другой алгоритм и преобразовать в него из PCM прямого способа не существует.
Я в свое время реализовывал на i286 сканер и проигрыватель в DSD (сам правда того не зная, просто придумали с товарищем и реализовали). Для сканирования (оцифровывания) звука мне пришлось "изобрести" простейший девайс на основе триггера Шмидта, который преобразовывал аналоговый сигнал в однобитовую последовательность разной длительности и подавал на сигнал готовности принтера в LPT порт где захватывался программой написанной на Turbo C. Для проигрывания эта же последовательность один к одному выводилась в бит управления PC Speaker-ом. Звучание по качеству было несколько лучше чем описанный в статье PWM, так как в этом способе нет частоты дискретизации как таковой.
ЗЫ: DCD широко используется в современной Hi-End аудиотехнике как раз по причине отсутствия артефактов квантования (антиалиасинга).
Вот это автор заморочился! Спасибо за статью! Интересно, много в стране держателей "Специалиста" сейчас ?
"Специалист" была одним из первых для меня ПЭВМ, собирали в сарайке у товарища в 89-90-м годах по схемам из журнала Моделист-Конструктор. Вытравленные платы (с ошибками) приобрели на рынке, долго мучались с ними. Парочку КР580ВМ80А нам добыл его отец, он работал на заводе (обслуживал советские ЧПУ). Помню как набивали длиннющие дампы и часто не сходилась контрольная сумма из-за опечаток в журнале. :(
Apache HTTP Server for OS/2. Только не ждите от него поддержки SSL.
А Вы пробовали ? Для меня большая поблема статью на Хабре написать. А написать книгу, к тому же интеесную, это гигансткий труд. Так что прошу оставить Роберта, нашего, Хайнлайна в покое. :)
Все верно. Если снять сигнал EN с драйвера, то шина перейдет в третье состояние, о чем, скорее всего, говорится на следующей странице вашего мануала. Этот зазор во всех даташитах называется receiver threshold.
Тут есть два подхода: взять готовую микруху или соорудить самому на оптопарах и куче обвязки. Основная проблема - где брать питание для обеих сторон, ведь эти два источника должны быть гальванически несвязанны друг с другом. Один из способов - передать питание с одной стороны на другую через трансформатор, то есть одна сторона превращает постоянное напряжение в перемнное (в прямоугольник), передает его через развязывающий трансформатор, а другая выпрямляет, стабилизирует и использует для запитки. Схема получается достаточно сложной, но именно так работает микросхема RS-485 трансивера LTM2881 которую мы часто используем в своих проектах.