The analog transfer function for a peak filter is given by [102,5]
It is easy to show that both zeros and both poles are on the unit
circle in the left-half
plane, and when
(a ``cut''), the
zeros are closer to the
axis than the poles.
Again, the bilinear transform can be used to convert the analog peaking equalizer section to digital form.
Figure 10.16 gives a matlab listing for a peaking EQ section. Figure 10.17 shows the resulting plot for an example call:
boost(2,0.25,0.1);The frequency-response utility myfreqz, listed in Fig.7.1, can be substituted for freqz.
function [B,A] = boost(gain,fc,bw,fs);
%BOOST - Design a boost filter at given gain, center
% frequency fc, bandwidth bw, and sampling rate fs
% (default = 1).
%
% J.O. Smith 11/28/02
% Reference: Zolzer: Digital Audio Signal Processing, p. 124
if nargin<4, fs = 1; end
if nargin<3, bw = fs/10; end
Q = fs/bw;
wcT = 2*pi*fc/fs;
K=tan(wcT/2);
V=gain;
b0 = 1 + V*K/Q + K^2;
b1 = 2*(K^2 - 1);
b2 = 1 - V*K/Q + K^2;
a0 = 1 + K/Q + K^2;
a1 = 2*(K^2 - 1);
a2 = 1 - K/Q + K^2;
A = [a0 a1 a2] / a0;
B = [b0 b1 b2] / a0;
if nargout==0
figure(1);
freqz(B,A);
title('Boost Frequency Response')
end
|
![]() |