http://www.hydrogenaudio.org/forums/index....st&p=616410
This makes it hard to plot anything wider than 2 decades without having to resort to multiple plots. So some kind of antialiasing filter needs to be employed - basically, a variable-rate resampling operation, but one with very specific requirements:
- No resampling below some critical frequency, and exponentially decreasing lowpass above critical frequency.
- Minimal ringing and pulse widening. A large 1-sample pulse in the spectrum response should transform into a 1-2 sample pulse in the output.
- No scalloping or other response inaccuracy depending on input signal position. That is, total spectrum power must not change the frequency (x-coordinate) of a sample position changes, and ideally, the output sample peak should change only minimally if its frequency changes.
I then tried pre-warping the inputs to the sinc+hamming window by, essentially, something to the effect of x=>A+B/x etc. The first half of the window is compressed, the second half is expanded, and the window peak moves to the left half. I wound up having to manually change the scale of the window on each side (ie, if x<0 x*=A; else x*=B; y=sinc(x)). This seemed to eliminate the theoretical concerns about missing samples, but there is tremendous ringing in the output extending for many pixels and the pulses tended to widen unacceptably.
My current thinking is that I should just get back down to basics and just do a box average of samples, with perhaps some interpolation/fractional counting of endpoint samples. This eliminates the ringing issue and the scalloping, and clearly makes the power equivalence thing a non-issue, but I am a little concerned there will be hidden costs to this, like an insufficient amount of antialiasing.
Any suggestions? Am I reinventing the wheel here? How does RMAA etc do this?
