rationalfit

Аппроксимируйте данные с помощью стабильного объекта рациональной функции

Описание

пример

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

F(s)=k=1nCksAk+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=1nCksAk+D)es.Delay,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 для доступа к соответствующей информации rationalfit.

Использование 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 данные, используйте индексацию в массиве 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'

Входные параметры

свернуть все

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

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

Ошибка допуска ε, заданная в виде скаляра в модули дБ. Подходящее к ошибке уравнение

10ε/20k=0n|WkF0{fk}F(s)|2k=0n|WkF0{fk}|2

где

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

  • F 0 является значением исходных данных (data) на заданной частотной fk (freq).

  • F - значение рациональной функции в s = <reservedrangesplaceholder2> 2 <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10ε/20k=0n|WkF0{fk}F(s)|2k=0n|WkF0{fk}|2

где

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

  • F 0 является значением исходных данных (data) на заданной частотной fk (freq).

  • F - значение рациональной функции в s = <reservedrangesplaceholder2> 2 <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

Логическое значение, которое переключает отображение графической полосы ожидания во время подбора кривой, задается как разделенная разделенными запятой парами, состоящая из 'WaitBar' и любой из них true или false. The 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. Степень Delivery, Vol. 14, № 3, pp. 1052-1061, July 1999.

[2] Zeng.R и J. Sinsky, «Modified Rational Function Modeling Technique for High Speed Circuits», IEEE MTT-S Int. Микроволновый симпозиум, Сан-Франциско, Калифорния, 11-16 июня 2006 года.

Введенный в R2006b