В этом примере показано, как сконфигурировать параметр Specification 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;
В качестве опции исходный набор данных my будет сохранен для последующего сравнения с выводом Fit rational
функция.
rawdata = complex(ri(:,1),ri(:,2));
Подготовка данных к использованию rational
function, преобразуйте вещественные числа из передаточной функции в комплексные числа с помощью complex
функция.
data = complex(ri(ndx,1),ri(ndx,2)); freq = rawfreq(ndx);
Можно использовать rational
функция для нахождения наилучшей подгонки передаточной функции. The rational
функция выполняет итерации, чтобы идентифицировать подгонку с самой низкой ошибкой. Важно задать аргумент TendsToZero
на true
добавить полюс так, чтобы подгонка стремилась к нулю, когда S приближается к бесконечности. Это удовлетворяет требованию иметь на один полюс больше, чем количество нулей в матрице GPZ.
fit = rational(freq,data,'Tolerance',-40,'TendsToZero',true,'MaxPoles',8,'Display','on');
No reduction possible. init: np=0 errdbAAA=0 errdb=0 (np=0) np=0 errdbAAA=-3.33309 errdb=0 (np=0) np=2 errdbAAA=-49.9298 errdb=-50.1853 (np=2) Achieved specified tolerance. final: np=2 errdb=-50.1853
The rational
функция возвращает полюсы и остатки, но вам нужно преобразовать их в нули, полюсы и усиления для блока CTLE с помощью функции zpk.
[z,p,~,dcgain]=zpk(fit);
Нули, полюсы и усиления, выводимые zpk, должны быть форматированы как матрица GPZ для использования в блоке CTLE. CTLE может быть сконфигурирован так, чтобы использовать параметр Specification 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);
The 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')
Запустите приложение SerDes Designer. Поместите блок CTLE после аналоговой модели приемника. Выберите CTLE и на панели Параметров блоков установите параметр Спецификации равным GPZ Matrix
. Вы можете ввести имя GPZ Matrix
переменная (в данном примере, "gpz")
, или скопируйте значения из GPZ Matrix
Камера графика и вставьте его в параметр Gain pole нуля matrix.
В приложении SerDes Designer постройте график передаточной функции CTLE и импульсной реакции от кнопки Add Plots. Можно переместить панели для отображения двух графиков, щелкнув и перетащив каждую панель в окне SerDes Designer.
Затем нажмите кнопку Экспорт > Создать модель IBIS AMI для системы SerDes. Модель IBIS-AMI может быть загружена в соответствующий инструмент EDA, чтобы построить график Импульсной Характеристики из модели. В целях корреляции можно сравнить графики для Pulse Response из приложения SerDes Designer и инструмента EDA.
CTLE | SerDes Designer | serdes.CTLE
| rational
(RF Toolbox)