Let
denote the convolution kernel of the continuous-time
Hilbert transform from (4.17) above:
Note that we cannot allow a time-domain sample at time 0 in (4.22) because it would be infinity. Instead, time 0 should be taken to lie between two samples, thereby introducing a small non-integer advance or delay. We'll choose a half-sample delay. As a result, we'll need to delay the real-part filter by half a sample as well when we make a complete single-sideband filter.
The matlab below illustrates the design of an FIR Hilbert-transform
filter by the window method using a Kaiser window. For a more
practical illustration, the sampling-rate assumed is set to
Hz instead of being normalized to 1 as usual. The
Kaiser-window
parameter is set to
, which normally gives
``pretty good'' audio performance (cf. Fig.3.28). From
Fig.3.28, we see that we can expect a stop-band attenuation
better than
dB. The choice of
, in setting the
time-bandwidth product of the Kaiser window, determines both the
stop-band rejection and the transition bandwidths required by our FIR
frequency response.
M = 257; % window length = FIR filter length (Window Method) fs = 22050; % sampling rate assumed (Hz) f1 = 530; % lower pass-band limit = transition bandwidth (Hz) beta = 8; % beta for Kaiser window for decent side-lobe rejectionRecall that, for a rectangular window, our minimum transition bandwidth would be