В этом примере вы используете интерфейс командной строки RF Toolbox™, чтобы смоделировать временной ответ линии электропередачи параллельного диска. Вы анализируете сеть в частотный диапазон, вычисляете и строите график временной характеристики сети и экспортируете модель Verilog-A линии электропередачи для использования в уровень системы симуляциях.
Введите следующую команду в MATLAB® приглашение создать схему (rfckt) объект для представления линии электропередачи, которая имеет длину 0,1 метра и ширину 0,05 метра:
tline = rfckt.parallelplate('LineLength',0.1,'Width',0.05);
Введите следующий набор команд в подсказке MATLAB, чтобы определить область значений частот, по которым можно анализировать линию электропередачи, и затем запустите анализ:
f = [1.0e9:1e7:2.9e9]; analyze(tline,f);
Эта часть примера иллюстрирует, как выполнить следующие задачи:
Введите следующую команду в подсказке MATLAB, чтобы извлечь вычисленные значения S-параметров и соответствующие значения частоты для линии электропередачи:
[S_Params, Freq] = extract(tline,'S_Parameters');Введите следующую команду в подсказке MATLAB, чтобы вычислить передаточную функцию из данных частотной характеристики с помощью s2tf функция:
TrFunc = s2tf(S_Params);
В этой части примера вы подбираете рациональную модель функции к передаточной функции. Тулбокс хранит результаты аппроксимации в rfmodel объект. Вы используете RF Toolbox freqresp метод для подтверждения подгонки модели рациональной функции.
Введите следующую команду в подсказке MATLAB, чтобы подгонять рациональную функцию к вычисляемым данным и хранить результат в rfmodel объект:
RationalFunc = rationalfit(Freq,TrFunc)
RationalFunc =
rfmodel.rational with properties:
A: [7x1 double]
C: [7x1 double]
D: 0
Delay: 0
Name: 'Rational Function'
Введите следующую команду в подсказку MATLAB, чтобы вычислить частотную характеристику подобранной модели данных:
[fresp,freq] = freqresp(RationalFunc,Freq);
Введите следующий набор команд в подсказку MATLAB, чтобы построить график амплитуды частотной характеристики подобранной модели данных и вычисленных данных:
figure plot(freq/1e9,20*log10(abs(fresp)),freq/1e9,20*log10(abs(TrFunc))) xlabel('Frequency, GHz') ylabel('Amplitude, dB') legend('Fitted Model Data','Computed Data')

Примечание
Амплитуда данных моделей очень близка к амплитуде вычисленных данных. Можно управлять компромиссом между точностью модели и сложностью модели, задавая необязательный аргумент допуска tol, к rationalfit функция, как описано в Represent Circuit Object with Объект модели.
Введите следующий набор команд в подсказку MATLAB, чтобы построить график угла фазы частотной характеристики подобранной модели данных и вычисленных данных:
figure plot(freq/1e9,unwrap(angle(fresp)),... freq/1e9,unwrap(angle(TrFunc))) xlabel('Frequency, GHz') ylabel('Phase Angle, radians') legend('Fitted Data','Computed Data')

Примечание
Угол фазы данных моделей очень близок к углу фазы вычисленных данных.
В этой части примера вы вычисляете и строите график временной характеристики линии электропередачи.
Введите следующий набор команд в подсказке MATLAB, чтобы создать случайный входной сигнал и вычислить временную характеристику, tresp, из подобранных моделей к входному сигналу:
SampleTime = 1e-12;
NumberOfSamples = 1e4;
OverSamplingFactor = 25;
InputTime = double((1:NumberOfSamples)')*SampleTime;
InputSignal = ...
sign(randn(1, ceil(NumberOfSamples/OverSamplingFactor)));
InputSignal = repmat(InputSignal, [OverSamplingFactor, 1]);
InputSignal = InputSignal(:);
[tresp,t] = timeresp(RationalFunc,InputSignal,SampleTime);Введите следующий набор команд в подсказку MATLAB, чтобы построить график временной характеристики подобранной модели данных:
figure plot(t,tresp) xlabel('Time (seconds)') ylabel('Response to Random Input Signal')

В этой части примера вы экспортируете модель Verilog-A линии электропередачи. Можно использовать эту модель в других инструментах симуляции для детального анализа во временной области и системных симуляциях.
Следующий код иллюстрирует, как использовать writeva метод для записи модуля Verilog-A для RationalFunc в файл tline.va. Модуль имеет один вход, tline_in, и один выход, tline_out. Метод возвращает status от True, если операция успешна, и False если это неудачно.
status = writeva(RationalFunc,'tline','tline_in','tline_out')
Для получения дополнительной информации о writeva метод и его аргументы, см. writeva страница с описанием..