Лаборатория: Фильтровой метод измерения коэффициента гармонических искажений

О коэффициенте нелинейных искажений

В этой статье пойдёт речь об измерении такого параметра элементов аудиотракта, как коэффициент гармонических искажений (Total Harmonic Distortion), с чувствительностью лежащей за пределами возможностей любых коммерчески доступных АЦП/ЦАП.

Базовые термины

Гармонические искажения - это разновидность нелинейных искажений, измеряемая на однотональном входном сигнале.

Нелинейные искажения - это появление в спектре выходного сигнала гармонических компонентов (кратных частот), отсутствующих во входном сигнале.

Гармонические искажения выражаются в процентах (линейная шкала), либо в децибелах (логарифмическая шкала). Большие уровни искажений удобно выражать в процентах, малые — в децибелах.

Между этими шкалами действуют соотношения:
$dB=20\ast\log_{10}\frac{\%}{100}$
$\%=100\ast10^{\frac{dB}{20}}$

Примеры:
1% = -40 dB
0.01% = -80 dB
0.001% = -100 dB
0.0001% = -120 dB
0.0000017783% = -155 dB

Коэффициент гармонических искажений равен отношению среднеквадратичного значения напряжения гармоник к напряжению основного тона.
$Kг_{\%}=100\ast\frac{\sqrt{{U_2}^{2}+{U_3}^{2}+...{U_n}^{2}}}{U_1}$
U1 – напряжение основного тона, U2, U3 … Un – напряжения гармоник.

Эта же формула в децибелах:
$Kг_{dB}=20\ast\log_{10}\frac{\sqrt{10^{\frac{dB_2}{10}}+10^{\frac{dB_3}{10}}+..10^{\frac{dB_n}{10}}}}{10^{\frac{dB_1}{20}}}$

Полосовой фильтр (Band Pass Filter, BPF) – аналоговый фильтр, который выделяет узкую полосу частот (в нашем случае — одну частоту) на которую настроен, подавляя все прочие частоты.

Режекторный фильтр (Band Stop Filter, BSF) – аналоговый фильтр, который подавляет узкую полосу частот (в нашем случае — одну частоту) на которую настроен, не изменяя все прочие частоты.

Схемы измерений

Суть фильтрового метода заключается в том, что с помощью аналоговых фильтров (полосового и режекторного) мы можем разделять основной тон и его гармоники.

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

Допустим, мы хотим измерить КГИ выходного сигнала ЦАПа. Тогда мы выдаём однотональный сигнал через измеряемый ЦАП, затем пропускаем его через режекторный фильтр, который подавляет основной тон на значительную величину (50дБ и более). То что осталось — подаём на вход АЦП и смотрим спектр. Так как основной тон подавлен, гармоники вносимые АЦП (связанные с основным тоном), становятся не значимыми. Перед применением формулы расчёта КГИ, нужно скорректировать уровни спектральных компонентов сигнала на величину обратную АЧХ режекторного фильтра. Т.е. если основной тон подавляется на 50дб, добавляем к нему 50дб, если вторая гармоника усиливается на 5дб — отнимаем от неё 5дб, и так далее.

Чтобы изменить КГИ усилителя — нужно использовать весь набор фильтров. Очищаем созданный ЦАПом сигнал с помощью полосового фильтра, подаём его на усилитель, подавляем основной тон режекторным фильтром, подаём то что осталось на АЦП и смотрим спектр. Поправки вносятся точно так-же, как и в предыдущем случае.

Наше оборудование

У нас есть активные полосовые фильтры на 20 кГц (2 штуки), активный режекторный фильтр на 20 кГц и пассивный режекторный фильтр на 20 кГц с пост-усилителем.

Фото: Наши фильтры
Фото: Наши фильтры
Фото: Наши фильтры

Наши активные фильтры построены на основе сверхлинейного усилительного ядра, с собственным КГИ <= -160 dB. На сегодняшний день мы не готовы выкладывать полные схемы, выложим лишь часть в которой усилительное ядро показано условным блоком. Все остальные детали соответствуют действительности и приложенные к статье модели — считаются в LTSpice.

