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.

500 MUSICAL ApPLICATIONS OF MICROPROCESSORS<br />

increases such that the delay introduces a 180 0 phase shift, the delayed<br />

signal cancels the undelayed signal in the mixer producing zero output.<br />

Higher frequencies are passed in varying amounts until the phase shift<br />

through the" delay reaches 3 X 180 0 which produces another cancellation<br />

and so forth. The filter in Fig. 14-13B works the same way except that the<br />

first notch is at zero frequency.<br />

If the delay time is slowly varied while filtering a broadband signal<br />

source, the distinctive sound <strong>of</strong> flanging is produced. In a digital synthesis<br />

system, the delay is very easily produced with a small memory buffer, the<br />

size <strong>of</strong> which determines the delay. Such a technique can only give delays<br />

that are a multiple <strong>of</strong> the sample period, which results in some choppiness in<br />

the flanging effect. This may be overcome, at some sacrifice in noise level, by<br />

interpolating between adjacent samples at the end <strong>of</strong> the simulated delay line<br />

to provide essentially continuous delay variation.<br />

Filters with an Arbitrary Response<br />

One <strong>of</strong> the advantages <strong>of</strong> digital signal processing is that any filter<br />

response can be obtained in a straightforward manner. Furthermore, the<br />

response may be changed as <strong>of</strong>ten and as much as desired concurrent with the<br />

filtering action.<br />

In the previous chapter, one method <strong>of</strong> arbitrary filtering was mentioned.<br />

In use, one first ·takes the Fourier ttansform <strong>of</strong> the signal to be<br />

filtered. Next the spectrum is modified according to the filter characteristic<br />

desired. The modification involves multiplying the amplitude <strong>of</strong> each spectral<br />

component by the filter's amplitude response value at the corresponding<br />

frequency. If phase is important, the phase <strong>of</strong> each spectral component is<br />

added to the filter's phase response value at the corresponding frequency. The<br />

modified spectrum is then converted into the filtered signal via inverse<br />

transformation.<br />

Of course, with the FFT, the continuous stream <strong>of</strong> samples to be<br />

filtered must be broken into records, processed, and the results spliced<br />

together again. This indeed can be accomplished without the distortions that<br />

were encountered in direct FFT synthesis, but the process is complex and can<br />

be time consuming. Another method that works continuously, sample by<br />

sample, is called direct convolution. With this method, one can write a subroutine<br />

that accepts a table <strong>of</strong> numbers describing the filter's time domain<br />

response along with indi1 1 idual input samples to produce individual output<br />

samples. The routine is exceedingly simple and can be quite efficient when<br />

written in assembly language or implemented in hardware.<br />

Before describing the algorithm, it is necessary to become familiar with<br />

a filter's impulse response because that is the table <strong>of</strong> numbers used by the tilter<br />

subroutine. The transient response <strong>of</strong> high-fidelity components is usually<br />

characterized by noting their response to square waves. If the square-wave

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

Saved successfully!

Ooh no, something went wrong!