File: mrfit.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (38 lines) | stat: -rw-r--r-- 1,211 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
mrfit            Scilab Group            Scilab Function              mrfit
NAME
   mrfit - frequency response fit
  
CALLING SEQUENCE
 sys=mrfit(w,mag,order)
 [num,den]=mrfit(w,mag,order)
 sys=mrfit(w,mag,order,weight)
 [num,den]=mrfit(w,mag,order,weight)
PARAMETERS
 w          : positive real vector of frequencies (Hz)
            
 mag        : real vector of frequency responses magnitude (same size as
            w)
            
 order      : integer (required order, degree of den)
            
 weight     : positive real vector (default value ones(w)).
            
 num,den    : stable polynomials
            
DESCRIPTION
   sys=mrfit(w,mag,order,weight) returns a bi-stable transfer function
  G(s)=sys=num/den, of of given order such that  its frequency response
  magnitude abs(G(w(i)))  matches mag(i) i.e. abs(freq(num,den,%i*w))
  should be  close to mag. weight(i) is the weigth given to w(i).
  
EXAMPLE
 w=0.01:0.01:2;s=poly(0,'s');
 G=syslin('c',2*(s^2+0.1*s+2),(s^2+s+1)*(s^2+0.3*s+1)); // syslin('c',Num,Den);
 fresp=repfreq(G,w);
 mag=abs(fresp);
 Gid=mrfit(w,mag,4);
 frespfit=repfreq(Gid,w);
 plot2d([w',w'],[mag(:),abs(frespfit(:))])
SEE ALSO
   cepstrum, frfit, freq, calfrq