minimizecoeffwl
Minimum word length fixed-point filter
Syntax
Hq = minimizecoeffwl(Hd)
Hq = minimizecoeffwl(Hd,...,'NoiseShaping',NSFlag)
Hq = minimizecoeffwl(Hd,...,'NTrials',N)
Hq = minimizecoeffwl(Hd,...'Apasstol',Apasstol)
Hq = minimizecoeffwl(Hd,...,'Astoptol',Astoptol)
Hq = minimizecoeffwl(Hd,...,'MatchrefFilter',RefFiltFlag)
Description
Hq = minimizecoeffwl(Hd) returns the minimum word length fixed-point
filter object Hq that meets the design
specifications of the single-stage or multistage FIR filter
object Hd. Hd must be
generated using fdesign and
design. If Hd
is a multistage filter object, the procedure minimizes the word
length for each stage separately.
minimizecoeffwl uses a stochastic
noise-shaping procedure by default to minimize the wordlength.
To obtain repeatable results on successive function calls,
initialize the uniform random number generator
rand.
Hq = minimizecoeffwl(Hd,...,'NoiseShaping',NSFlag) enables or disables
the stochastic noise-shaping procedure in the minimization of
the word length. By default NSFlag is
true. Setting
NSFlag to
false minimizes the word length
without using noise-shaping.
Hq = minimizecoeffwl(Hd,...,'NTrials',N) specifies the number of Monte
Carlo trials to use in the minimization. Hq
is the filter with the minimum word length among the
N trials that meets the
specifications in Hd.
'NTrials' defaults to one.
Hq = minimizecoeffwl(Hd,...'Apasstol',Apasstol) specifies
the passband ripple tolerance in dB. 'Apasstol' defaults
to 1e-4.
Hq = minimizecoeffwl(Hd,...,'Astoptol',Astoptol) specifies
the stopband tolerance in dB. 'Astoptol' defaults
to 1e-2.
Hq = minimizecoeffwl(Hd,...,'MatchrefFilter',RefFiltFlag) determines
whether the fixed-point filter matches the filter order and transition
width of the floating-point design. Setting 'MatchRefFilter' to true returns
a fixed-point filter with the same order and transition width as Hd.
The 'MatchRefFilter' property defaults to false and
the resulting fixed-point filter may have a different order and transition
width than the floating-point design Hd.
You must have the Fixed-Point Designer™ software installed to use this function.
Examples
Minimize word length for lowpass FIR equiripple filter:
f=fdesign.lowpass('Fp,Fst,Ap,Ast',0.2,0.3,1,60); % Design filter with double-precision floating point Hd=design(f,'equiripple'); % Find minimum wordlength fixed-point filter % with 0.15 dB stopband tolerance Hq=minimizecoeffwl(Hd,'MatchRefFilter',true,'Astoptol',0.15); Hq1=minimizecoeffwl(Hd,'Astoptol',0.15); % Hq.coeffwordlength is 14 bits. % Hq1.coeffwordlength is 11 bits hfvt=fvtool(Hd,Hq,Hq1,'showreference','off'); legend(hfvt,'44 coefficients floating-point',... '44 coefficients 14 bits','48 coefficients 11 bits');

Version History
Introduced in R2011a