21. FIR filter design
● Given the desired frequency response
– Take IFFT
– Shift the signal to positive time values
– Truncate the signal to a suitable length
– Apply a windowing function
http://www.dspguide.com/ch17/1.htm
26. Overlap-Save
Corrupted fragment
The input signal is split into overlapping segments
Corrupted fragments are thrown away
(the previous segment contains a non-corrupted version)
27. Overlap-Add
Space for growth
Pad the input signal fragments with zeroes
Perform circular convolution
Result: overlapped segments of output signal
Resolve the overlap by summation
28. module-equalizer-sink
● Where is this?
– Take IFFT
– Shift the signal to positive time values
– Truncate the signal to a suitable length
– Apply a windowing function
30. module-equalizer-sink
/* FIXME: Please clean this up. I see more commented code lines
* than uncommented code lines. I am sorry, but I am too dumb to
* understand this. */
fftwf_malloc(); …; free();
Buffer Overflow
45. Other Relevant Projects
● Speex: contains a denoiser
● Vlevel: dynamic range compressor
● BruteFIR: a fast convolution engine
● DRC-FIR: digital room correction