Схема активного полосового фильтра (упрощённая):

Упрощенная схема активного полосового фильтра

Расчётная АЧХ полосового фильтра:

Расчётная АЧХ полосового фильтра

Вторая гармоника подавлена на -36.4 dB, третья на -41.4 dB.

Если включить два полосовых фильтра последовательно:

Два полосовых фильтра последовательно

Вторая гармоника подавлена на -72.9 dB, третья на -82.8 dB.

Измеренная АЧХ полосовых фильтров в контрольных точках почти полностью совпадает с расчётной (20K = -0.21 dB, 40K = -36.5 dB, 60K = -41.5 dB).

Фильтр построен по топологии Tow-Thomas и требует три усилительных ядра в инвертирующем включении. Такая топология удобнее MFB при больших значениях добротности.

Полосовой фильтр настраивается по одному параметру: частоте. Настраиваем по максимуму сигнала 20К на выходе. Грубая настройка допускается, так как АЧХ не сильно острая.

Схема активного режекторного фильтра (упрощённая):

Упрощенная схема активного режекторного фильтра

Он состоит из входного буфера, полосового фильтра по топологии MFB и разностного усилителя, вычитающего основной тон из входного сигнала. Требуется так-же три усилительных ядра.

Расчётная АЧХ активного режекторного фильтра:

Расчётная АЧХ активного режекторного фильтра

Основной тон подавлен на > 100 dB, вторая гармоника -0.65 dB, третья гармоника -0.22 dB.

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

У нас получилось: 20K = -66.5 dB, 40K = -0.64 dB, 60K = -0.21 dB.

Схема пассивного режекторного фильтра (полная):

Полная схема пассивного режекторного фильтра

Он представляет собой 2-T мост полностью на пассивных компонентах с последующим усилительным звеном с коэффициентом усиления +20 dB.

Расчётная АЧХ пассивного режекторного фильтра:

Расчётная АЧХ пассивного режекторного фильтра

Основной тон подавлен на > 100 dB, вторая гармоника усилена на 6 dB, третья — на 10.67 dB.

Этот фильтр та-же требует очень точной настройки по двум параметрам, вследствие чего практически достижимая глубина подавления заметно меньше теоретической.

У нас получилось: 20K = -69.3 dB, 40K = +5.1 dB, 60K = +9.4 dB.

Учитывая усиление полезного сигнала, эквивалентное подавление основного тона = -74.4 dB, заметно лучше чем у активного. Достоинства пассивного фильтра: отсутствие необходимости в сверхлинейных усилительных элементах и возможность подачи на вход сигналов большой амплитуды. Недостатки — зависимость АЧХ от сопротивления источника сигнала и значительная неравномерность АЧХ в зоне полезного сигнала.

Измерение сигнала ниже уровня шумов

Бытует мнение, что предел измерений слабых сигналов ограничен уровнем шумов нашего АЦП и усилителей перед ним. Но это не касается периодических сигналов, их можно надёжно видеть на уровнях на порядок ниже уровня шумов, если анализировать длительный промежуток сигнала. Шумовое разрешение растёт пропорционально квадратному корню от времени усреднения. Например, увеличив время измерения в 100 раз, можно опустить шумовую полку на 20 дБ.

«На пальцах», это работает так: периодический сигнал в каждом периоде одинаковый, шумы же всегда разные. Если сложить зашумлённый сигнал сам с собой N раз — уровень сигнала вырастет в N раз, а уровень шумов — в $\sqrt{N}$ раз (шумы в разных периодах могут иметь разный знак, поэтому иногда складываются а иногда вычитаются). Отношение сигнал/шум увеличивается $\sqrt{N}$ раз.

Перейдём к практике. Проведём эксперимент, сгенерируем синусоидальный сигнал 20 кГц амплитудой 0.1В генератором сигналов, ослабим его на 120 дБ делителем напряжения и подадим на вход АЦП Lynx Hilo.

