Echo Generation and Simulated Reverberation R.C. Maher ECEN4002/5002 DSP Laboratory Spring 2003
ECEN4002 Spring 2003Echo and Reverb R. C. Maher2 Recirculating Delay Line Recall that a simple delay FIFO (first-in, first-out) queue can be implemented using a modulo buffer Now, consider a recirculating buffer: + Delay Line (z -N ) k output can also be taken here
ECEN4002 Spring 2003Echo and Reverb R. C. Maher3 Recirculating Delay (cont.) + Delay Line (z -N ) k x[n]y[n] N poles equally spaced around circle (radius k 1/N )
ECEN4002 Spring 2003Echo and Reverb R. C. Maher4 Recirculating Delay (cont.) Example: unit sample response (N=8, k=0.8)
ECEN4002 Spring 2003Echo and Reverb R. C. Maher5 Recirculating Delay (cont.) Frequency response of system A “comb” filter
ECEN4002 Spring 2003Echo and Reverb R. C. Maher6 Echo Generator If length N is short, comb filter effect (audio coloration) is noticeable If length N corresponds to a time delay of 200ms or more, output perceived as an echo of the input Scaling of input is typically needed to prevent overflow
ECEN4002 Spring 2003Echo and Reverb R. C. Maher7 Acoustics Sound propagates through air as a longitudinal wave Speed of sound: –343 20°C (331 0°C) –About 1125 ft/s –About 1 ft/ms (light travels about 1 ft/ns) –About 5 seconds per mile Audible wavelengths: 1.7cm to 17m
ECEN4002 Spring 2003Echo and Reverb R. C. Maher8 Human Hearing Characteristics Frequency sensitivity roughly 20 Hz – 20kHz –3 decades, or 10 octaves –Compares to less than one octave for human visual system (wavelengths: 3800 – 7600 angstroms) Amplitude sensitivity roughly 20 Pa – 20Pa –Atmospheric pressure: 10 5 Pa –Minimum audible sound corresponds to motion a fraction of diameter of hydrogen atom! –Any better, and we would “hear” thermal noise Difference judgments good, absolute judgments poor
ECEN4002 Spring 2003Echo and Reverb R. C. Maher9 Acoustical Transfer Function Linear Time-Invariant (LTI) systems can be fully described by an impulse response Fourier Transform of the impulse response is the transfer function Acoustical path from a sound source to the listener’s ear is LTI, so we can describe the acoustical system with a transfer function
ECEN4002 Spring 2003Echo and Reverb R. C. Maher10 Reflections and Reverberation Direct sound arrival is followed by reflections from room surfaces Overlapping reflections are heard as reverberation Direct-to-Reverberant ratio gives cues to size of room, type of room surfaces, and distance from source
ECEN4002 Spring 2003Echo and Reverb R. C. Maher11 Direct Sound and Reflections Sound Source
ECEN4002 Spring 2003Echo and Reverb R. C. Maher12 Reverb Simulation Method 1: obtain impulse response of real room, then convolve with input signal –Results can be good, but computation and storage requirements are high: impulse response sequence for 3-5 seconds is ~200k Method 2: use recirculating delay lines to create an artificial impulse response –Less computation and storage, but tricky to get satisfactory sound quality
ECEN4002 Spring 2003Echo and Reverb R. C. Maher13 Reverb Simulation (cont.) For good reverb: –echo density (echoes per second) must increase as time goes on –response should be quasi-random (no spectral coloration) –high frequencies typically decay faster than low frequencies
ECEN4002 Spring 2003Echo and Reverb R. C. Maher14 Reverb Simulation (cont.) Plan: use parallel recirculating delay lines with incommensurate delays + Delay Line (z -N 1 ) k1k1 + + Delay Line (z -N 2 ) k2k2
ECEN4002 Spring 2003Echo and Reverb R. C. Maher15 Other Improvements Cascade of all pass recirculators + Delay Line (z -N ) k + -k N poles and zeroes equally spaced around circle (pole radius k 1/N, zero radius k -1/N )
ECEN4002 Spring 2003Echo and Reverb R. C. Maher16 Other Improvements (cont.) Add lowpass filter to feedback path: shortens high frequency reverb time: more like natural reverberation + Delay Line (z -N ) k LPF
ECEN4002 Spring 2003Echo and Reverb R. C. Maher17 EVM Note: External Memory To use external memory on EVM, need to program the bus control register and the address attribute register 0 (see Family Manual) movep #$040821,x:M_AAR0;Compare 8 most significant bits ;Look for a match with address ;Y: xxxx xxxx xxxx xxxx ;No pack, no mux, Y enabled ;P and X disabled ;AAR0 pin active low movep #$012421,x:M_BCR ;One ext. wait state Access to external memory is slower than internal memory: wait state stalls processor