Непрерывное время линейный эквалайзер (CTLE) или худой фильтр
serdes.CTLE
Система object™ применяет линейный худой фильтр, чтобы компенсировать входной сигнал выборки выборкой или аналитически обработать входной сигнал вектора импульсной характеристики. Процесс эквализации уменьшает искажения, следующие из каналов с потерями. Фильтр является действительным 2D полюсом с одним нулем (1z/2p) фильтр, если вы не задаете матрицу полюсного нуля усиления (GPZ).
Компенсировать сгенерированный модулированный сигнал с помощью serdes.CTLE
:
Создайте serdes.CTLE
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?
возвращает объект CTLE, который изменяет входную форму волны согласно нулевой передаточной функции полюса, заданной в объекте.ctle
= serdes.CTLE
свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Незаданные свойства имеют значения по умолчанию.ctle
= serdes.CTLE(Name
,Value
)
ctle = serdes.CTLE('ACGain',5)
возвращает объект CTLE с усилением в худом наборе частоты к 5 дБ.Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.
Mode
— Рабочий режим CTLE
(значение по умолчанию) | 0
| 1
Рабочий режим CTLE в виде 0
, 1, или
2
режим
определяет, исключен ли CTLE или нет. Если CTLE не исключен, то Mode
также определяет, какая передаточная функция применяется к входной форме волны.
Значение режима | Режим CTLE | Операция CTLE |
---|---|---|
0
| off | serdes.CTLE исключен и входная форма волны остается неизменной. |
1
| фиксированный | serdes.CTLE применяет передаточную функцию CTLE, как задано ConfigSelect к входной форме волны. |
2
| адаптироваться | Если WaveType установлен в 'Impulse' или 'Waveform' , затем подсистема Init вызывает к serdes.CTLE . serdes.CTLE определяет передаточную функцию CTLE, чтобы максимизировать показатель производительности, как задано PerformanceCriteria свойство и применяет передаточную функцию к входной форме волны для симуляции области времени. Эта оптимизированная передаточная функция используется CTLE для целой симуляции области времени. Для получения дополнительной информации о подсистеме Init, смотрите Статистический анализ в Системах SerDes |
Если WaveType выбран как 'Sample' , затем serdes.CTLE действует в фиксированном режиме. |
Типы данных: double
ConfigSelect
— Выберите который член семейства передаточных функций применяться в фиксированном режиме
(значение по умолчанию) | действительный целочисленный скалярВыберите который член семейства передаточных функций применяться в фиксированном режиме в виде действительного целочисленного скаляра.
Пример: ctle = serdes.CTLE('ConfigSelect',5,'Specification','DC Gain and Peaking Gain')
возвращает объект CTLE, который выбирает 6-й элемент DCGain
и PeakingGain
вектор, чтобы примениться к передаточной функции фильтра.
Типы данных: double
Specification
— Введите спецификацию для ответа CTLE'DC Gain and Peaking Gain'
(значение по умолчанию) | 'DC Gain and AC Gain'
| 'AC Gain and Peaking Gain'
| 'GPZ Matrix'
Задает, какие входные параметры будут использоваться для семейства передаточных функций CTLE. Существует пять входных параметров, которые могут использоваться, чтобы задать семейство передаточных функций CTLE: DCGain, PeakingGain, ACGain, PeakingFrequency и GPZ.
Можно задать ответ CTLE от любых двух из трех усилений и худой частоты, или можно задать матрицу GPZ для CTLE.
Выберите 'DC Gain and Peaking Gain'
задавать ответ CTLE от DCGain
, PeakingGain
, и PeakingFrequency
.
'DC Gain and AC Gain'
задавать ответ CTLE от DCGain
, ACGain
, и PeakingFrequency
.
'AC Gain and Peaking Gain'
задавать ответ CTLE от ACGain
, PeakingGain
, и PeakingFrequency
.
'GPZ Matrix'
задавать ответ CTLE от GPZ
.
Типы данных: char
PeakingFrequency
— Аппроксимированная частота, на которой достигает максимума передаточная функция CTLE5e9
(значение по умолчанию) | скаляр | векторАппроксимированная частота, на которой передаточная функция CTLE достигает максимума в величине в виде скаляра или вектора в Гц. Если задано как скаляр, это преобразовано, чтобы совпадать с длиной ACGain
, DCGain
, и PeakingGain
скалярным расширением. Если задано как вектор, то длина вектора должна совпасть с векторами в ACGain
, DCGain
, и PeakingGain
.
Типы данных: double
DCGain
— Получите на нулевой частоте
(значение по умолчанию) | скаляр | векторПолучите на нулевой частоте для передаточной функции CTLE в виде скаляра или вектора в дБ. Если задано как скаляр, это преобразовано, чтобы совпадать с длиной PeakingFrequency
, ACGain
, и PeakingGain
скалярным расширением. Если задано как вектор, то длина вектора должна совпасть с векторами в PeakingFrequency
, ACGain
, и PeakingGain
.
Типы данных: double
PeakingGain
— Различие между усилением переменного и постоянного тока
(значение по умолчанию) | скаляр | векторХудое усиление в виде вектора в дБ. Вот в чем разница между ACGain
и DCGain
для передаточной функции CTLE. Если задано как скаляр, это преобразовано, чтобы совпадать с длиной PeakingFrequency
, ACGain
, и DCGain
скалярным расширением. Если задано как вектор, то длина вектора должна совпасть с векторами в PeakingFrequency
, ACGain
, и DCGain
.
Типы данных: double
ACGain
— Получите на худой частоте
| скаляр | векторПолучите на худой частоте для передаточной функции CTLE в виде скаляра или вектора в дБ. Если задано как скаляр, это преобразовано, чтобы совпадать с длиной PeakingFrequency
, DCGain
, и PeakingGain
скалярным расширением. Если задано как вектор, то длина вектора должна совпасть с векторами в PeakingFrequency
, DCGain
, и PeakingGain
.
Типы данных: double
GPZ
— Получите нуль полюсаПолучите нуль полюса в виде матрицы. GPZ
явным образом задает семейство передаточных функций CTLE путем определения DCGain
(дБ) в первом столбце и затем орудует шестами и нули в переменных столбцах. Полюса и нули заданы в Гц. Дополнительные строки в матрице задают дополнительные настройки, которые могут быть выбраны с помощью ConfigSelect
.
Никакие повторные полюса или нули не позволены. Комплексные полюса или нули должны иметь, спрягается. Количество полюсов должно быть больше количества нулей для устойчивости системы. Полюса и нули 0 Гц проигнорированы и могут использоваться к нулевой клавиатуре матрица.
Типы данных: double
Поддержка комплексного числа: Да
SymbolTime
— Время односимвольной длительности100e-12
(значение по умолчанию) | действительный скалярВремя односимвольной длительности в виде действительного скаляра в s.
Типы данных: double
SampleInterval
— Универсальный временной шаг формы волны6.25e-12
(значение по умолчанию) | действительный скалярУниверсальный временной шаг формы волны в виде действительного скаляра в s.
Типы данных: double
WaveType
— Введите форму типа волны'Sample'
(значение по умолчанию) | 'Impulse'
| 'Waveform'
Введите форму типа волны:
'Sample'
— Входной сигнал выборки выборкой.
'Impulse'
— Входной сигнал импульсной характеристики.
'Waveform'
— Тип формы волны комбинации двоичных разрядов входного сигнала, такого как псевдослучайная двоичная последовательность (PRBS).
Типы данных: char
PerformanceCriteria
— Критерий используется для оптимизации CTLESNR
(значение по умолчанию) | maxEyeHeight
| maxMeanEyeHeight
| maxCOM
| eyeAreas
| eyeWidth
| centerEyeHeight
| centerMeanEyeHeight
| centerCOM
Критерий использовал для оптимизации CTLE когда serdes.CTLE
Mode
набор должен адаптироваться. Критерии эффективности вычисляются с помощью optPulseMetric
функция.
Типы данных: char
FilterMethod
— Метод, чтобы вычислить область времени фильтрует коэффициентыPartialFraction
(значение по умолчанию) | Cascaded
Метод, чтобы вычислить рациональную область времени передаточной функции фильтрует коэффициенты:
PartialFraction
отфильтруйте использование метода расширение элементарной дроби полюсов и нулей, чтобы непосредственно вычислить коэффициенты фильтра.
Cascaded
отфильтруйте использование метода подход, который располагает каскадом вместе многочисленные более короткие фильтры, которые коллективно представляют заданное поведение. Это приводит к более устойчивому фильтру.
x
— Введите сгенерированный модулированный сигналВведите сгенерированный модулированный сигнал. Если WaveType
установлен в 'Sample'
, затем входной сигнал является сигналом выборки выборкой, заданным как скаляры. Если WaveType
установлен в 'Impulse'
, затем входной сигнал является сигналом вектора импульсной характеристики.
y
— Equalized CTLE выходКомпенсируемый CTLE форма волны выхода. Если входной сигнал является сигналом выборки выборкой, заданным как скаляры, то выход является также скаляром. Если входной сигнал является сигналом вектора импульсной характеристики, то выход является также вектором.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
В этом примере показано, как обработать импульсную характеристику канала с помощью serdes.CTLE
Система object™.
Используйте время символа 100
PS и 16
выборки на символ. Канал имеет 16
потеря дБ. Худой частотой является 11
GHz.
SymbolTime = 100e-12; SamplesPerSymbol = 16; dbloss = 16; DCGain = 0:-1:-26; PeakingGain = 0:26; PeakingFrequency = 11e9;
Вычислите демонстрационный интервал.
dt = SymbolTime/SamplesPerSymbol;
Создайте объект CTLE. Объект адаптивно применяет оптимальную передаточную функцию для лучшей высоты глаза, открывающейся к входной импульсной характеристике.
CTLE1 = serdes.CTLE('SymbolTime',SymbolTime,'SampleInterval',dt,... 'Mode',2,'WaveType','Impulse',... 'DCGain',DCGain,'PeakingGain',PeakingGain,... 'PeakingFrequency',PeakingFrequency);
Создайте импульсную характеристику канала.
channel = serdes.ChannelLoss('Loss',dbloss,'dt',dt,... 'TargetFrequency',1/SymbolTime/2); impulseIn = channel.impulse;
Обработайте импульсную характеристику с CTLE.
[impulseOut, Config] = CTLE1(impulseIn);
Отобразите адаптированную настройку.
fprintf('Adapted CTLE Configuration Selection is %g \n',Config)
Adapted CTLE Configuration Selection is 17
Преобразуйте импульсные характеристики, чтобы пульсировать, форма волны и глазковая диаграмма.
ord = 6; dataPattern = prbs(ord,2^ord-1)-0.5; pulseIn = impulse2pulse(impulseIn,SamplesPerSymbol,dt); waveIn = pulse2wave(pulseIn,dataPattern,SamplesPerSymbol); eyeIn = reshape(waveIn,SamplesPerSymbol,[]); pulseOut = impulse2pulse(impulseOut,SamplesPerSymbol,dt); waveOut = pulse2wave(pulseOut,dataPattern,SamplesPerSymbol); eyeOut = reshape(waveOut,SamplesPerSymbol,[]);
Создайте временные векторы.
t = dt*(0:length(pulseOut)-1)/SymbolTime; teye = t(1:SamplesPerSymbol); t2 = dt*(0:length(waveOut)-1)/SymbolTime;
Постройте импульсное сравнение ответа, сравнение формы волны, вход, и выведите глазковые диаграммы.
figure plot(t,pulseIn,t,pulseOut) legend('Input','Output') title('Pulse Response Comparison') xlabel('Symbol Times'),ylabel('Voltage') grid on axis([47 60 -0.1 0.4])
figure plot(t2,waveIn,t2,waveOut) legend('Input','Output') title('Waveform Comparison') xlabel('Symbol Times'),ylabel('Voltage') grid on
figure subplot(211),plot(teye,eyeIn,'b') ax = axis; xlabel('Symbol Times'),ylabel('Voltage') grid on title('Input Eye Diagram') subplot(212),plot(teye,eyeOut,'b') axis(ax); xlabel('Symbol Times'),ylabel('Voltage') grid on title('Output Eye Diagram')
В этом примере показано, как обработать импульсную характеристику канала одна выборка во время с помощью serdes.
CTLE
Система object™.
Используйте время символа 100
PS и 16
выборки на символ. Канал имеет 16
потеря дБ. Худой частотой является 11
GHz. Выберите 12
- th заказывают псевдослучайную двоичную последовательность (PRBS) и симулируют первый 500
символы.
SymbolTime = 100e-12; SamplesPerSymbol = 16; dbloss = 16; DCGain = 0:-1:-26; PeakingGain = 0:26; PeakingFrequency = 11e9; ConfigSelect = 15; prbsOrder = 12; M = 500;
Вычислите демонстрационный интервал.
dt = SymbolTime/SamplesPerSymbol;
Создайте объект CTLE. Поскольку мы обрабатываем канал одна выборка за один раз, входной формой волны является '
sample
'
ввод. Объект адаптивно применяет оптимальную передаточную функцию фильтра для лучшего открытия высоты глаза.
CTLE = serdes.CTLE('SymbolTime',SymbolTime,'SampleInterval',dt,... 'Mode',2,'WaveType','Sample',... 'DCGain',DCGain,'PeakingGain',PeakingGain,... 'PeakingFrequency',PeakingFrequency,... 'ConfigSelect',ConfigSelect);
Создайте импульсную характеристику канала.
channel = serdes.ChannelLoss('Loss',dbloss,'dt',dt,... 'TargetFrequency',1/SymbolTime/2);
Инициализируйте генератор PRBS.
[dataBit,prbsSeed] = prbs(prbsOrder,1);
Цикл через один символ за один раз.
inSymbol = zeros(SamplesPerSymbol,1); outWave = zeros(SamplesPerSymbol*M,1); for ii = 1:M % Get new symbol [dataBit,prbsSeed] = prbs(prbsOrder,1,prbsSeed); inSymbol(1:SamplesPerSymbol) = dataBit-0.5; % Convolve input waveform with channel y = channel(inSymbol); % Process one sample at a time through the CTLE for jj = 1:SamplesPerSymbol outWave((ii-1)*SamplesPerSymbol+jj) = CTLE(y(jj)); end end
После усечения первых 75 символов, которые позволят эквализации, использованию функция, изменяются на массиве символов, чтобы создать глазковую диаграмму.
foldedEye = reshape(outWave(75*SamplesPerSymbol+1:M*SamplesPerSymbol),SamplesPerSymbol,[]);
t = dt*(0:SamplesPerSymbol-1);
figure,plot(t,foldedEye,'b');
Copyright 2019 The MathWorks, Inc.
Указания и ограничения по применению:
IBIS-AMI codegen не поддерживается в MAC.
AGC | serdes.AGC
| CTLE | DFECDR | serdes.DFECDR | SaturatingAmplifier | optPulseMetric
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.