# pztf

< Programmer Guide | Command Reference | EVAL

Jump to navigation
Jump to search
This STx-related article may be outdated.

Compute minimum phase envelope (for test purposes only)

- Usage
`Amip := eval pztf(Ac, nn, nd, 0)`

`Amip := eval pztf(Ae, nn, nd, 0)`

- Result
- log. minimum phase amplitude response in dB (Amip[*,0])

Compute polyinomial coefficients of numerator and denominator of the p/z transfer function H(z)=N(z)/D(z)

- Usage
`ND := eval pztf(Ac, nn, nd, 1 | 2) 1=wlls, 2=nd`

`ND := eval pztf(Ae, nn, nd, 1 | 2) 1=wlls, 2=nd`

- Result
- numerator and denominator coefficients:
- ND[0,0]=nn, ND[1..nn,0]=an[0..nn-1],
- ND[0,1]=nd, ND[1..nd,1]=ad[0..nd-1]

Compute amplitude response |H(z)| in dB

- Usage
`H := eval pztf(ND, nh)`

- Result
- amplitude response in dB (H[*,0])

Compute poles and zeros

- Usage
- ZP := eval pztf(ND)
- Result
- zeros and poles
- ZP[0,0]=nz, ZP[0,1..nz]=rz[0..nz-1], ZP[0,nz+1..nz+np]=rp[0..np-1]
- ZP[1,0]=np, ZP[1,1..nz]=fz[0..nz-1], ZP[1,nz+1..nz+np]=fp[0..np-1]
- Notes
- 1) relative frequencies fz/fp are computed as: fx[i] = (arg(x[i]) / pi
- 1) zeros and poles are sorted by increasing rel. frequency fz/fp
- 2) if fz/fp[i]=0 -> real pole/zero on the right side
- 3) if fz/fp[i]=1 -> real pole/zero on the left side
- 4) if 0<fz/fp[i]<1 conjugate complex pole/zero

- Ac
- complex minimum phase envelope (Ac[*,0] = re, Ac[*,1] = im)
- Ae
- log. envelope in dB (Ae[*,0])
- nn
- order of numerator
- nd
- order of denominator
- nh
- number of H frequency bins