exponenta event banner

rationalfit

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

Описание

пример

fit = rationalfit(freq,data) подходит под объект рациональной функции вида

F (ы) =∑k=1nCks−Ak+D,s=j*2πf

к комплексному вектору data над значениями частоты в положительном векторе freq. Функция возвращает дескриптор объекту рациональной функции, h, со свойствами A, C, D, и Delay.

fit = rationalfit(freq,data,tol) подходит объект рациональной функции к сложным данным и ограничивает ошибку аппроксимации согласно необязательному входному аргументу tol.

fit = rationalfit(___,Name,Value) подходит под объект рациональной функции вида

F (s) = (∑k=1nCks−Ak+D) e s.Запаздывание, s = j * 2āf

с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары. Эти аргументы предлагают более точный контроль над производительностью и точностью алгоритма подгонки.

[fit,errdb] = rationalfit(___) подходит объект рациональной функции к сложным данным, а также возвращает errdb, что является достигнутой ошибкой.

пример

fit = rationalfit(s_obj,i,j) судороги Sij использование FREQ = s_obj.Frequencies и DATA = rfparam(s_obj,i,j) для объекта s-параметра, s_obj.

Примеры

свернуть все

Поместите объект рациональной функции в данные S-параметра и сравните результаты, построив график объекта с данными.

Считывайте данные S-параметра в РЧ-объект данных.

orig_data = read(rfdata.data,'passive.s2p');
freq = orig_data.Freq;
data = orig_data.S_Parameters(1,1,:);

Подгонка рациональной функции к данным с помощью rationalfit.

fit_data = rationalfit(freq,data)
fit_data = 
   rfmodel.rational with properties:

        A: [19x1 double]
        C: [19x1 double]
        D: 0
    Delay: 0
     Name: 'Rational Function'

Вычислить частотную характеристику рациональной функции с помощью freqresp.

[resp,freq] = freqresp(fit_data,freq);

Постройте график величины исходных данных относительно аппроксимации рациональной функции. S11 данные отображаются синим цветом, а рациональная функция - красным. Масштабирование значений частоты на 1e9 преобразует их в единицы ГГц.

figure
title('Rational fitting of S11 magnitude')
plot(orig_data,'S11','dB')
hold on
plot(freq/1e9,20*log10(abs(resp)),'r');

Figure contains an axes. The axes contains 2 objects of type line. This object represents S_{11}.

Постройте график угла исходных данных относительно аппроксимации рациональной функции.

figure
title('Rational fitting of S11 angle')
plot(orig_data,'S11','Angle (radians)')
hold on
plot(freq/1e9,unwrap(angle(resp)),'r')

Figure contains an axes. The axes contains 2 objects of type line. This object represents S_{11}.

rationalfit(freq,data) также обрабатывает входной 3D массив данных (n x n x p), входной частотный массив (p x 1) и возвращает матрицу (n x n) рациональных объектов. Индексировать в матрицу объектов рационализаторства для доступа к соответствующей информации рационализаторства.

Использовать rationalfit для нескольких наборов данных, определенных в матрице.

orig_data = sparameters('defaultbandpass.s2p'); 
data = orig_data.Parameters; 
freq = orig_data.Frequencies;
fit_data = rationalfit(freq, data)
fit_data=2×2 object
  2x2 rfmodel.rational array with properties:

    A
    C
    D
    Delay
    Name

К доступу rationalfit используйте индексирование в массиве рациональных форм. Например, чтобы получить доступ к рациональной посадке для 1-го элемента матрицы, используйте:

S = fit_data(1, 1)
S = 
   rfmodel.rational with properties:

        A: [12x1 double]
        C: [12x1 double]
        D: 0
    Delay: 0
     Name: 'Rational Function'

Используйте рациональную подгонку для подгонки объекта S-параметра из файла «passive.s2p».

S = sparameters('passive.s2p');
fit = rationalfit(S,1,1,'TendsToZero',false)
fit = 
   rfmodel.rational with properties:

        A: [5x1 double]
        C: [5x1 double]
        D: -0.4843
    Delay: 0
     Name: 'Rational Function'

Входные аргументы

свернуть все

Частоты, по которым функция подходит к рациональному объекту, заданному как вектор длины М.

Данные для подгонки, заданные как массив комплексных чисел N-by-N-by-M. Функция подходит N2 рациональным функциям к данным вдоль M (частотной) размерности.

Допуск по погрешности, заданный как скаляр в единицах дБ. Уравнение аппроксимации ошибки

10ε/20≥∑k=0n'WkF0{fk}−F (ы) | 2 ∑k=0n'WkF0{fk}|2

