exponenta event banner

Анализ простого АЦП с нарушениями

В этом примере показано, как реализовать базовый АЦП с использованием блока удержания нулевого порядка в качестве дискретизатора. Этот простой АЦП выделяет некоторые из типичных нарушений, введенных в аналого-цифровых преобразователях, таких как дрожание апертуры, нелинейность, квантование и насыщенность. В этом примере показано, как измерить влияние таких нарушений с помощью блока Spectrum Analyzer и блока ADC AC Measurement из Blockset™ смешанного сигнала. Для лучшего приближения к реальной производительности можно индивидуально включить в модели нарушения.

model = 'MSADCImpairments';
open_system(model)

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

set_param([model '/Aperture Jitter'],'sw','1');
set_param([model '/Non Linearity'],'sw','0');
set_param([model '/Quantization and Saturation'],'sw','0');
set_param([model '/Sine Wave'],'Frequency', '2*pi*[47 53]*1e6');

Смоделировать модель и наблюдать ожидаемый чистый выходной спектр АЦП.

sim(model);

Эффект дрожания апертуры

Установите первый переключатель в нижнее положение. Блок переменной задержки задерживает выборку сигнала на величину на своем входе td. Блок источника шума генерирует однородную случайную переменную, которая фильтруется низкочастотным фильтром блоком спектра дрожания перед тем, как он поступает на вход td в переменную задержку. Используйте формованное равномерное распределение шума для представления дрожания. Обратите внимание, что в этой модели часы АЦП задаются в идеальном блоке удержания нулевого порядка и равны 1/Fs, где Fs - переменная MATLAB ®, определенная в обратном вызове инициализации модели и равная 1.024 ГГц.

set_param([model '/Aperture Jitter'],'sw','0');

Как и ожидалось, спектр ухудшается из-за наличия дрожания.

sim(model);

Влияние нелинейности

Установите второй переключатель в верхнее положение. Это обеспечивает нелинейность АЦП. Масштабированная гиперболическая касательная функция обеспечивает нелинейность. Его масштабный коэффициент, альфа, определяет величину нелинейности, применяемую танхом к сигналу. По умолчанию альфа 0.01.

set_param([model '/Non Linearity'],'sw','1');

Спектр ухудшается из-за нелинейности по мере формирования гармоник более высокого порядка.

sim(model);

Эффект квантования и насыщения

Установите третий переключатель в верхнее положение, разрешая квантование АЦП и жесткое насыщение.

set_param([model '/Quantization and Saturation'],'sw','1');

Спектр ухудшается из-за эффектов квантования. Уровень шума повышается, как видно в спектре.

sim(model);

Измерения АЦП переменного тока

Используйте блок измерения переменного тока АЦП в Blockset™ смешанного сигнала для измерения характеристик шума АЦП и вычисления эффективного количества битов (ENOB).

Используйте одиночный синусоидальный тональный сигнал в качестве входного сигнала АЦП для измерения других метрик.

bdclose(model);
model = 'MSADCImpairments_AC';
open_system(model);

Ftest = 33/round(2*pi*2^8)*Fs;
set_param([model '/Sine Wave'],'Frequency', '2*pi*Ftest');

scopecfg = get_param([model '/Spectrum Scope'], 'ScopeConfiguration');
scopecfg.DistortionMeasurements.Algorithm = 'Harmonic';
scopecfg.FFTLength = '512';
scopecfg.WindowLength = '512';

sim(model);

Блок измерения апертурного дрожания из Blockset™ смешанного сигнала измеряет среднее дрожание, введенное в сигнал, приблизительно равным 1 ps.

Кроме того, используйте анализатор спектра для измерения:

  • Выходная точка перехвата третьего порядка (OIP3)

  • Отношение сигнал/шум (SNR)

  • Полное гармоническое искажение (THD)

Увеличьте коэффициент альфа, чтобы увеличить нелинейность АЦП и сделать эффекты нелинейности более очевидными поверх нижнего уровня шума. Это только в демонстрационных целях.

alpha = 0.8;

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

set_param([model '/Sine Wave'],'Frequency', '2*pi*[50e6 75e6]');

Чтобы включить измерения искажений в анализаторе спектра, нажмите кнопку «Измерение искажений», как показано на рисунке ниже, и выберите Intermodulation как тип искажения.

scopecfg.DistortionMeasurements.Algorithm = 'Intermodulation';
scopecfg.FFTLength = '4096';
scopecfg.WindowLength = '4096';

sim(model);

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

См. также

| |

Связанные темы