В этом примере вы используете интерфейс командной строки 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
функция, как описано в Представляют Объект Схемы с Объектом модели.
Введите следующий набор команд в посдказке 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
страница с описанием. Для получения дополнительной информации о моделях Verilog-A смотрите Экспорт Модель Verilog-A.