Делитель напряжения двухзвенный, чтобы снизить влияние паразитных ёмкостей резисторов и монтажа. Собран на макетной плате из 0.1% тонкоплёночных SMD резисторов размера 0805.

Расчётный уровень сигнала после делителя напряжения = 99.205 нВ, что соответствует уровню -137.85 dBu. Чувствительность входа Hilo выставим на +18 dBu. Итого уровень сигнала на входе АЦП: -137.85 dBU - 18 dBu = -155.85 dBFS при заявленном соотношении сигнал/шум входа 118 dB. Очевидно, сигнал находится на 37.85 dB ниже уровня шумов. К слову, предельный динамический диапазон 24х битного АЦП = 146.26 dB (формула $20\ast\log_{10}\left(2^n*\sqrt{\frac{3}{2}}\right)$). Наш сигнал меньше не только уровня шумов, но и минимального шага квантования. Однако попробуем его увидеть.

Анализировать сигнал будем программой SpectraPLUS-SC 5.3.1.2.

Настройки: Sample Rate 192K, 24 bit, mono, FFT size = 4096.

Показан диапазон частот 5-40К, на 20K установлен маркер. Сразу видно что нихрена не видно, одни сплошные шумы.

Теперь увеличим размер FFT до 1048576 (предельный в этой программе). Это увеличит как частотное, так и шумовое разрешение. Cогласно теории это должно отодвинуть шумовую полку на $20\ast\log_{10}\sqrt{\frac{1048576}{4096}} = 24.082dB$

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

Попробуем ещё увеличить шумовое разрешение включив усреднение результата измерений 100 раз.

Шум опустился ниже -160 dB, наш сигнал уверенно виден, а шумы ушли с экрана.


Теперь увеличим интересующую нас область сигнала, показав график в более крупном масштабе:

Хорошо видны как сигнал, так и шум. Не остаётся сомнений что это именно он, а не случайный артефакт измерений.

Как вообще можно увидеть сигнал, который меньше младшего разряда ацп? Если сигнал не зашумлён (шум тоже меньше младшего разряда) — то никак. В зашумлённом сигнале, полезный сигнал подмешиваясь к более сильным шумам, изменяет вероятность появления нолика и единички в младшем разряде, делая его не совсем случайным. На достаточно большом промежутке времени такие статистические отклонения становятся наблюдаемыми.


Данный метод имеет ограничения. Нельзя бесконечно увеличивать время наблюдения чтобы видеть бесконечно слабые сигналы, поскольку любой реальный периодический сигнал повторяется не идеально точно, у него есть фазовый шум и частота со временем немного плывёт. Всё это размывает спектр и уменьшает эффективность накопления. На вышеприведённом графике это выражается в потере 0.2 dB сигнала (видим -156.05, должно быть -155.85). На АЦП с большим чем у Lynx Hilo джиттером, результат будет хуже.

Верификация возможностей измерительного комплекса

Для проверки предела возможностей нашего измерительного комплекса, соберём следующую цепочку:

Между ЦАП и АЦП, в роли которых у нас будут выступать выход и вход Lynx Hilo, включены последовательно два полосовых и один режекторный фильтры. Два полосовых фильтра нужно для того, чтобы более эффективно подавить вторую гармонику сигнала ЦАП. Одного фильтра, давящего вторую гармонику на 36 dB, может оказаться недостаточно, чтобы достичь предела (у ЦАПа ожидаемый уровень THD порядка -110 dB). Режекторного фильтра достаточно одного, т.к. у него глубина подавления основного тона > 60 дб.

Настройки: Sample Rate 192K, 24 bit, mono, FFT size = 1048576.

I/O level = +6 dBV (соответствует 2V RMS, это стандартный уровень сигнала для небалансных выходов музыкальных ЦАПов), использован активный режекторный фильтр.

Та же картинка, но без маркеров, чтобы было виднее сигнал:

Рассмотреть вторую и третью гармоники не удаётся, их уровень меньше -155 и -147 dB соответственно.

Теперь включим усреднение сигнала в 100 раз и сильно увеличим область, где ожидается увидеть вторую гармонику:

