rationalfit

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

Синтаксис

fit = rationalfit(freq,data)
fit = rationalfit(freq,data,tol)
fit = rationalfit(___,Name,Value)
[fit,errdb] = rationalfit(...)
fit = rationalfit(s_obj,i,j...)

Описание

пример

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
title('Rational fitting of S11 angle')
plot(orig_data,'S11','Angle (radians)')
hold on
plot(freq/1e9,unwrap(angle(resp)),'r')

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

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

orig_data = sparameters('defaultbandpass.s2p'); 
data = orig_data.Parameters; 
freq = orig_data.Frequencies;
fit_data = rationalfit(freq, data)
fit_data = 
  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 массив комплексных чисел. Функция соответствует N 2 рациональных функции к данным вдоль M (частота) размерность.

Ошибочный допуск ε, заданный как скаляр в модулях дБ. Соответствующее ошибке уравнение

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

где

  • ε заданное значение tol.

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

  • F является значением рациональной функции при s = j f.

  • W является взвешиванием данных.

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Масштабный коэффициент, который управляет суммой задержки, чтобы соответствовать к данным, заданным как пара, разделенная запятой, состоящая из 'DelayFactor' и скаляра между 0 и 1 включительно. Параметр 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

где

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

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

  • F является значением рациональной функции при s = j 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 или примеры в следующем разделе.

Ссылки

Гастэвсен. B и A.Semlyen, “Рациональное приближение ответов частотного диапазона векторным подбором кривой”, Сделка IEEE. Подача электроэнергии, Издание 14, № 3, стр 1052–1061, июль 1999.

Цзэн. R и Й. Синский, “Измененная техника моделирования рациональной функции для быстродействующих схем”, IEEE микроволна int MTT-S Symp. Вырыть., Сан-Франциско, CA, 11-16 июня 2006.

Смотрите также

| | | |

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