JUK1
findComplexRationalApproximation.m File Reference

Go to the source code of this file.

Functions

end numPoles ()
 
Get residues for these final (stable) poles[r
 
Plot modelled vs actual data plot (freqBins, abs(freqData),'-x')
 
 plot (freqBins, abs(Asim *res(:)), 'o')
 

Variables

 function [poles, residues, remainder, proportional]
 
Scale incoming frequencies maxFreq = max(freqBins)
 
 freqBins = freqBins/maxFreq
 
 wPoleFreqs = 2*pi*poleFreqs
 
 sigma = -0.1
 
 sPoleFreqs = sigma + 1j*wPoleFreqs
 
Create vector of simulation frequencies wFreqBins = 2*pi*freqBins
 
Turn this into a matrix
 
Turn this into a with identical frequencies along the rows s = repmat(1j*wFreqBins(:),1,numPoles)
 
for ii
 
Extract zeros Form matrix with poles on diagonal Az = diag(sPoleFreqs)
 
 Bz = ones(size(sPoleFreqs,2),1)
 
Get residues for these Asim
 
Get residues for these residual = getResidues(sPoleFreqs,freqData,wFreqBins)
 
Extract resiudes
 
 r = Asim\freqDataFull
 
Count number of useful output variables numVar = numPoles + 2
 
Extract these output variables res = r(1:numVar)
 
hold on
 
hold off
 
Undo scaling of outgoing residues = res(1:numVar-2,:)*maxFreq
 
Undo scaling of outgoing poles = sPoleFreqs*maxFreq
 
 remainder = res(numVar-1,:)
 
 proportional = res(numVar,:)/maxFreq
 

Function Documentation

◆ final()

Get residues for these final ( stable  )

◆ numPoles()

end numPoles ( )
virtual

Definition at line 14 of file getResidues.m.

Here is the caller graph for this function:

◆ plot() [1/2]

plot ( freqBins  ,
abs(Asim *res(:))  ,
'o'   
)

◆ plot() [2/2]

Plot modelled vs actual data plot ( freqBins  ,
abs(freqData)  ,
'-x  
)

Variable Documentation

◆ Asim

Get residues for these Asim

Definition at line 51 of file findComplexRationalApproximation.m.

◆ Az

Extract zeros Form matrix with poles on diagonal Az = diag(sPoleFreqs)

Definition at line 36 of file findComplexRationalApproximation.m.

◆ Bz

Bz = ones(size(sPoleFreqs,2),1)

Definition at line 38 of file findComplexRationalApproximation.m.

◆ freqBins

freqBins = freqBins/maxFreq

Definition at line 11 of file findComplexRationalApproximation.m.

◆ function

Initial value:
= findComplexRationalApproximation(freqBins,freqData)
% This function takes in frequency data and fits a rational approximation
% using Vector Fitting
% freqBins is in Hz
% Number of poles to use in fit
Undo scaling of outgoing poles
end numPoles()
Definition: getResidues.m:14
Find a complex rational model for freq domain data for a

Definition at line 1 of file findComplexRationalApproximation.m.

◆ ii

for ii
Initial value:
= 1:250
% Ensure poles are stable
sPoleFreqs = flipReal(sPoleFreqs)

Definition at line 28 of file findComplexRationalApproximation.m.

◆ matrix

Turn this into a matrix

Definition at line 25 of file findComplexRationalApproximation.m.

◆ maxFreq

Scale incoming frequencies maxFreq = max(freqBins)

Definition at line 10 of file findComplexRationalApproximation.m.

◆ numVar

Count number of useful output variables numVar = numPoles + 2

Definition at line 61 of file findComplexRationalApproximation.m.

◆ off

hold off

Definition at line 68 of file findComplexRationalApproximation.m.

◆ on

hold on

Definition at line 67 of file findComplexRationalApproximation.m.

◆ poles

Undo scaling of outgoing remainder term and proportional terms poles = sPoleFreqs*maxFreq

Definition at line 70 of file findComplexRationalApproximation.m.

◆ proportional

proportional = res(numVar,:)/maxFreq

Definition at line 75 of file findComplexRationalApproximation.m.

◆ r

Definition at line 55 of file findComplexRationalApproximation.m.

◆ remainder

remainder = res(numVar-1,:)

Definition at line 74 of file findComplexRationalApproximation.m.

◆ res

Extract these output variables res = r(1:numVar)

Definition at line 64 of file findComplexRationalApproximation.m.

◆ residual

Compute residual error and print to screen residual = getResidues(sPoleFreqs,freqData,wFreqBins)

Definition at line 51 of file findComplexRationalApproximation.m.

◆ residues

residues = res(1:numVar-2,:)*maxFreq

Definition at line 70 of file findComplexRationalApproximation.m.

◆ resiudes

Extract resiudes

Definition at line 53 of file findComplexRationalApproximation.m.

◆ s

Turn this into a with identical frequencies along the rows s = repmat(1j*wFreqBins(:),1,numPoles)

Definition at line 26 of file findComplexRationalApproximation.m.

◆ sigma

sigma = -0.1

Definition at line 16 of file findComplexRationalApproximation.m.

◆ sPoleFreqs

end Ensure poles are stable sPoleFreqs = sigma + 1j*wPoleFreqs

Definition at line 17 of file findComplexRationalApproximation.m.

◆ wFreqBins

Create vector of simulation frequencies wFreqBins = 2*pi*freqBins

Definition at line 23 of file findComplexRationalApproximation.m.

◆ wPoleFreqs

wPoleFreqs = 2*pi*poleFreqs

Definition at line 15 of file findComplexRationalApproximation.m.