Ресемплинг. Цифровая кирпичная стена против теории заговора. Рождественская сказка для любителей чистого звука

    Ни в одной области электроники не скопилось столько мифов,
    как в области Hi-Fi и Hi-End устройств для воспроизведения звука.
    Ударим Рождественской Историей по одному из них!




    Когда старый год уже проводили, Новый встретили сначала в узком семейном кругу, а затем с более дальними родственниками, когда закончились или пришли в негодность новогодние салаты и стало отпускать похмелье…

    Те, кто не захотел или не смог встречать Новый Год в Дальнем Зарубежье, начинают ощущать на себе зов персонального компьютера.

    Именно для них и предназначена моя рождественская история, об основах ресемплинга — технологии, позволившей значительно улучшить качество воспроизведения дисков формата Аудио CD в начале тысячелетия. Именно тогда для воспроизведения 16 битных записей начали применять 18 и даже 20 битные цифро-аналоговые преобразователи. С первого взгляда это выглядело как маркетинговая уловка производителей, направленная на извлечение дополнительной порции денег из кошельков доверчивых аудиофилов, но в этот раз сторонники теории заговоров могут курить в сторонке. На самом деле это было удачной попыткой улучшить качество воспроизведения и снизить цену дорогостоящей профессиональной аппаратуры. История старая, но поучительная, во многом актуальная и по сей день.

    Цифро-аналоговый преобразователь digital-to-analog DAC является сердцем любой аудиовопроизводящей системы, использующей в качестве источника компакт диски. На него возложена сложная и деликатная задача раскодирования последовательности 16-битных чисел и преобразования её в формат, воспринимаемый человеческим ухом.



    В далёком 1983 году появился первый культовый CD проигрыватель Magnavox со сдвоенным 14 битным конвертором, но уже к началу века многие системы высококачественного воспроизведения CD дисков имели 18, а то и 20 битные преобразователи. Почему?

    Немного теории, почти без формул


    Концепция цифро-аналоговых преобразований покоится на двух китах: частоте дискретизации sampling и разрядности quantization.

    Для воспроизведения звука в PCM формате мы должны через равные промежутки времени преобразовывать цифровые значения в соответствующие им аналоговые величины напряжения или тока. Частота этих преобразований и является частотой дискретизации. Согласно теореме Найквиста, таким образом возможно воспроизводить сигналы с частотой не выше половины частоты дискретизации. Наиболее распространённые форматы, которые способны воспроизводить сигналы с частотой воспринимаемой человеческим ухом общепринята цифра 20 кГц, имеют частоты дискретизации в 44.1 и 48 КГц.

    image
    Первый до сих пор широко используется в звуковых компакт дисках (CDDA, англ. Compact Disc Digital Audio, также называемый англ. Audio CD и Red Book), а второй зародился в ряде стандартов для профессиональной звукозаписывающей аппаратуры.

    Давайте вообразим себе что при записи звуковой сигнал попадает на идеальный аналогово-цифровой преобразователь. Он не имеет собственных шумов и искажений и преобразует мгновенное значение поступающего на него сигнала в цифровое с заданной разрядностью, ну например в 16 бит, как это принято в формате Audio CD. В таком случае, теоретически достижимый динамический диапазон сигнала (соотношение между оцифрованными сигналами с самым большим и маленьким уровнями) будет составлять 98.1 dB. Для вычисления этой величины часто используют приближённую формулу, согласно которой каждый лишний бит добавляет 6 децибел к теоретически достижимому динамическому диапазону. Для 16 битного сигнала мы получим:

    6dB/bit*16bits=96dB.

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

    От идеальных приближений к реальной жизни. Проблемы первых CD проигрывателей


    Со времён начала использования цифровых технологий в звукозаписи ведётся постоянная гонка за увеличение их производительности и уменьшение стоимости. Первые CD проигрыватели имели единственный параллельный DAC и две входные цепи, которые поочерёдно подавали на него сигналы то правого, то левого каналов. Мгновенные уровни аналоговых сигналов на выходе DAC фиксировались с помощью специальных цепей на время между двумя считываниями и попеременно поступали на отдельные усилители правого и левого каналов. Это порождало дополнительные искажения, величина которых зависела от разности мгновенных звуковых уровней каналов. Под напором критики ауидофилов производители вынуждены были перейти на схему с отдельными DAC для каждого из каналов.

    image На выходе DAC присутствует ступенчатый сигнал, который не слишком похож на плавный исходный, в нём существуют неприятные на слух искажения. Давайте для упрощения представим что на вход была подана единственная гармоника с частотой 1 КГц. Операция восстановления оцифрованного сигнала приводит фактически к возникновению интермодуляционных искажений между исходным сигналом и частотой дискретизации — в нашем случае 44.1 КГц. (Механизм возникновения интермодуляционных искажений и ликбез по гармоникам при необходимости ищите в моей прошлой статье).

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



    В ранних моделях аппаратуры для воспроизведения цифрового контента для этого использовались фильтры, которые имели плоскую характеристику до частоты в 20 кГц, а далее резкое ослабление уровня на 80дБ и более. В английской терминологии такие фильтры называют brick-wall, на русском иногда именуют по аналогии “кирпичной стеной”. Проблема заключалась в том, что аналоговые ФНЧ высокого порядка очень чувствительны к точности значений пассивных компонентов, из которых они состоят. Ещё больше осложняют ситуацию требуемые номиналы выбивающиеся за пределы стандартного ряда и особые требования к качеству этих компонентов, которое необходимо для достижения минимального вклада в искажение сигнала. В результате, стоимость данных фильтров получалась запредельной, но самое печальное — они не смогли удовлетворить запросы аудиофилов, поскольку данные фильтры имели большие фазовые искажения, особенно на краях воспроизводимого диапазона. Поэтому звучание ранних версий CD проигрывателей несмотря на высокую стоимость аудиофилы характеризовали как “песочное” (gritty).

    Цифровые фильтры спешат на помощь. Oversampling на пальцах


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

    Для того, чтобы пояснить её сущность давайте представим процесс восстановления сигнала с так любимой ГОСТами частотой 1 КГц. На рисунке A представлен ряд сэмплов составляющих сигнал, которые появляются на выходе DAC, а правее спектральные составляющие второго и третьего порядков, содержащиеся в сигнале на выходе DAC. Можно заметить, что сигнал является ни чем иным, как продуктом интермодуляционных искажений между исходным тоном с частотой 1 КГц и частой оцифровки 44.1 КГц.



    Увеличим частоту дискретизации сигнала в четыре раза путём элементарной операции — добавления лишних трёх сэмплов между двумя соседними, каждый из которых имеет нулевые значения, как показано на рисунке C. Одновременно с этим добавим два младших разряда в каждый сэмпл, также заполнив их нулями. Теперь мы получили 18 битные значения сэмплов. В результате этой операции спектр сигнала фактически не изменился, но на самом деле произошло фундаментальное изменение. Гармоники второго порядка, вызванные частотой дискретизации стали частью спектра основного сигнала. Производные же гармоники переместились выше частоты 44.1 кГц. Это показано на рисунке D.



    В области же спектра основного сигнала с успехом можно применить цифровую фильтрацию, что мы и сделаем, использовав цифровой фильтр высокого порядка, с АЧХ показанный на рисунке F. Физически мы получаем дополнительные промежуточные точки между имеющимися сэмплами сигнала, которые сглаживают переходы между двумя значениями за счёт появления дополнительных двух разрядов в представлении амплитуды.



    Теперь, когда всю тяжёлую и грязную работу выполнил цифровой фильтр мы подаём результирующий сигнал с частотой дискретизации в 44.1*4 =176.4 КГц, на DAC.

    Осталось добавить вишенку на наш тортик — пропустить сигнал через простейший аналоговый фильтр третьего порядка, который отлично справится с подавлением гармоник в заданном диапазоне и не внесёт при этом заметных фазовых искажений.



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


    Аппаратная реализация


    На рисунке представлена аппаратная реализация описанного выше решения. Операции передискретизации и цифровой фильтрации выполняет микросхема CXD1088Q производства фирмы SONY — одним из прародителей формата Audio CD. Несложная логическая схема поочерёдно запускает преобразование двух отдельных 18 битных DAC AD1860.



    Какие же преимущества мы получили в результате наших цифровых фокусов?


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

    Каждому яблоку место упасть, каждому вору возможность украсть…


    Как любая хорошая рождественская история, эта имеет хэппиенд. От внедрения новой технологии кажется выиграли все:


    Производители профессиональной аппаратуры и CD проигрывателей в сегменте Hi Fi смогли улучшить качество звука и значительно увеличить повторяемость параметров своих изделий в процессе производства.

    Любители качественного звука получили проигрыватели дисков с улучшенными параметрами за разумную цену.

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

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


    Более подробное сравнение работы аналоговых и цифровых фильтров и ответы на характерные вопросы читайте в следующей статье

    .

    При подготовке публикации были использованы материалы статьи DAC ICs: How Many Bits is Enought? под авторством Robert Adams
    Поделиться публикацией

    Комментарии 83

      0
      Кстати да, сэкономили пару-тройку корпусов операционных усилителей для активного ФНЧ и добавили корпус цифрового фильтра. Плюс выкинули операцию по проверке АЧХ фильтра на выходе. Плюс получили возможность написать на коробке красивые маркетинговые слова про цифровую фильтрацию и 192 кГц.
        +2
        Похоже, уважаемый, вы не слишком внимательно прочитали статью, прежде чем оставлять этот комментарий. Дело не в количестве корпусов операционников, хотя их для реализации аналогичного фильтра понадобится намного больше двух. Дело в том, что подобный фильтр просто не получится реализовать из-за невозможности подобрать аналоговые компоненты — резисторы, индуктивности, конденсаторы с необходимой для него точностью, я уже не говорю о том, что с изменением температуры его параметры уплывут всё равно уплывут.
          0
          Для того, чтобы обрезать все, что лежит за границами звукового диапазона (20 кГц) и получить затухание под 40 дБ на 44 кГц, да с ровной фазовой характеристикой, требуется (с ровной — это фильтр Баттерворта) фильтр 7 порядка, это три операционных усилителя и по 10 5%-е резисторов и конденсаторов на канал. Да, громоздко, но не невозможно. Два счетверенных операционных усилителя типа TL074. В любительском приемнике прямого преобразования бывает больше (в фазовращателе).
            +1
            и по 10 5%-е резисторов и конденсаторов на канал

            Вы сами то поняли, что написали? С таким разбросом компонентов это будет не фильтр, а генератор искажений сигнала.
              +1
              Ничего страшного. Если все резисторы и конденсаторы одновременно изменят свой номинал на 5% — частота фильтра тоже уйдет на 5%. Ну будет затухание не 100 раз, а 95 раз на исходной частоте, 39 дБ вместо 40 дБ. Никто этого не ощутит и никаких серьезных последствий не вызовет. А 5% допуск на значения резисторов и конденсаторов и сейчас, и в середине 80-х годов на Западе вполне стандартен. Даже для бытовой техники.
                +1
                Не смотря на то, что с человеком, имеющим такую подготовку спорить бесполезно, я всё таки позволю себе последний комментарий — вы просто не сможете найти в стандартном ряду компонентов с допуском в 5 процентов нужного номинала. Плюс к тому допуск он на то и допуск что все компоненты изменяют свои значения в разных направлениях, совершенно непредсказуемо.
                  +1

                  Всё гораздо проще. Дело не в 5%, а в размерах индуктивностей и емкостей на звуковые частоты. Поэтому цифровой фильтр в данном случае дешевле;)

                  +1
                  > Если все резисторы и конденсаторы одновременно изменят свой номинал на 5% — частота фильтра тоже уйдет на 5%

                  Это вряд ли. Если я правильно помню, то в формуле рассчета частоты фильтра емкости и сопротивления отнюдь не суммируются, а потому результат будет отличаться совсем не на 5%.
                  Не говоря уже о том, что в реальной жизни никогда не будет одновременного изменения всех параметров именно на 5%
                    0
                    Да, согласен, частота обратно пропорциональна RC. 0,95*R*0.95*C = 0,9025RC, т.е. на 10 %. А если номиналы уйдут не в одну сторону, то это даже проще — часть уйдет в одну, часть в другую, в итоге останется среднее значение.
                      +3
                      Я вот вспомнил закон Мерфи для электроники. «Всё, что требует наладки и регулировки, обычно не поддаётся ни тому ни другому»
                  –1
                  С таким разбросом компонентов это будет не фильтр, а генератор искажений сигнала

                  Хорошая новогодняя шутка;)

                  +1
                  В любительском приемнике прямого преобразования

                  полоса в нём от силы 3 kHz
                    +1
                    Да и к качеству сигнала требования нулевые — главное слова различать. Там и 5 процентами можно обойтись.
              +1

              Уйдет не только частота. Не строят сложные фильтры на 5% компонентах.

                +4
                Совершенно верно! Когда нарушается соотношение между компонентами то фильтр просто теряет свои свойства, а не изменяет частоту полосы пропускания. Причём чем больший порядок имеет фильтр, тем тщательнее надо подбирать компоненты для того чтобы получить заявленные характеристики. Я уже не говорю о том, что паразитная составляющая в компонентах во всём частотном диапазоне не должна играть существенного значения.
                  0
                  фильтр просто теряет свои свойства, а не изменяет частоту полосы пропускания.

                  И какие же свойства свойства он теряет?

                    0
                    Все в той или иной степени, которая зависит насколько вы нахимичили с компонентами. Но самое неприятное что он может элементарно потерять главное свойство — устойчивость и похоже гораздо быстрее чем вы думаете.
                      –1

                      Интересно бы посмотреть на схему RLC фильтра.


                      Вы сколько аналоговых фильтров спроектировали?

                        0

                        На схему неустойчивойчивого фильтра

                          +4
                          Вы же занимаетесь разработкой устройств практически любой сложности, в чём проблемы? Для вас не составит труда собрать фильтр девятого порядка на компонентах с допуском 5% и измерить параметры своего творения.
                          Если ещё и статью с результатами опубликуете вообще будет замечательно!
                            0

                            Я то да, есть такое.
                            Но я понимаю что вы отказываетесь предоставить схему неустойчивойчивого rlc фильтра?

                              +1
                              Регенеративный каскад. Там вводилась ПОС для компенсации потерь в контуре ®. Для получения максимальной избирательности приходилось регулировать величину обратной связи достаточно часто. Иначе получаем сверхрегенератор. Который, кстати, излучает в антенну. И который можно засечь радиопеленгатором. Причём у гетеродинного приёмника, где частота гетеродина сдвинута на величину ПЧ и хоть как-то отфильтровывается входным фильтром, шансов быть непойманным больше.

                              Вообще абсолютно устойчивыми являются только нерекурсивные фильтры.
                                –5

                                А если только на rlc? Слабо?

                                  +2
                                  На слабо будете фраеров ловить. Здесь вроде другой ресурс.
                                  Если без активных элементов — то это будет как раз аналог цифрового нерекурсивного фильтра. Кочечно будет устойчив как айсберг на пути Титаника. Но кто будет делать фильтр на ЗЧ такого порядка только на пассивных элементах?
                                    0

                                    А вы использовали регенеративный каскад в качестве фильтра ЗЧ?

                                      0

                                      А вы использовали регенеративный каскад в качестве фильтра ЗЧ?

                                        0
                                        Вроде в Радио я видел схему трёхпрограммного приёмника с активным фильтром на мосте Вина. Там то же самое — для получения максимальной избирательности надо было подходить близко к порогу генерации. Почти регенеративный каскад, но на RC и операционнике ;-) Там почти ЗЧ — что-то типа 75 кГц.
                  +2
                  А есть дельта-сигма, где идея ресемплинга доведена до оверсемплинга — частота дискретизации превышает полезную полосу на пару порядков (и разрядность сокращена до одного бита). Чем упрощает ФНЧ до уровня RC-цепочки.
                    +1
                    В последние годы АЦП и ЦАП, основанные на этом принципе, практически полностью завоевали область обработки звука.
                    Рассказанная сегодня история уже в прямом смысле является ИСТОРИЕЙ. Я выбрал её как пищу для ума — изящного решения проблемы. И как лишнее напоминание того, что прежде чем строить теории заговора стоит самому разобраться в сути проблемы.
                      0
                      Извините, а можете на пальцах объяснить или посоветовать литературу, где объясняется, почему при повышении дискретизации можно огрублять квантование?
                        0
                        Если совсем на пальцах…
                        Нарисуйте график синусоиды на клетчатой бумаге, только сравнительно большой амплитуды — клеток двадцать не меньше примерно как в моей следующей статье и второй такой в 4 раза шире, а потом попробуйте по клеточкам соединить как в моей следующей статье и увидите сами на каком из графиков аппроксимированный сигнал будет ровнее.
                      0
                      Увеличим частоту дискретизации сигнала в четыре раза путём элементарной операции — добавления лишних двух сэмплов между двумя соседними, каждый из которых имеет нулевые значения, как показано на рисунке C.
                      Там и вправду вставка нулевых значений? Логичнее было бы делать либо повтор предыдущего значения, либо интерполяцию между соседними значениями… Тем более что интерполяция в аудио CD, вроде бы, предусмотрена для коррекции сигнала в том случае, когда из-за дефектов или повреждения диска цифровая коррекция ошибок уже не срабатывает. Понятно, что цифровой фильтр может эту интерполяцию и сам сделать, так что вопрос, скорее, о том, а как же оно всё-таки реализовано на самом деле…
                        0
                        Трудно сказать. Речь идёт об аппаратном решении, причём весьма старом. Данный чип увидел свет более 15 лет назад. Вполне вероятно что в целях упрощения именно так и сделали — всё таки обработка сигнала ведётся на приличной частоте. Возможно также что подобного рода интерполяция не слишком хорошо вписывалась в аппаратную реализацию алгоритма фильтрации.
                        Думаю что сегодня, когда вычисления строятся на основе DSP ядер, вставляют уже интерполированные значения в качестве нулевых условий
                          +4
                          Там и вправду вставка нулевых значений. Если сделать повтор предыдущих то сигнал на выходе не изменится (то есть, если увеличить частоту дискретизации в N раз и повторять капждый сэмпл N раз, то его никак не отличить от исходного). Если сделать интерполяцию значений — то возникает вопроос: а как интерполировать, чтобы в спектре не появилось новых гармоник? Например если мы сделаем линейную интерполяцию то получим новые гармоники (немножко лень расписывать подробно, но навскидку это будет расширение спектра + фильтр «бегущее среднее», которы не обеспечивает нужное подавление).
                          Если расписать красивыми мат. выкладками вставку нулевых значений + фнч, получим самую православную интерполяцию. вставка нулевых значений оставляет исходный спектр + появляются отражения, которые и давяца ФНЧ, обеспечивая нам отсутсвие внеполосных гармоник. При этом к ФНЧ предъявляются определенные требования по крутизне спада и глубине подавления.
                            +1
                            Если сделать повтор предыдущих то сигнал на выходе не изменится (то есть, если увеличить частоту дискретизации в N раз и повторять капждый сэмпл N раз, то его никак не отличить от исходного).
                            А зачем его отличать? Дело не в этом, скорее всего, а в том, что повторение в данном случае эквивалентно фильтрации сигнала через фильтр с sinc-образной передаточной характеристикой, т.е. слегка будут завалены верхние частоты…
                            как интерполировать, чтобы в спектре не появилось новых гармоник? Например если мы сделаем линейную интерполяцию то получим новые гармоники
                            Нет. Линейная интерполяция эквивалентна прохождению сигнала через фильтр с симметричным треугольным откликом. Никаких лишних гармоник при этом не появится, разве что из-за квантования, но это один бит и при увеличенной разрядности ЦАП это будет совсем незаметно. Наверное, тут тоже дело в том, что так же, как и в случае повторением, в случае линейной интерполяции чуть-чуть завалятся верхние частоты… Конечно, надо бы прикинуть всё математически или, хотя бы, на картинках с передаточными характеристиками, но сейчас каникулы… :)
                              0
                              предложение состояло не в том, чтобы вообще отказаться от фильтров в пользу простейшей линейной интерполяции, а в том чтобы в качестве начальных значений взять интерполированные, ма не нулевые.
                                +1
                                А зачем его отличать? Дело не в этом, скорее всего, а в том, что повторение в данном случае эквивалентно фильтрации сигнала через фильтр с sinc-образной передаточной характеристикой, т.е. слегка будут завалены верхние частоты…
                                Когда я говорил «неотличимы» я имел ввиду одинаковы. Не вижу причин, по которым у двух одинаковых сигналов будет отличаться спектр.
                                Нет. Линейная интерполяция эквивалентна прохождению сигнала через фильтр с симметричным треугольным откликом.
                                Вот как раз тут будет фильтр с прямоугольным окном и отклик будет sinc (а точнее его дискретный эквивалент — периодический sinc/функция Dirichlet). Линейная аппроксимация эквивалентна (скажем в 2 раза, когда вставляется среднее между двух отсчётов): повторяем каждый сэмпл по два раза (то есть [x0 x1 x2… xn] -> [x0 x0 x1 x1 x2 x2… xn xn] и пропускаем через КИХ фильтр с коэффициентами [1/2 1/2] (в случае линейной интерполяции в N раз будет [1/N 1/N… 1/N] N-раз, это есть фильтр бегущее среднее по N). Легко показать, что для рассматриваемого случая, выходной сигнал будет [(x0+x0)/2 (x0+x1)/2 (x1+x1)/2 (x1+x2)/2 ...], то есть эквивалентно линейной аппроксимации со вставкой среднего между отсчётами. Отклик такого фильтра есть diric (периодический sinc), а спектр исходного сигнала не изменился (если поверить мне в первом утверждении, о неизменности спектра при повторении исходных значений в N раз). Вот как раз и получим небольшой завал (перемножая спектр исходного сигнала и КИХ фильтра). Да, новые гармоники не появятся, это я лишнего махнул.
                                Проще показать это всё через свёртку. Но новый год и лень =)
                              +1
                              Вставку нулей вместо повтора предыдущего значения используют потому что это позволяет уменьшить вычислительную нагрузку соответственно кратности ресэмплинга — используются КИХ-фильтры, представляющие собой множество MAC-операций (умножить сэмпл на коэффициент и добавить к аккумулятору), при этом для вставленных нулевых сэмплов вычисления делать не нужно.
                                +4
                                Логичнее было бы делать либо повтор предыдущего значения, либо интерполяцию между соседними значениями

                                Не логичнее, поскольку это приведёт к искажению АЧХ исходного сигнала (за исключением sinc-интерполяции). Математически интерполяция в данном случае будет равна свёртке сигнала с интерполируемой функцией (в случае линейной интерполяции — с треугольной, при повторе предыдущего семпла — прямоугольной и т.д.).
                                  0
                                  В процессе оцифровки мы сигнал умножаем на дельта-импульс.
                                  При восстановлении его и получаем.
                                  Преславутый «ступенчатый» сигнал на выходе ЦАПа — крайне неправильный сигнал, имеет огибающую спектра sinx/x вместо плоской.

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

                                  Простите, или я не понял, или вы не раскрыли мысль из начала статьи — "для воспроизведения 16 битных записей начали применять 18 и даже 20 битные цифро-аналоговые преобразователи". Зачем повышать разрядность ЦАП, если передискретизация позволяет, напротив, обойтись меньшей разрядностью (вплоть до "однобитных" дельта-сигма, которые тут уже упоминали)?
                                  Или маркетинг в том, что взяли 16-битный ЦАП на 176 кГц и стали продавать, как 18-битный?

                                    +1
                                    Тоже хотел задать подобный вопрос, но по обсуждению ниже: «Только увеличение количества сэмплов даёт возможность повысить разрядность ЦАП, иначе эта операция просто не имеет смысла.», фактически все распинания автора про разрядность не имеют смысла, стоило говорить про 176КГц, для полного раскрытия потенциала которых требуется прибавить хотя бы пару бит, я — возмущён стилем изложения, если не сказать больше.
                                    0
                                    Вы правы, действительно непрозрачно получилось.
                                    Подправил в статье.
                                    Смысл в том, что добавляя два лишних сэмпла мы изменяем разрядность существующих, прибавляем два младших бита, заполняя их нулями. В результате процесса фильтрации «промежуточные» сэмплы «сгладят» переходы между исходными.
                                    Если бы мы попытались тупо прибавить разрядность, не повысив частоту сэмплирования эта операция была бы бессмысленной.
                                      0

                                      Ну да, результат промежуточных вычислений будет иметь больше 16 бит. Но непонятно, почему это требует повышения разрядности ЦАП:


                                      1. При тупом отбрасывании младших бит мы всё равно получаем выигрыш (кто делал subpixeling при рисовании во времена CGA-VGA — поймёт: наклонную линию можно сместить на долю пиксела даже без anti-aliasing).
                                      2. Отброшенные биты необязательно терять — их можно подмешать к сигналу последующих отсчётов. Вроде в те годы алгоритм Флойда-Стейнберга был уже широко распространён в компьютерной графике, и поступить так же — естественно.
                                        Т.е. вроде бы нет причин повышать разрядность АЦП, а можно и вообще понизить (как я понимаю, в итоге к этому и пришли, но это уже совсем другая история).
                                        0
                                        Тут пожалуй связь обратная.
                                        Только увеличение количества сэмплов даёт возможность повысить разрядность ЦАП, иначе эта операция просто не имеет смысла.
                                        Повысив разрядность ЦАП можно сделать интерполяцию между существующими точками — собственно именно эту операцию и выполняет фильтр. Теоретически разрядность АЦП можно и не повышать, но тогда и интерполяция будет грубее.
                                        Да, про сигма дельта АЦП — совершенно другая история.
                                          0
                                          Возможно тут ещё причина в том, что упрощается аппаратная реализация цифрового фильтра при одновременном увеличении частоты и разрядности по амплитуде. Если кто то из крупных специалистов в области ЦОС подскажет буду благодарен.
                                            +1
                                            Мне кажется, что поскольку коэффициенты в импульсном отклике цифрового фильтра явно не будут целочисленными, то для представления промежуточных вычислений и выходного сигнала фильтра потребуется больше разрядов. Возможно, что до ЦАПа «тащить» все разряды и не сто́ит, но ЦАП с бо́льшим числом бит — не такая уж сложная и дорогая штука, как, например, АЦП, так что, может, даже это хорошо — уменьшить шумы квантования за счёт увеличения числа бит. Вытянет такой увеличенный динамический диапазон после ЦАПа аналоговый усилитель или нет — это уже другой вопрос…
                                        0
                                        А что делает SHA section на последнем рисунке? Я так понял, что она занимается задержкой сигнала, чтобы уменьшить фазовый сдвиг между правым и левым каналом, т.к. АЦП работают по очереди. Правильно?

                                        И с рисунком D как-то не прозрачно. Понятно, что у сигнала с вставленными нулевыми семплами получится такой спектр, но почему зеркалки (images) считаются от 88кГц, а не от 176? Хоть этот момент особой роли и не играет, но интересно.
                                          0
                                          Честно скажу — не знаю ответа на эти вопросы. Возможно кто то из читателей подскажет.
                                            0
                                            Про SHA (Sample-and-Hold-Amplifier) — правильно: восстанавливает синхронность дискретизации обоих каналов. Про рисунок D: вообще, aliases («зеркалки») — это то, что появляется от половины частоты дискретизации и дальше…
                                            0
                                            Небольшое уточнение по грамматике.
                                            Законченные аудиофилы теперь могут ворчать о том, какой крутой звук был у старых аппаратов с аналоговыми фильтрами пока всё не испортила цифра и охотится за винтажной техникой.
                                            Аудиофилы что могут делаТЬ? ОхотиТЬся.
                                              0
                                              принимается, а вообще аудиофилы на что угодно способны :)
                                              +4
                                              Разрешите продемонстрировать более наглядно.

                                              Дан сигнал с частотой дискретизации 4кГц (зелёный — во временном домене, синий — в частотном — АЧХ):



                                              Увеличиваем частоту дискретизации до 16кГц, для чего добавляем по 3 промежуточных нулевых отсчёта:



                                              Отфильтровываем гармоники фильтром нижних частот от 2 кГц (так как их не было в исходном сигнале) и получаем



                                              Профит.
                                                0
                                                Спасибо, красиво получилось.
                                                  0
                                                  Восхитительно. Я правильно понимаю, что такая операция мене затратная, чем синк интерполяция?
                                                    0
                                                    Похоже что в мире цифры да. Ведь линейно кусочная интерполяция далеко не самый лучший вариант, она породит новые гармоники, а более сложные виды интерполяции проще за счёт фильтров реализовать.
                                                      0
                                                      Чисто математически это одно и тоже, поскольку sinc в теореме Котельникова как раз и играет роль идеального фильтра низких частот с линейной фазой. Разница только в реализации — программно FIR-фильтрацию эффективнее делать через FFT, в железе — линейной свёрткой, но используя специальную архитектуру для распараллеливания вычислений. Аналоговыми (IIR) фильтрами высокого порядка тоже можно получить приемлемые результаты, но они фазу вращают. В некоторых случаях используют гибридные решения, когда FIR-ом компенсируют фазовые сдвиги от IIR.
                                                      0
                                                      Просветите не специалиста? ;)

                                                      Первоначальная цепочка такая:
                                                      1) Живой звук -> АЦП(16бит, 44.1 КГц) -> CD
                                                      2) CD -> 16бит -> Микроконтроллер -> ЦАП(16бит, 44.1 КГц) -> восстановленный звук

                                                      После апгрейда:
                                                      2) CD -> 16бит -> Микроконтроллер + (Некий фильтр преобразующий 16бит в 18, 44.1 КГц в 44.1*4) -> ЦАП(18бит, 44.1*4 КГц) -> восстановленный звук

                                                      Т.е. в апгрейде мы всего лишь:
                                                      1. Поставили более дорогой ЦАП (с повышенной частотой дискретизации и разрядностью)
                                                      2. За счет придумывания(интерполирования) отсутствующих семплов на шкале времени CD — увеличили кол-во воспроизводимых семплов.
                                                      Верно?

                                                      Тогда, внимание, вопрос:
                                                      1. А действительно ли мы улучшили качество звука, добавив семплы, которые в оригинале (живом звуке) могли отличаться от тех, которые мы придумали(интерполировали)? Ведь, то что мы записали с частотой 44.1 КГц — было реально зафиксировано микрофоном, а то что было между записанными семплами нам не известно.

                                                      2. На сколько далеко наша фантазия (прошу прощения, интерполяция :) может нас завести? Т.е. теоретически, мы можем интерполировать и 8битный звук и 4х…

                                                      3. И о каком таком повышении качества мы говорим?
                                                      Для человека средний порог частоты воспринимаемого звука 20 кГц, мы воспроизводим с частотой 44.1 КГц — есть ли смысл в дальнейшем увеличении?.. Повышение точности воспроизведения на 2 разряда — единственное, что имеет отношение к реальному улучшению качества, хорошо, а кто-нибудь знает сколько разрядов может различать человеческое ухо? ;)
                                                        0
                                                        1. А действительно ли мы улучшили качество звука, добавив семплы, которые в оригинале (живом звуке) могли отличаться от тех, которые мы придумали(интерполировали)?
                                                        В оригинале (живом звуке) никаких семплов нет, потому что он непрерывный, а не дискретный. Мы не улучшаем качество звука как таковое, мы снижаем уровень шумов.

                                                        Ведь, то что мы записали с частотой 44.1 КГц — было реально зафиксировано микрофоном, а то что было между записанными семплами нам не известно.
                                                        Известно согласно теореме Котельникова или Шеннона. Сигнал перед дискретизацией обязательно фильтруется, причём с некоторым запасом. Более того, чувствительность микрофонов, используемых для записи, редко превышает 15кГц.

                                                        2. На сколько далеко наша фантазия (прошу прощения, интерполяция :) может нас завести? Т.е. теоретически, мы можем интерполировать и 8битный звук и 4х…
                                                        Битность мы не интерполируем, т.к. шумы квантования удалению не подлежат, только маскировке. А частоту дискретизации можно увеличивать хоть до бесконечности.

                                                        Для человека средний порог частоты воспринимаемого звука 20 кГц, мы воспроизводим с частотой 44.1 КГц — есть ли смысл в дальнейшем увеличении?
                                                        Это вопрос снижения погрешности при восстановлении исходного непрерывного сигнала, а не человеческой чувствительности.

                                                        а кто-нибудь знает сколько разрядов может различать человеческое ухо? ;)
                                                        Ухо отличает не разряды, а перепад в децибелах. Разряды определяют шумы квантования. По поводу чувствительности — множество научных статей можно найти при желании как-то так.
                                                          0
                                                          «В оригинале (живом звуке) никаких семплов нет, потому что он непрерывный, а не дискретный. Мы не улучшаем качество звука как таковое, мы снижаем уровень шумов.»

                                                          Если звук считать точками амплитуд во времени (именно это имелось в виду под семплами), то не совсем понятна формулировка «Мы не улучшаем качество звука как таковое, мы снижаем уровень шумов».
                                                          По факту, мы на графике время/текущая_амплитуда создаем новые (интерполированные) точки. А потом наш ЦАП пытается этот график воспроизвести в реальный звук. На мой взгляд, качество воспроизводимого звука — это то, насколько точно он соответствует оригиналу (живому звуку).

                                                          «Известно согласно теореме Котельникова или Шеннона.»
                                                          — Да, похоже по этой теореме, если мы записали звук с необходимой минимальной частотой дискретизации, то можем сгенерировать промежуточные точки в любом количестве.

                                                          «Битность мы не интерполируем, т.к. шумы квантования удалению не подлежат, только маскировке.»
                                                          — Но ведь мы, преобразуем 16бит в 18бит, именно для того чтобы промежуточные точки по амплитуде могли более точно отобразиться на ЦАП. Или я не прав?

                                                          «Это вопрос снижения погрешности при восстановлении исходного непрерывного сигнала, а не человеческой чувствительности.»
                                                          — Так ведь смысл как раз таки в том, зачем снижать погрешность, если ее человек и так уже не чувствует?

                                                          «Ухо отличает не разряды, а перепад в децибелах. Разряды определяют шумы квантования. „
                                                          — Ну почему же, разрядность уха человека (его чувствительность к звукам по амплитуде) можно было бы посчитать (грубо конечно). Если бы мы знали минимальное изменение амплитуды которое различает человек и максимальное значение амплитуды которое человек может слышать.
                                                          А что вы называете шумом квантования?

                                                            0
                                                            Тут утверждается, что дискретность уха в один момент времени не превышает 5 бит, а 16 с головой покрывает весь динамический диапазон уха: https://geektimes.ru/company/audiomania/blog/246304/
                                                              0
                                                              Спасибо, как раз то, о чем я спрашивал.
                                                              Собственно, это подтверждает мнение, что увеличение интерполированных точек, повышение частоты дискретизации и разрядности на ЦАП не влияет на качество звука воспринимаемое человеком, ибо ЦАП(16бит, 44.1 КГц) достаточно и даже с большим запасом.

                                                              Получается все эти «улучшения качества» с точки зрения человека воспроизводящего звук с CD — не более чем маркетинговый трюк…
                                                                +1
                                                                Всё не так просто. Маркетинг в 192/24 действительно имеет место быть. 44.1/16 достаточно, если он воспроизводится идеально. А вы возьмите осциллограф и посмотрите, что ваша звуковая карта выдаёт на частот 10кГц.
                                                                  0
                                                                  Он не может воспроизводиться идеально, во всяком случае на сложном сигнале. Даже ресемпл не поможет.
                                                                  Не случайно даже во времена CD профессиональная аппаратура поддерживала формат 48/16 плюс ресмпл до 18-20 бит. Видимо этого уже достаточно. В большинстве случаев.
                                                        0
                                                        Прекрасные графики, но у меня вопрос дилетанта:
                                                        Добавленные нули, это фактически расширение спектра в этих местах до бесконечности, на резком перепаде амплитуды, что должно восприниматься как щелчки. Дальнейшая фильтрация, убирает все лишнее, что по графику должно выравнивать эти провалы, фактически интерполируя исходный сигнал. Однако фильтровать полезный сигнал мы не можем, поэтому ширина фильтра будет 20 КГц, соотвественно вместо нулей в итоге должны получиться не гладенькие участки плавно соединящие изначальные точки квантизации а биения с частотой до 20 КГц включительно, можете показать тот же график в увеличенном виде, и с фильтром на 44КГц, а не 20КГц?
                                                          0
                                                          Добавленные нули, это фактически расширение спектра в этих местах до бесконечности
                                                          Спектр дискретного сигнала ограничен по определению.

                                                          что должно восприниматься как щелчки
                                                          Не должно. В частотном домене «щелчок» — это всплеск в широком диапазоне частот, из чего следует, что для восприятия перепадов амплитуд как щелчков они должны быть достаточно далеко разнесены во времени.

                                                          соотвественно вместо нулей в итоге должны получиться не гладенькие участки плавно соединящие изначальные точки квантизации а биения с частотой до 20 КГц включительно, можете показать тот же график в увеличенном виде

                                                          Линии между точками я нарисовал сам, и это тоже не совсем корректно, потому правильнее было бы интерполировать их sinc-ом, но на небольшом масштабе это не принципиально, поскольку разницы не видно. Соответственно и масштаб графика увеличивать нет смысла.

                                                          и с фильтром на 44КГц, а не 20КГц
                                                          С моим примером эти частоты не пересекаются.
                                                            0
                                                            Ладно, я понял, что эту статью можно забыть, мне такие рано ещё читать.
                                                        0
                                                        воспроизведения дисков формата Аудио CD в начале тысячелетия. Именно тогда для воспроизведения 16 битных записей начали применять 18 и даже 20 битные цифро-аналоговые преобразователи


                                                        Первый 20-битный цап это AD5791 и представлен он в 2010-м году. Так что в начале тысячелетия не могли начать применять 20-битные цапы.

                                                        И по поводу «теоремы Нейквиста». Во-первых на русском языке Nyquist всегда был Найквистом. А во-вторых «Nyquist–Shannon theorem» на русском языке звучит как «теорема Котельникова-Шеннона», или просто «теорема Котельникова». Вот такие загогулины при переводе.
                                                          0

                                                          2010-й год — это всего лишь 0,01 от тысячелетия. И даже 2100-й год всё ещё будет началом тысячелетия :)

                                                            0
                                                            Первый 20-битный цап это AD5791 и представлен он в 2010-м году.

                                                            А это тогда что?
                                                            The PCM1702 is a precision 20-bit digital-to-analog
                                                            converter with ultra-low distortion (–96dB typ with a
                                                            full scale output).

                                                            http://www.ti.com/lit/ds/symlink/pcm1702.pdf
                                                            +3
                                                            А во-вторых «Nyquist–Shannon theorem» на русском языке звучит как «теорема Котельникова-Шеннона»,

                                                            да, да я в курсе что Россия — Родина Слонов
                                                            Первый 20-битный цап это AD5791 и представлен он в 2010-м году.

                                                              –1
                                                              Конечно-конечно, ES9018 и PCM1795 — 32 битные, в айфоне стоит 24-битный цап, а на многих картриджах для NES было по 9999 игр. Всё так.
                                                                +1
                                                                Вы считаете, что дельта-сигма это не настояцие ЦАПы?
                                                                Например набор микросхем, включающий «однобитный» TDA1547, реализующий 20-битное ЦАП в 91 году был точно. http://www.lampizator.eu/lampizator/LINKS%20AND%20DOWNLOADS/DATAMINING/tda1547.pdf
                                                                Есть ещё обзор по ЦАПАм в хайэнде http://www.dutchaudioclassics.nl/the_evolution_of_dac_the_digital_filter/
                                                                  +1
                                                                  Почему не настоящие? У меня сейчас играет ЦАП который может дельта-сигму на 11,2 Мгц. Вполне себе ЦАП.

                                                                  Из вашего даташита (THD + N)/S от -96 до -101 дб.
                                                                  При таких параметрах он не может выдавать больше чем 16 бит информации.

                                                                  И, раз мы вспоминали Найквиста, шум Джонсона-Найквиста ограничивает теоретический предел ЦАПа в ≈27 бит при комнатной температуре на частоте 20 Кгц.

                                                                  Ещё раз повторю, 32-битный цап имеет такое же отношение к реальности как картриджи на 9999 игр.
                                                                    0
                                                                    При таких параметрах он не может выдавать больше чем 16 бит информации.

                                                                    Но от этого он не перестаёт быть 20 битным. Есть такая весчь как эффективная разрядность. И в данном случае эти 16 бит эффективной разрядности прекрасно согласуются с 16 битами, получаемыми с СD.
                                                                      0
                                                                      1 бит на входе, не больше 16 бит информации на выходе. В каком месте он 20-битный?

                                                                      эти 16 бит эффективной разрядности

                                                                      Я бы не стал так спешить. «не больше 16 бит» не значит что их таки 16.
                                                                        0
                                                                        я специально отметил «набор микросхем». Сам ЦАП однобитный. Остальное реализуется ещё парочкой. А 20 бит (в даташите про них есть) там нужны ещё для маскирования цифрового шума (noise shaping). Он более неприятен человеческому уху ибо это просто ошибка округления. И зависит от сигнала. И самый простой способ с ним бороться — утопить его в собственных шумах аналоговой части подняв разрядность. Аудиотехника — достаточно специфическая область. Народ прекрасно слушает свою музыку через ламповые усилители с КГ под 10%. Но, по вашему им в таком случае достаточно 6-8 битного ЦАП? Неет. Искажения ламповых усилителей не вызывают такого дискомфорта, как «цифровой шум» Это как с градиентом на экране. Монитор может быть не калиброван, но это фигня по стравнению со ступеньками на градиенте из-за «цифрового шума»
                                                                  0
                                                                  А сколько в этих ЦАПах реально используется бит? Сколько бит бесполезны из-за искажений аудиотракта типа шумов и т.п.? Сильно повезет, если в айфоне полезными окажутся хотя бы 14-16 бит ЦАПа.
                                                                  +1
                                                                  Дело не в слонах, а в том, что над этой проблемой в то время реально работали независимо несколько человек. Независимо — потому что это было слишком узкоспециализировано, а то и секретно. Даже в англоязычной Вики упоминается, что Найквист выдвинул теорему, а Шеннон и Котельников развили и доказали теорию. Уиттекеры же доказали чисто математически. Каждый работал несколько в отличном направлении, но вот в этом краеугольном месте вынужденно пересеклись.
                                                                    0
                                                                    В прошлом веке, как и позапрошлом очень много исследований велось в рамках государственных околовоенных программ. Правда секретность больше физиков касалась, чем математиков.
                                                                  +2

                                                                  Quantization и теорема Найквиста всё же, а не Нейквиста. И ещё «CD диск» — тавтология. Как и digital-to-analog DAC. За статью спасибо :-)

                                                                    –1
                                                                    Quantization и теорема Найквиста всё же

                                                                    Сдаюсь, исправил.
                                                                    0
                                                                    Статейка, действительно о делах дней давно минувших, так-что мне невольно вспомнилась моя первая DAW — CreamWare tripleDAT это была та ещё «песочница», большинство покупателей стремилось от неё избавиться дабы не распугать со студии всех клиентов, а правда была лишь в том, что фильтров на плате не было :-) что для музыкантов это было полной засадой.

                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                    Самое читаемое