Вторая гармоника проявилась на уровне -152 dB, третья не видна.

Внесём поправки на АЧХ режекторного фильтра и получим что предел измерений для сигнала с уровнем +6 dBV (2V RMS) равен по меньшей мере -151.36 dB для второй гармоники и -146.8 для третьей.

Повторим измерения, подав сигнал с уровнем +20 dBu (7.746V RMS), предельно допустимый для активных фильтров:

Вторая гармоника -145.15 dB и появилась заметная третья гармоника -136.15 dB. Предел измерений после внесения поправок: -144.5 и -136 dB.

Повторим измерения для пассивного режекторного фильтра.

Сигнал +6 dBV (2V RMS):

Предел измерений с учётом поправок: -151 и -156 dB.

Сигнал +20 dBu ( 7.746V RMS):

Предел измерений с учётом поправок: -131.4 и -146 dB.

Измерение КГИ входа АЦП Lynx Hilo

Проведём измерение КГИ входа Lynx Hilo, подав на него сигнал 20 кГц очищенный от гармоник двумя полосовыми фильтрами и вычислим КГИ по формуле из начала статьи. Поправок вносить не нужно, т. к. режекторный фильтр не применяется.

Уровень +6 dBV:

$Kг=20\ast\log_{10}\frac{\sqrt{10^{\frac{-126.56}{10}}+10^{\frac{-119.83}{10}}}}{10^{\frac{-1.42}{20}}}=-117.57\ dB$, или 0.0001323%

Уровень +20 dBu:

Кг = -113 dB, или 0.0002234%.

Измерение КГИ выхода ЦАП Lynx Hilo:

Измерим КГИ выхода Lynx Hilo, подав сигнал 20кГц с его выхода через режекторный фильтр на вход. Перед вычислением КГИ, уровни всех гармоник должны быть скорректированы на АЧХ режекторного фильтра. Приступим.

Уровень +6 dBV:

$Kг=20\ast\log_{10}\frac{\sqrt{10^{\frac{-116.21+0.64}{10}}+10^{\frac{-115.11+0.21}{10}}}}{10^{\frac{-68.66+66.5}{20}}}=-110.05\ dB$, или 0.0003144%.

Уровень +20 dBu:

Кг = -109.57 dB, или 0.0003323%.

Измерение КГИ усилителя для наушников SCIBER Enflow

Условия измерения: входной сигнал +0 dBV (1V RMS, соответствующий номинальной чувствительности), подан по небалансному входу, чувствительность входа установлена на 0 dB, ручка громкости в максимальном положении, нагрузка 30 ом. Уровень сигнала на выходе составил 8V RMS, отдаваемая в нагрузку мощность — 2.13Вт.

После внесения всех поправок и вычисления по вышеуказанной формуле, получаем Кг = -120.63 dB, или 0.000093%.

Теперь уменьшим уровень громкости так, чтобы получить выходной сигнал 2V RMS (отдаваемая мощность 133 мВт), что соответствует прослушиванию музыки на средней громкости:

Кг = -123.47 dB, или 0.000067%. Ещё уменьшим громкость, чтобы получить на выходе 0.1V сигнала (прослушивание на малой громкости):

Здесь гармоники не видны, утонули в шумах. Точное значение КГИ измерить не удалось, но оно по крайней мере не хуже, чем -120.68 dB, или 0.000093%

Заключение

В этой статье доказана возможность измерения сверхмалых величин КГИ, за пределами возможностей любых доступных ЦАП и АЦП, а так-же возможность измерения гармоник находящихся ниже уровня шумов. Фильтровой метод может быть применён в широком диапазоне частот, от десятков герц до сотен килогерц. Главным недостатком метода является то, что фильтры делаются на фиксированные частоты. Однако для измерения аудио усилителей наиболее показательным является КГИ на частоте 20кГц, при этом достаточно будет учитывать только вторую гармонику (опционально, третью). КГИ усилительных устройств как правило растёт с увеличением частоты, ввиду уменьшения петлевого усиления.

На этом прощаюсь. Ожидайте статью про измерение интермодуляционных искажений.