SpHr_FilterBankBiquadCoefs [ flags ] samplingRate, centerFreqs, coefsWaveName
Generates a bank of biquad filter coefficients. Adapted from Malcolm Slaney@Interval. (c) 1998 Interval Research Corporation. These coefficients are required by the subsequent SpHr_FilterBankBiquad operation.
Parameters
samplingRate Sampling rate (Hz)
centerFreqs Specification for previously obtained double precision wave of center frequencies. See SpHr_FilterCenterFreqs.
coefsWaveName Specification for the double precision wave to which biquad filter coefficients are written.
Flags
/Q = [q]
Quality factor. If no Q value is passed /Q does nothing and the default Glasberg and Moore value of 9.26449 is used.
/B = [minBW]
Minimum bandwidth. If no value is passed /B does nothing and the default Glasberg and Moore value of 24.7 is used.
/W = { widthsWaveName, [level] }
The widths of Impulse envelopes (see /IE flag) are written to the wave specified by widthsWaveName. level is optional and set to 0.5 by default, where envelope values reach a maximum of 1.0, even if the /N flag is omitted.
/RMS = { RMSWaveName [, minCycles] }
Amplitude scales for generating equal RMS amplitudes across frequency bands are written to the wave specified by RMSWaveName. This wave may be passed to the SpHr_FilterBankBiquad operation using the /RMSW=[RMSSource] flag.
/I = { impulsesDest [, minCycles] }
Impulses for frequency-specific filters are written to the wave specified by impulsesDest. The lengths of the waves, scaled in seconds, are determined by the minimum values passed be centerFrequencies. By default, the length corresponds to 15 cycles (at the lowest frequency passed in centerFreqs) but may lengthened or shortened by setting minCycles.
/IE = { impulseEnvelopesDest [, minCycles] }
Impulse envelopes for frequency-specific filters are written to the wave specified by impulseEnvelopesDest. See /I flag for minCycles.
/N = [norm]
/N=1, Same as the /N flag alone. If the /I or /IE flags are used, destination waves are normalized to a maximum of 1.0 for displaying and comparative purposes. If both the /I and /IE flags are present, ImpulsesDest values are normalized using ImpulseEnvelopesDest values.
/N=0, same as no /N flag.
/S = { SpectraDest [, DFTPoints] }
Amplitude spectra for frequency-specific impulses are written to the wave specified by SpectraDest. By default, the largest DFT-compatible size possible is used but fewer points my be used be setting DFTPoints.
/SE = { envelopeSpectraDest [, DFTPoints] }
Amplitude spectra for frequency-specific impulses envelopes are written to the wave specified by envelopeSpectraDest. By default, the largest DFT-compatible size possible is used but fewer points my be used be setting DFTPoints. Spectra are normalized to a maximum of 0.
/FBC = FrontBufferCycles
When FrontBufferCycles > 0, generated impulses and impulse envelopes are offset in time by an amount equal to the passed number of cycles. The offset is generated be inserting zeros.
Example
Function SpHr_FilterBankBiquadCoefs_Example()
variable lowHz = 50
variable highHz = 1500
variable numBands = 50
SpHr_FilterCenterFreqs /Type=2 lowHz, highHz, numBands, CFs
variable fs = 48000
SpHr_FilterBankBiquadCoefs/S=spectra fs, CFs, coefs
End