Найдите нули, полюса и усиления для CTLE от передаточной функции

В этом примере показано, как сконфигурировать параметр Спецификации GPZ Matrix из CTLE в приложении SerDes Designer, чтобы использовать нули, полюса и усиления, выведенные zpk функция, учитывая полюса и остатки выводится rational функция. Можно переформатировать набор нулей, полюсов и усилений, выведенных zpk функционируйте, чтобы использовать в качестве GPZ matrix в блоке CTLE.

Импортируйте передаточную функцию

Импортируйте .csv файл, содержащий передаточную функцию с помощью readmatrix функция.

ctle_transfunc = readmatrix('ctle_transfer_function.csv','Range','A7:E775');
rawfreq = ctle_transfunc(:,1);
ri = ctle_transfunc(:,4:end);

Данные для обрезки к определенной частоте среза

Как опция, возможно обрезать набор данных от передаточной функции, используемой Подгонкой. Например, можно выбрать частоту среза 13 ГГц.

fcutoff = 13e9;
ndx = rawfreq<fcutoff;

Сохраните неусеченные данные для подходящего сравнения Используя график наложения

Как опция, исходный набор данных мой быть сохраненным для более позднего сравнения с Fit выход rational функция.

rawdata = complex(ri(:,1),ri(:,2));

Преобразуйте передаточную функцию, чтобы объединить форму

Подготовить данные к использованию rational функция, преобразуйте вещественные числа от передаточной функции до комплексных чисел с помощью complex функция.

data = complex(ri(ndx,1),ri(ndx,2));
freq = rawfreq(ndx);

Найдите рациональными из передаточной функции

Можно использовать rational функционируйте, чтобы найти лучшую подгонку к передаточной функции. rational функция выполняет итерации, чтобы идентифицировать подгонку с самой низкой ошибкой. Важно установить аргумент TendsToZero к true добавить полюс так, чтобы подгонка имела тенденцию обнулять как S бесконечность подходов. Это удовлетворяет требование, чтобы иметь еще один полюс, чем количество нулей в матрице GPZ.

fit = rational(freq,data,'Tolerance',-40,'TendsToZero',true,'MaxPoles',8,'Display','on');
nSurrogate=1; reduced to 100.0%
min achievable error=-Inf
init: np=0 errdb=0
np=0 errdb=-3.33309
np=2 errdb=-49.9298
Number of poles, np=2
After removing unstable poles, np=2
After removing high-Q poles, np=2
After calculate residues, errdb=-50.1853
final: np=2 errdb=-50.1853

Преобразуйте в нули, полюса, усиления от полюсов и остатков

rational функция возвращает полюса и остатки, но необходимо преобразовать их в нули, полюса и усиления для блока CTLE с помощью функции zpk.

[z,p,~,dcgain]=zpk(fit);

Создайте матрицу GPZ для блока CTLE из нулей, полюсов, усилений

Нули, полюса и усиления, выведенные zpk, должны быть отформатированы как Матрица GPZ для использования в блоке CTLE. CTLE может быть сконфигурирован, чтобы использовать параметр Спецификации GPZ Matrix где модули для усилений, полюсов и нулей являются дБ, Гц и Гц, соответственно. Выход функции zpk должен быть переформатирован для этих модулей для использования в качестве GPZ Matrix. Примечание: это - хорошая практика, чтобы инициализировать GPZ Matrix в случае, если набор входных данных изменяется между одним анализом на другого.

gpz = zeros(1,length(p)*2);
gpz(1,1) = 20*log10(abs(dcgain));
gpz(1,2:2:length(p)*2) = p/(2*pi);
gpz(1,3:2:length(z)*2+1) = z/(2*pi);                            

Постройте наложение подгонки по сравнению с данными

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

myctle = serdes.CTLE('GPZ',gpz,'SymbolTime',40e-12,'Specification','GPZ Matrix');
[f,H] = plot(myctle);
figure(3), semilogx(f*1e-9,db(H),rawfreq*1e-9,db(rawdata))
grid on
xlabel('GHz'),ylabel('dB')
legend('Fit','Data')

Сконфигурируйте блок CTLE в SerDes Designer

Запустите приложение SerDes Designer. Поместите блок CTLE после аналоговой модели приемника. Выберите CTLE и из панели Параметров блоков, установите параметр Спецификации на GPZ Matrix. Опционально, можно или ввести от имени GPZ Matrix переменная (в этом примере, "gpz"), или скопируйте значения с GPZ Matrix график ячейки и вставка это к Усилению подпирает нулевой параметр матрицы шестами.

Коррелируйте импульсный ответ в SerDes Designer к симуляции IBIS-AMI

В приложении SerDes Designer постройте Передаточную функцию CTLE и Импульсный Ответ от кнопки Add Plots. Можно переместить панели, чтобы показать два графика путем перетаскивания каждой панели в окне SerDes Designer.

Затем нажмите, Export> Делают IBIS Моделью AMI для кнопки SerDes System. Модель IBIS-AMI может загрузиться в соответствующий инструмент EDA, чтобы построить Импульсный Ответ из модели. В целях корреляции можно сравнить графики для Импульсного Ответа из приложения SerDes Designer и инструмента EDA.

Смотрите также

| | | (RF Toolbox)

Похожие темы