Линейный эквалайзер (CTLE) непрерывного времени или пик-фильтр
The serdes.CTLE
Система object™ применяет линейный пик-фильтр для выравнивания входного сигнала дискретизации или для аналитической обработки входного сигнала вектора импульсной характеристики. Процесс эквализации уменьшает искажения, возникающие из-за потерянных каналов. Фильтр является действительным однонулевым двухполюсным (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
- режим работы КТЛ2
(по умолчанию) | 0
| 1
Режим работы КТЛ, заданный как 0
, 1
, или 2
. Mode
определяет, обходится ли CTLE или нет. Если CTLE не обходится, то Mode
также определяет, какая передаточная функция применяется к входу форме волны.
Значение режима | Режим CTLE | Операция CTLE |
---|---|---|
0 | прочь | serdes.CTLE обходится, и вход сигнала остается неизменной. |
1 | фиксированный | serdes.CTLE применяет передаточную функцию CTLE в соответствии с ConfigSelect на вход сигнал. |
2 | приспособиться | Если WaveType установлено в 'Impulse' или 'Waveform' , затем подсистема Init вызывает serdes.CTLE . The serdes.CTLE определяет передаточную функцию CTLE, чтобы максимизировать метрику эффективности, заданную PerformanceCriteria свойство и применяет передаточную функцию к входу сигнала для симуляции временного интервала. Эта оптимизированная передаточная функция используется CTLE для симуляции во всем временном интервале. Для получения дополнительной информации о подсистеме Init, смотрите Статистический анализ в системах SerDes |
Если WaveType выбран как 'Sample' , затем serdes.CTLE работает в фиксированном режиме. |
Типы данных: double
ConfigSelect
- Выберите представитель семейства передаточных функций для применения в фиксированном режиме0
(по умолчанию) | действительный целочисленный скалярВыберите представитель семейства передаточных функций для применения в фиксированном режиме, заданном как действительный целочисленный скаляр.
Пример: 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
- Коэффициент усиления на нулевой частоте[0 -1 -2 -3 -4 -5 -6- -7 -8]
(по умолчанию) | скалярный вектор |Коэффициент усиления на нулевой частоте для передаточной функции CTLE, заданный в виде скаляра или вектора в дБ. Если он задан как скаляр, он преобразуется, чтобы соответствовать длине PeakingFrequency
, ACGain
, и PeakingGain
скалярным расширением. Если задан как вектор, то длина вектора должна быть такой же, как и векторы в PeakingFrequency
, ACGain
, и PeakingGain
.
Типы данных: double
PeakingGain
- Различие между усилением переменного и постоянного тока[0 1 2 3 4 5 6 7 8]
(по умолчанию) | скалярный вектор |Пиковый коэффициент усиления, заданный как вектор в дБ. Это различие между ACGain
и DCGain
для передаточной функции CTLE. Если он задан как скаляр, он преобразуется, чтобы соответствовать длине PeakingFrequency
, ACGain
, и DCGain
скалярным расширением. Если задан как вектор, то длина вектора должна быть такой же, как и векторы в PeakingFrequency
, ACGain
, и DCGain
.
Типы данных: double
ACGain
- Усиление на пиковой частоте0
| скалярный вектор |Коэффициент усиления на пиковой частоте для передаточной функции 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
- Выравниваемый выход CTLEУравненный выходной сигнал CTLE. Если входной сигнал является сигналом дискретизации по дискретизации, заданным как скаляры, то выход также скаляром. Если входной сигнал является векторным сигналом импульсной характеристики, то выход также является вектором.
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj
, используйте следующий синтаксис:
release(obj)
Этот пример показывает, как обработать импульсную характеристику канала, используя serdes.CTLE
Системные object™.
Используйте время символа 100
ps и 16
выборок на символ. Канал имеет 16
потеря дБ. Пиковая частота 11
ГГц.
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
ГГц. Выберите 12
- псевдослучайная двоичная последовательность (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);
Создайте глазковую диаграмму.
eyediagram = comm.EyeDiagram('SampleRate',1/dt,'SamplesPerSymbol',SamplesPerSymbol,... 'YLimits',[-0.5 0.5]);
Warning: comm.EyeDiagram will be removed in a future release. Use eyediagram instead.
Инициализируйте генератор PRBS.
[dataBit,prbsSeed] = prbs(prbsOrder,1);
Цикл через один символ за раз.
inwave = zeros(SamplesPerSymbol,1); outwave = zeros(SamplesPerSymbol,1); for ii = 1:M % Get new symbol [dataBit,prbsSeed] = prbs(prbsOrder,1,prbsSeed); inwave(1:SamplesPerSymbol) = dataBit-0.5; % Convolve input waveform with channel y = channel(inwave); % Process one sample at a time through the CTLE for jj = 1:SamplesPerSymbol outwave(jj) = CTLE(y(jj)); end % Plot eye diagram eyediagram(outwave) end
Указания и ограничения по применению:
IBIS-AMI codegen не поддерживается в MAC.
AGC | CTLE | DFECDR | optPulseMetric
| SaturatingAmplifier | serdes.AGC
| serdes.DFECDR
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.