где

  • λ - заданное значение tol.

  • F0 - значение исходных данных (data) на заданной частоте fk (freq).

  • F - значение рациональной функции при s = j2āf.

  • W - взвешивание данных.

rationalfit вычисляет относительную ошибку как вектор, содержащий зависимые значения данных аппроксимации. Если объект не соответствует исходным данным в пределах указанного допуска, появляется предупреждающее сообщение.

S-параметры, заданные как РЧ Toolbox™ сетевой объект. Чтобы создать объект этого типа, используйте sparameters функция.

Индекс строки данных для печати, заданный как положительное целое число.

Индекс столбца данных для печати, заданный как положительное целое число.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'DelayFactor',0.2

Коэффициент масштабирования, который управляет величиной задержки для соответствия данным, определяемый как пара, разделенная запятыми, состоящая из 'DelayFactor' и скаляр от 0 до 1 включительно. Delay значение параметра, start, объекта рациональной функции равно заданному значению 'DelayFactor' умножает оценку групповой задержки данных. Если исходные данные имеют задержку, увеличение этого значения может позволить rationalfit для согласования данных с объектом нижнего порядка.

Максимальное количество rationalfit итерации, указанные как вектор положительных целых чисел. Предоставление двухэлементного вектора для указания минимума и максимума [M1 M2]. Увеличение предела увеличивает время, затрачиваемое алгоритмом на получение аппроксимации, но может дать более точные результаты.

Число полюсов Ak рациональной функции, определяемой как разделенная запятыми пара, состоящая из 'NPoles' и целое число n или диапазон возможных значений n.

Помочь rationalfit произвести точное вписывание, выбрать максимальное значение npoles больше или равно удвоенному числу пиков на графике данных в частотной области.

После завершения рационального аппроксимации функция удаляет наборы коэффициентов, остатки (Ck) которых равны нулю. Таким образом, при указании диапазона для npoles, число полюсов посадки может быть меньше, чем npoles(1).

Асимптотическое поведение рациональной функции по мере приближения частоты к бесконечности, определяемое как разделенная запятыми пара, состоящая из 'TendsToZero' и логическое значение. Когда этот аргумент true, результирующая переменная D рациональной функции равна нулю, и функция стремится к нулю. Значение false допускает ненулевое значение для D.

Допуск по погрешности, указанный как пара, разделенная запятыми, состоящая из 'Tolerance' и скаляр в единицах дБ. Уравнение аппроксимации ошибки

10ε/20≥∑k=0n'WkF0{fk}−F (ы) | 2 ∑k=0n'WkF0{fk}|2

где

  • λ - указанный допуск.

  • F0 - значение исходных данных (data) на заданной частоте fk (freq).

  • F - значение рациональной функции при s = j2āf.

  • W - взвешивание данных.

Если объект не соответствует исходным данным в пределах указанного допуска, функция выдает предупреждение.

Логическое значение, которое переключает отображение графической полосы ожидания во время фитинга, указанной как пара, разделенная запятыми, состоящая из 'WaitBar' и либо true или false. true показывает графическую панель ожидания, и false установка скрывает его. Если вы ожидаете rationalfit чтобы занять много времени, и вы хотите следить за его ходом, установите 'WaitBar' кому true.

Взвешивание данных на каждой частоте, указанной как разделенная запятыми пара, состоящая из 'Weight' и вектор положительных чисел или массив, такой же, как у данных. Каждая запись в weight соответствует частоте в freq, так что длина weight должно быть равно длине freq. Увеличение веса на определенной частоте улучшает подгонку объекта на этой частоте. Задание веса 0 на определенной частоте rationalfit для игнорирования соответствующей точки данных.

Выходные аргументы

свернуть все

Один или несколько рациональных объектов функции, возвращаемых как N-by-N rfmodel.rational объект. Количество размеров в data определяет размерность h.

Достигнута относительная ошибка, возвращенная как double, в дБ.

Совет

Чтобы увидеть, насколько хорошо объект подходит к исходным данным, используйте freqresp функция для вычисления частотной характеристики объекта. Затем постройте график исходных данных и частотной характеристики объекта рациональной функции. Дополнительные сведения см. в разделе freqresp справочная страница или приведенные выше примеры.

Ссылки

[1] Gustavsen.B и A.Semlyen, «Рациональное приближение откликов частотной области путем подбора вектора», IEEE Trans. Power Delivery, Vol. 14, No. 3, pp. 1052-1061, июль 1999.

[2] Zeng.R и Дж. Синский, «Модифицированная методика моделирования рациональных функций для высокоскоростных цепей», IEEE MTT-S Int. СВЧ Symp. Dig., Сан-Франциско, Калифорния, 11-16 июня 2006 года.

Представлен в R2006b