В этом примере показано, как настроить параметр 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);
В качестве опции можно обрезать набор данных из передаточной функции, используемой Fit. Например, можно выбрать частоту отсечки 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');
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
rational функция возвращает полюса и остатки, но их необходимо преобразовать в нули, полюса и коэффициенты усиления для блока КТЛ с помощью функции 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);
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 и на панели Параметры блока (Block Parameters) задайте для параметра Спецификация (Specification) значение GPZ Matrix. При необходимости можно ввести имя GPZ Matrix переменная (в этом примере ",gpz")или скопируйте значения из GPZ Matrix и вставьте его в параметр матрицы нулевого полюса усиления.

В приложении SerDes Designer постройте график функции передачи CTLE и импульсного отклика с помощью кнопки «Добавить графики». Можно переместить панели, чтобы показать два графика, щелкнув и перетащив каждую панель в окне SerDes Designer.

Затем нажмите кнопку Экспорт > Создать модель IBIS AMI для системы SerDes. Модель IBIS-AMI может быть загружена в соответствующий инструмент EDA для построения графика импульсного отклика из модели. В целях корреляции можно сравнить графики для импульсного отклика из приложения SerDes Designer и инструмента EDA.
CTLE | Конструктор SerDes | serdes.CTLE | rational (RF Toolbox)