rational

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

Описание

Используйте rational возразите и interpolative алгоритм, чтобы создать рациональную подгонку к зависимым частотой данным.

Комплексные частоты даны уравнением:

F(s)=k=1nCksAk+Dгде, s=j×2πfCостаткиAполюсаDпрямой термин

Создание

Описание

fit = rational(freq,data) возвращает рациональный объект с комплексными частотами с помощью данного вектора частоты и сетевых данных о параметре.

пример

fit = rational(s) возвращает рациональный объект для S-параметров N-порта.

fit = rational(___,tol) возвращает рациональный объект fit это удовлетворяет допуску относительной погрешности. Задайте tol после любой из комбинаций входных аргументов от предыдущих синтаксисов.

[fit,error] = rational(___) также возвращает ошибку подгонки. Используйте любую из комбинаций входных аргументов от предыдущих синтаксисов.

пример

fit = rational(___,Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Например, fit = rational(s,'Tolerance',-34)устанавливает погрешность относительной погрешности в децибелах для fit. Задайте пары "имя-значение" после любого из входных параметров от предыдущих синтаксисов.

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

развернуть все

Неотрицательные частоты в виде вектора из неотрицательных частот в Гц.

Типы данных: double

Сетевые данные о параметре в виде вектора, 2D массива или трехмерного массива. Длина значений данных должна равняться продолжительности значений частоты.

Допуск относительной погрешности в виде скаляра, меньше чем или равного нулю. tol наборы значений вход для 'Tolerance' свойство.

Типы данных: double

S-параметры N-порта в виде N-by-N матрица элементов S совместное использование идентичных полюсов.

Свойства

развернуть все

Допуск относительной погрешности в виде скаляра, меньше чем или равного нулю.

Типы данных: double

Поведение пригодных для больших S-параметров в виде true или false. Когда true, прямой термин в подгонке обнуляется так, чтобы рациональный подходящий F(S) имеет тенденцию обнулять как S бесконечность подходов. Когда false, ненулевой прямой термин позволен.

Типы данных: логический

Максимальное количество полюсов в виде скалярного неотрицательного целого числа.

Типы данных: double

Ошибочные метрики в rational объект в виде одного из следующего:

  • Если вы задаете 'ErrorMetric' как 'default', rational объект распределяет ошибку равномерно.

  • Если вы задаете 'ErrorMetric' как 'Relative', rational возразите соответствует и peaks и оврагам или получает меньшую ошибку для меньших значений.

Типы данных: char

Игнорирует низкоуровневый шум в данных в виде скаляра.

Пример: 'NoiseFloor',-60

Типы данных: double

Параметры отображения для алгоритма подбора рационального объекта в виде одного из следующего:

  • 'off'— Никакое отображение

  • 'on'— Печатная информация

  • 'plot'— Графики прогресса интерполяции

  • 'both'— Обе распечатанной информации и графики.

Типы данных: char

Функции объекта

timerespОтвет времени для рационального объекта и rationalfit функциональный объект
steprespОтвет неродной сигнала для рационального объекта и rationalfit функциональный объект
freqrespЧастотная характеристика рационального объекта и rationalfit функциональный объект
pwlresp Вычислите ответ времени кусочного линейного входного сигнала
impulseИмпульсная характеристика для объекта рациональной функции
ispassiveВозвратите true если rationalfit выход является пассивным элементом на всех частотах
makepassiveОсуществите пассивность rationalfit выведите или рациональный объект
passivityПостройте пассивность N-by-N rationalfit функциональный выход
generateSPICEСгенерируйте файл SPICE от rationalfit из S-параметров

Примеры

свернуть все

Создайте S-параметры из файла с именем passive.s2p.

S = sparameters('passive.s2p');

Выполните рациональный подбор кривой S-параметров.

fit = rational(S);

Создайте объект S-Parameters из файла с именем default.s2p. Выполните рациональный подбор кривой S-параметров.

S = sparameters('default.s2p');
fit = rational(S,'Display', 'plot')

Figure contains an axes. The axes with title Real part of data and response contains 12 objects of type line. These objects represent Data, Response, Matched Points.

Figure contains an axes. The axes with title Imaginary part of data and response contains 12 objects of type line. These objects represent Data, Response, Matched Points.

Figure contains an axes. The axes with title Error (difference between data and response) contains 4 objects of type line. This object represents Error.

fit = 
  rational with properties:

      NumPorts: 2
      NumPoles: 44
         Poles: [44x1 double]
      Residues: [2x2x44 double]
    DirectTerm: [2x2 double]
         ErrDB: -22.6464

Вычислите нули, полюса, усиление и усиление DC рационального объекта.

[z,p,k,dcgain] = zpk(fit)
z=2×2 cell array
    {43x1 double}    {43x1 double}
    {43x1 double}    {43x1 double}

p=2×2 cell array
    {44x1 double}    {44x1 double}
    {44x1 double}    {44x1 double}

k = 2×2
109 ×

   -2.5743   -0.0556
   -0.6980   -1.3221

dcgain = 2×2

    0.0933   -0.0302
   -1.1079    0.4746

Создайте объект S-параметров из заданного файла S2P.

S = sparameters('sawfilterpassive.s2p');
f = S.Frequencies;

Создайте rational объект с допуском -40 дБ.

fit = rational(S,-40);

Сравните подгонку к данным. Вы видите отклонения в меньших значениях на полулогарифмическом графике.

dresp = freqresp(fit,f);
plot(f,20*log10(abs(squeeze(S.Parameters(2,1,:)))),...
    f,20*log10(abs(squeeze(dresp(2,1,:)))),f,20*log10(abs(squeeze(S.Parameters(2,1,:)-dresp(2,1,:)))))
title('Default Fitting for sawfilterpassive.s2p');
ylabel('dB');
xlabel('Frequency (Hz)');
legend('Data','Fit','Error','Location','northwest');

Figure contains an axes. The axes with title Default Fitting for sawfilterpassive.s2p contains 3 objects of type line. These objects represent Data, Fit, Error.

Создайте rational объект с 'ErrorMetric' установите на 'Relative' соответствовать и peaks и оврагам.

rfit = rational(S,-40,'ErrorMetric','Relative');

Сравните подгонку к данным. Peaks и овраги адаптированы.

rresp = freqresp(rfit,f);
figure(2)
plot(f,20*log10(abs(squeeze(S.Parameters(2,1,:)))),...
    f,20*log10(abs(squeeze(rresp(2,1,:)))), f, 20*log10(abs(squeeze(S.Parameters(2,1,:)-rresp(2,1,:)))));
title('Relative Error Fitting for sawfilterpassive.s2p');
ylabel('dB');
xlabel('Frequency (Hz)');
legend('Data','Fit','Error','Location','northwest');

Figure contains an axes. The axes with title Relative Error Fitting for sawfilterpassive.s2p contains 3 objects of type line. These objects represent Data, Fit, Error.

Создайте объект S-параметров из заданного файла S2P.

S = sparameters('passive.s2p');
f = S.Frequencies;
data = S.Parameters;

Обнулите одни из элементов данных.

data(2,2,:) = 0;

Создайте rational объект с допуском -40 дБ.

fit = rational(f,data,-40);

Сравните подгонку к данным. Подгонка и данные соответствуют тесно.

xresp = freqresp(fit,f);
figure(3)
plot(f,abs(squeeze(data(2,1,:))),f,abs(squeeze(xresp(2,1,:))))

Figure contains an axes. The axes contains 2 objects of type line.

Добавьте шум в данные и создайте rational объект.

rng(1);
noisyData = data + 1e-4 * rand(size(S.Parameters));
nfit = rational(f,noisyData,-40);

Сравните подгонку к данным с шумом. Шум не может быть адаптирован, потому что это - данные с подгонкой высшего порядка с худшей ошибочной метрикой.

nresp = freqresp(nfit,f);
figure(4)
plot(f,abs(squeeze(noisyData(2,2,:))),f,abs(squeeze(nresp(2,2,:))))

Figure contains an axes. The axes contains 2 objects of type line.

Создайте rational объект с уровнем шума -60 дБ и график подгонка. Монтер игнорирует низкоуровневый шум.

ffit = rational(f,noisyData,-40,'NoiseFloor',-60);
fresp = freqresp(ffit,f);
figure(5)
plot(f,abs(squeeze(noisyData(2,2,:))),f,abs(squeeze(fresp(2,2,:))))

Figure contains an axes. The axes contains 2 objects of type line.

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

Введенный в R2020a