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