22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

554 MUSICAL ApPLICATIONS OF MICROPROCESSORS<br />

tion is straightforward as well. Even when implemented in s<strong>of</strong>tware, it is<br />

reasonably efficient if the number <strong>of</strong> frequency bands is small.<br />

A general block diagram <strong>of</strong> the structure to be implemented is shown<br />

in Fig. 16-6. This is essentially an extension <strong>of</strong> the analog channel diagram<br />

into digital form. The input signal is a string <strong>of</strong> samples at the normal audio<br />

sample rate, which will be assumed to be 20 ksls in this discussion. The<br />

sampled signal passes through a bandpass filter, rectifier, and low-pass filter<br />

in succession, all <strong>of</strong> which operate at the audio sample rate. The output <strong>of</strong> the<br />

low-pass filter, however, changes very slowly and therefore can be resampled<br />

at a much lower frequency to provide spectral frames at a reasonable rate such<br />

as 100/sec. As a computer program, the analyzer would essentially accept<br />

samples continuously and return a spectrum frame for every 200 input<br />

samples.<br />

The first element to consider is the bandpass filter. Since only a<br />

bandpass response is needed and the center frequencies are fixed, the cannonical<br />

form will be used because it requires only two multiplications per<br />

sample.<br />

The next task is to select the center frequencies <strong>of</strong> the filters. The<br />

spectrum sample period <strong>of</strong> 10 msec suggests that 100-Hz bands are optimum,<br />

although wider or narrower bands can be used as well. A bandwidth<br />

narrower than 100 Hz simply means that the bandpass filter will respond<br />

slowly to signal changes and, as a result, the channel output will be oversampled.<br />

A bandwidth greater than 100 Hz means that the low-pass filter and<br />

sampler following the rectifier will limit the channel response speed rather<br />

than the bandpass filter.<br />

Let's assume, then, that we wish to minimize the number <strong>of</strong> frequency<br />

bands yet retain enough data to provide a good representation <strong>of</strong> significant<br />

audible features. For illustration there will be 30 frequency bands scaled on a<br />

quasiexponential scale with bandwidths ranging from 50 Hz at the low end<br />

to 500 Hz at 7.5 kHz. Frequencies above 7.5 kHz are not considered, since<br />

the low-pass filter used in A-to-D conversion has probably attenuated them<br />

anyway.<br />

It is convenient to specify lower and upper cut<strong>of</strong>f frequencies for the<br />

filters, especially when using a mixrure <strong>of</strong> bandwidths. The center frequency,<br />

however, is what is needed to design the filter and it is not exactly midway<br />

between the upper and lower cut<strong>of</strong>f points. It is, in fact, the geometric mean<br />

<strong>of</strong> Ph and PI and is given by Pc = VPIFh. where P, is the center frequency.<br />

This formula holds for any definition <strong>of</strong> cut<strong>of</strong>f frequency as long as the same<br />

definition applies to both PI and Ph.<br />

Given the center frequencies and bandwidths, the last task is to compute<br />

the filter Q factors. Since the percentage bandwidths vary from band to<br />

band as well as the bandwidths themselves, each filter will have a different Q.<br />

But before the Qs can be determined, the inevitable overlap between bands<br />

must be considered. Overlap is bound to occur because the cut<strong>of</strong>f slope at the<br />

band edges is finite. If the Qs are made high in order to minimize overlap as

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!