Непрерывное время линейный эквалайзер (CTLE) или худой фильтр
Система serdes.CTLE
object™ обрабатывает входной сигнал выборки выборкой или аналитически обрабатывает импульсный входной сигнал вектора отклика, чтобы удалить искажения, следующие из каналов с потерями.
Компенсировать основополосный сигнал с помощью serdes.CTLE
:
Создайте объект serdes.CTLE
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
ctle = serdes.CTLE
ctle = serdes.CTLE(Name,Value)
возвращает объект CTLE, который изменяет входную форму волны согласно нулевой передаточной функции полюса, заданной в объекте.ctle
= serdes.CTLE
возвращает объект CTLE с каждым заданным набором свойств к определенному значению. Незаданные свойства имеют значения по умолчанию.ctle
= serdes.CTLE(Name
,Value
)
ctle = serdes.CTLE('ACGain',5)
возвращает объект CTLE с усилением в худом наборе частоты к 5 дБ.Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release
разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).
Режим
Рабочий режим CTLE2
(значение по умолчанию) | 0
| 1
Рабочий режим CTLE, заданный как 0
, 1
или 2
. Mode
определяет, обойден ли CTLE или нет. Если CTLE не обойден, то Mode
также определяет, какая передаточная функция применяется к входной форме волны.
Значение режима | Режим CTLE | Операция CTLE |
---|---|---|
0 | 'off' | serdes.CTLE обойден, и входная форма волны остается неизменной. |
1 | фиксированный | serdes.CTLE применяет передаточную функцию CTLE, как задано ConfigSelect к входной форме волны. |
2 | адаптироваться | Если WaveType установлен в 'Impulse' или 'Waveform' , то serdes.CTLE определяет передаточную функцию CTLE для лучшего открытия высоты глаза и применяет передаточную функцию к входной форме волны. |
Если 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:
'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
.
Типы данных: double
DCGain
— Получите на нулевой частоте[0 -1 -2 -3 -4 -5 -6- -7 -8]
(значение по умолчанию) | скаляр | векторПолучите на нулевой частоте для передаточной функции CTLE, заданной как скаляр или вектор в дБ. Если задано как вектор, то длина вектора должна совпасть с векторами в PeakingFrequency
, ACGain
и PeakingGain
.
Типы данных: double
PeakingGain
— Различие между усилением переменного и постоянного тока[0 1 2 3 4 5 6 7 8]
(значение по умолчанию) | скаляр | векторХудое усиление, заданное как вектор в дБ. Вот в чем разница между ACGain
и DCGain
для передаточной функции CTLE. Если задано как вектор, то длина вектора должна совпасть с векторами в PeakingFrequency
, ACGain
и DCGain
.
Типы данных: double
ACGain
— Получите на худой частоте0
| скаляр | векторПолучите на худой частоте для передаточной функции CTLE, заданной как скаляр или вектор в дБ. Если задано как вектор, то длина вектора должна совпасть с векторами в PeakingFrequency
, DCGain
и PeakingGain
.
Типы данных: double
GPZ
— Получите нуль полюсаПолучите нуль полюса, заданный как матрица. GPZ
явным образом задает семейство передаточных функций CTLE путем определения DCGain
(дБ) в столбце 1 и затем орудует шестами и нули в переменных столбцах. Полюса и нули заданы в Гц.
Никакие повторные полюса или нули не позволены. Комплексные полюса или нули должны иметь, спрягается. Количество полюсов должно быть больше, чем количество нулей для устойчивости системы.
Типы данных: double
SymbolTime
— Время односимвольной длительности100e-12
(значение по умолчанию) | действительный скалярВремя односимвольной длительности, заданной как действительный скаляр в s.
Типы данных: double
SampleInterval
— Универсальный временной шаг формы волны6.25e-12
(значение по умолчанию) | действительный скалярУниверсальный временной шаг формы волны, заданной как действительный скаляр в s.
Типы данных: double
WaveType
— Введите форму типа волны'Sample'
(значение по умолчанию) | 'Impulse'
| 'Waveform'
Введите форму типа волны:
'Sample'
— Входной сигнал выборки выборкой.
'Impulse'
— Импульсный входной сигнал ответа.
'Waveform'
— Тип формы волны комбинации двоичных разрядов входного сигнала, такого как псевдослучайная двоичная последовательность (PRBS).
Типы данных: char
y = ctle(x)
x
Введите основополосный сигналВведите основополосный сигнал. Если WaveType
установлен в 'Sample'
, то входной сигнал является сигналом выборки выборкой, заданным как скаляры. Если WaveType
установлен в 'Impulse'
, то входной сигнал является импульсным сигналом вектора отклика.
y
— Equalized CTLE выводКомпенсируемый CTLE форма волны вывода. Если входной сигнал является сигналом выборки выборкой, заданным как скаляры, то вывод является также скаляром. Если входной сигнал является импульсным сигналом вектора отклика, то вывод является также вектором.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
Этот пример показывает, как обработать импульсный ответ канала с помощью Системы serdes.CTLE
object™.
Используйте время символа PS 100
и выборок 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 пикосекунд и 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);
Создайте индикаторную диаграмму.
eyediagram = comm.EyeDiagram('SampleRate',1/dt,'SamplesPerSymbol',SamplesPerSymbol,... 'YLimits',[-0.5 0.5]);
Инициализируйте генератор 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 | SaturatingAmplifier | serdes.AGC
| serdes. DFECDR
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.