1 / 25

Non-recursive Comb Filter

Learn about Manfred Schroeder's Reverberator, comb filter types, impulse response, delay buffers, early reflections, and more in audio processing technologies.

dickersonl
Download Presentation

Non-recursive Comb Filter

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. -1 f f = SR/m Non-recursive Comb Filter a K z-m impulse response K p Ka t f f m samples -p 180o

  2. Recursive Comb Filter K z-m LP b < 1 -1 impulse response f/2 K Kb Kb2 Kb3 Kb4 t f b = .001 m samples f = SR/m delay = m/SR

  3. -b z-m b All-pass Comb Filter recursive and non recursive parts cancel each other impulse response b b2 b3 b4 t f -b

  4. a f non-recursive recursive +1 recursive -1 a f

  5. Manfred Schroeder Reverberator decay density

  6. Manfred Schroeder Reverberator (decay) Allpass recursive comb (density) Block diagram of a single channel (monophonic) reverberator Block diagram of the sampled data system simulated on the digital computer

  7. Schroeder Reverberator 29.7 msec c 37.1 c 5.0 1.7 A A 41.1 c density 43.7 c decay sets reverb time

  8. f + Summation of recursive comb filters should approximate a flat response f + f = f

  9. Problems a 1) Response is not flat f 2) t Impulse response has periodicities that produce pitch percepts periodic

  10. Air & wall absorption filter z-plane Usually the low-pass filter inserted into the recursive comb filter is a first-order filter. Here is a second-order filter that is more accurate. Low-frequency loss Power in dB Frequency in Hz (linear)

  11. simulated Comparison of simulated and actual rooms real

  12. Early Reflections input delay buffer reverb output input early reflections a reverb t

  13. Kendall & Martens 1984

  14. Spatial Reverberation

  15. Wet/Dry Mix Dry L R Reverb Wet

  16. Implementing Delay Buffers - Queue in out in out

  17. Delay Buffer outPos delay inPos outPos = inPos - delay; buffer[inPos] = in; out = buffer[outPos]

  18. in i j out buffer(i) = in; out = buffer(j); if(++i >=buffer.length) i = 0; if(++j >=buffer.length) j = 0;

  19. in buffer j i out buffer length is larger than needed delay is i - j

  20. 2n-sized buffers implemented with masking i = (i + 1) & 511; bitwise and i 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 511 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

  21. modulated delay in buffer j i out delay (i - j) is dynamic given int delay: j = i - delay; while (j >= buffer.length) j -= buffer.length; while (j < 0) j += buffer.length; check bounds! check bounds!

  22. Fractional Delay in buffer i instDelay as int.fract out? outPos = i - instDelay; j = (int) outPos; jP1 = j + 1; fract = outPos - j; ~ check bounds ~ ~ check bounds ~ How could we use the fractional delay?

  23. Linear Interpolation Big Problem x(n) y(n) z-1 Causes amplitude modulation of high frequencies buffer(jP1) buffer(j) fract t out = buffer(jP1)*(1.0-fract) + buffer(j)*fract;

  24. Big Problem? Averaging two samples is filtering (1st-order FIR Low-pass) a fract = 0 1.0 f SR/2 fract = 0.5

  25. z-1 Allpass Interpolation x(n) y(n) 1-fract z-1 1-fract Good for delay modulation that causes relatively small pitch changes

More Related