10.02.2015 08:59, Alexander E. Patrakov wrote: > 10.02.2015 02:27, David Henningsson wrote: >>> Filters can overshoot. Please clamp to the range of short. >> >> Is this really true here - as Butterworth and LR4 filters never boost >> any frequency, only attenuate, can this filter still overshoot? > > Well, I think yes. See here for an example how an ideal brickwall filter > (that also only removes frequencies) overshoots (by about 9%) when > applied to a square wave: > > https://en.wikipedia.org/wiki/Gibbs_phenomenon > > If you want to test the worst case for sure, please save the impulse > response of the whole filter (obviously, you will have to cut it off at > some point in time), and replace all positive samples with +32760, and > all negative ones with -32760. Then time reverse the result, add some > zeros at the end just in case, and run the result through the filter. I > can do it for you after my official work (i.e. later today). Just did this. Indeed, both lowpass and highpass filters overshoot - and they should. The worst-case testcases are attached, and both testcases are designed so that the absolute values of input samples don't exceed 10000 (i.e. -10.3 dB) for illustrative purposes. So, any sample in the response with the absolute value more than 10000 indicates overshooting. Here is how to run the testcases: pacmd load-module module-null-sink format=float32ne rate=44100 channel_map=front-left,front-right,lfe parec --fix-format --fix-rate --fix-channels --file-format=wav --format=float32le --rate=44100 --channels 3 -d null.monitor response-to-lf.wav & paplay -d null testcase-lf.wav ; killall parec parec --fix-format --fix-rate --fix-channels --file-format=wav --format=float32le --rate=44100 --channels 3 -d null.monitor response-to-hf.wav & paplay -d null testcase-hf.wav ; killall parec Then open response-to-lf.wav and response-to-hf.wav in Audacity and look at waveforms. Try to amplify them, Audacity will show you the current peak level. In both original testcases, it is -10.3 dB. In the response to the high-frequency test, the highpass filter produces output that can be amplified only by 1.1 dB without clipping. The peak value is 28740 - i.e. we have more than 187% of overshoot! For the low-frequency test, the lowpass filter produces output that can be amplified only by 9.2 dB without clipping. The peak value is 11321 - i.e. we still have an overshoot by 13%. These overshoot values are for the worst cases. -- Alexander E. Patrakov -------------- next part -------------- A non-text attachment was scrubbed... Name: testcase-hf.wav Type: audio/x-wav Size: 1676 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150210/eecdd2db/attachment-0002.wav> -------------- next part -------------- A non-text attachment was scrubbed... Name: testcase-lf.wav Type: audio/x-wav Size: 4048 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150210/eecdd2db/attachment-0003.wav>