Scilab Function
Last update : 12/1/2004

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)`.

### Examples

    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`,