Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Mustang lowpass test (Read 13197 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Mustang lowpass test

pio2001 mentioned in this topic, that the famous "mustang" lowpass test suffers from ringing, due to the use of brickwall lowpass filters.

Therefore, I took the original mustang.flac and filtered it myself, using a cosine filter with a width of 1 kHz. So, if the lowpass is set at 14 kHz, the actual filter will gradually go from one to zero in the band 13.5 - 14.5 kHz with a cosine shape, with the -6 dB point at 14 kHz.

This will have the effect, that frequencies higher than the "lowpass" frequency are present, but it will reduce ringing (something on which people may be able to ABX the samples on, instead of the actual filtering).

I've made an 10, 12, 14, 16 and 18 kHz version (for testing, I've uploaded the 10 and 14 versions). Let me know if this helps.

EDIT: I've accidently hit the Post New Topic button two times, the two topic without the 3 samples can be removed. Sorry for the inconvenience

Mustang lowpass test

Reply #1
Applaud.wav (search for it on this page):

http://lame.sourceforge.net/gpsycho/quality.html

is probably an even better sample if you just want to know how high you can hear with natural sounds.

ff123

Mustang lowpass test

Reply #2
Quote
Applaud.wav (search for it on this page):

http://lame.sourceforge.net/gpsycho/quality.html

is probably an even better sample if you just want to know how high you can hear with natural sounds.

ff123
[a href="index.php?act=findpost&pid=321596"][{POST_SNAPBACK}][/a]

Thanks, I can make lowpass versions if wanted.

Can anyone comment on my choice for the width of the window? Is 1 kHz maybe too high or too low?

 

Mustang lowpass test

Reply #3
I think this is okay. How did you design the filter ?

I simply would have done a windowed sinc filter with a blackman window. This can be done in Cool Edit too by "drawing" a brickwall filter and selecting am FFT size of something like 256 to prevent exessive ringing.

Maybe it'd be interesting to test a minimum phase filter as well or something "in-between" like this impulse response (transition 15-15.5 kHz)

Sebi

Mustang lowpass test

Reply #4
Either cosine or brickwall, I can still ABX 16/16 for 14KHz.. But I can't tell the difference from the other filter, really, though (must mean I'm not trained for artifacts..)

Mustang lowpass test

Reply #5
Quote
Either cosine or brickwall, I can still ABX 16/16 for 14KHz.. But I can't tell the difference from the other filter, really, though (must mean I'm not trained for artifacts..)
[a href="index.php?act=findpost&pid=321726"][{POST_SNAPBACK}][/a]


How can you ABX cosine versus brickwall at 14 kHz while the number of downloads for the cosine file is zero 

Mustang lowpass test

Reply #6
Quote
I think this is okay. How did you design the filter ?

Pretty straightforward, using Matlab. For example, the filter for 15 kHz is equal to 1 from DC up to 14.5 kHz, is zero from 15.5 kHz to the Nyquist frequency and in between it has a

0.5*(1+cos(pi*x/N))

shape. See the figure below, where you can see both the frequency domain and the (minimum phased) time domain version.



By the way. I've made a mistake when filtering the samples in my first post (the cosine filter was applied in the band f-500 to f+1000 Hz, instead of f-500 to f+500 Hz). So, I've uploaded new versions.

Mustang lowpass test

Reply #7
Quote
Quote
,Aug 22 2005, 02:33 PM]Either cosine or brickwall, I can still ABX 16/16 for 14KHz.. But I can't tell the difference from the other filter, really, though (must mean I'm not trained for artifacts..)
[a href="index.php?act=findpost&pid=321726"][{POST_SNAPBACK}][/a]


How can you ABX cosine versus brickwall at 14 kHz while the number of downloads for the cosine file is zero 
[a href="index.php?act=findpost&pid=321792"][{POST_SNAPBACK}][/a]

I've posted new versions

Mustang lowpass test

Reply #8
The files are OK.
I can ABX 10 kHz smoothed vs 10 kHz brickwall relying on the ringing (17/17), and I can't ABX 14 kHz brickwall vs 14 kHz smoothed. Which is consistent with the fact that I can't ABX 14 kHz brickwall vs original.

Mustang lowpass test

Reply #9
I'm able to ABX up to 17 kHz (result 12/16, for the first 8 trials I used my headphones, the second 8 trials using my speakers. Using my speakers, I got a 8/8 score).

Here is the 17 kHz sample.

Mustang lowpass test

Reply #10
Quote
I'm able to ABX up to 17 kHz (result 12/16, for the first 8 trials I used my headphones, the second 8 trials using my speakers. Using my speakers, I got a 8/8 score).
[a href="index.php?act=findpost&pid=321805"][{POST_SNAPBACK}][/a]


Out of curiosity - where is your objective hearing-cutoff, when testing it with unnatural sounds(sine-wave) ?
I am arrogant and I can afford it because I deliver.

Mustang lowpass test

Reply #11
Quote
Pretty straightforward, using Matlab. For example, the filter for 15 kHz is equal to 1 from DC up to 14.5 kHz, is zero from 15.5 kHz to the Nyquist frequency and in between it has a

0.5*(1+cos(pi*x/N))

shape. See the figure below, where you can see both the frequency domain and the (minimum phased) time domain version.
[a href="index.php?act=findpost&pid=321793"][{POST_SNAPBACK}][/a]

And then ? Yulewalker ?

I simply did something like this to get "filter24"
> [b,a] = ellip(n,0.05,35,cutoff); // minimum phase IIR elliptic lowpass
> i1 = zeros(1,3000);
> i1(1000) = 1; // unit impulse
> i2 = filtfilt(b,a,i1);  // bidirectionally applied -> zero phase
> i3 = filter(b,a,i2); // and forwards only additionally
> wavwrite(i3(range),....)

I don't remember the actual values of 'n' and 'cutoff' (Probably n=6 and cutoff=14.5/22.05) but this gives you a filter with 0.15 dB passpand ripples and 105 dB stopband attenuation. It's neither minimum phase nor linear phase (sort of a trade-off, a good one i think).

btw: I didn't know you are already using minimum phase filters.

I guess, I'll do some ABXing tonight.


Sebi

Mustang lowpass test

Reply #12
Quote
Quote
I'm able to ABX up to 17 kHz (result 12/16, for the first 8 trials I used my headphones, the second 8 trials using my speakers. Using my speakers, I got a 8/8 score).
[a href="index.php?act=findpost&pid=321805"][{POST_SNAPBACK}][/a]


Out of curiosity - where is your objective hearing-cutoff, when testing it with unnatural sounds(sine-wave) ?
[a href="index.php?act=findpost&pid=321807"][{POST_SNAPBACK}][/a]

I don't know actually, it's a long time ago an audiogram was made for my ears. So, I've just performed a quick-and-dirty test, using sine waves I've created in Matlab (length 3 sec). I gave the sine waves an amplitude of -3 dB to avoid any clipping (and thus to avoid extra harmonics). I've set my hi-fi set at a normal listening volume.

The frequencies I tested where 16 kHz to 19 kHz, in steps of 500 Hz. I could hear the waves up to 18.5 kHz (very, very softly).

To really convince myself, I ABXed this wave against silence  The sine wave was windowed using a Hann window to avoid start/end effects. I forced myself to chose before the sample ended, because the ABX plugin of foobar2000 gives a click once the sine sample stopped.

The ABX result was 7/8.

I could ABX the 18 kHz with a 8/8 result.

edit: and now I'm having a headache.

Mustang lowpass test

Reply #13
Quote
And then ? Yulewalker ?


No, I expanded the frequency domain to get negative frequencies also (F(omega) = conj(F(-omega)), I have a special toolbox for that kind of operations). After that I created a minum phase version using the rceps command. Finally, I transformed back to the frequency domain and filtered using:

Y(w) = F(w)X(w)

(frequency domain convolution).

Quote
I simply did something like this to get "filter24"
> [b,a] = ellip(n,0.05,35,cutoff); // minimum phase IIR elliptic lowpass
> i1 = zeros(1,3000);
> i1(1000) = 1; // unit impulse
> i2 = filtfilt(b,a,i1);  // bidirectionally applied -> zero phase
> i3 = filter(b,a,i2); // and forwards only additionally
> wavwrite(i3(range),....)

I don't remember the actual values of 'n' and 'cutoff' (Probably n=6 and cutoff=14.5/22.05) but this gives you a filter with 0.15 dB passpand ripples and 105 dB stopband attenuation. It's neither minimum phase nor linear phase (sort of a trade-off, a good one i think).

That certainly looks more official. 

Quote
I guess, I'll do some ABXing tonight.

If you'd like to use my samples, you can find them here in the range 14 to 19 kHz.

Mustang lowpass test

Reply #14
I did some ABXing with my own set of lowpass filters + Foobar2K + Convolver plugin.

Results:
delay-only vs. 14 kHz lowpass: 12/12
delay-only vs. 15 kHz lowpass: 12/12
delay-only vs. 16 kHz lowpass:  4/8

(delay-only is a delayed version of the original to compensate for the filters delay)


Sebi

Mustang lowpass test

Reply #15
Quote
How can you ABX cosine versus brickwall at 14 kHz while the number of downloads for the cosine file is zero 
[a href="index.php?act=findpost&pid=321792"][{POST_SNAPBACK}][/a]

Isn't the cosine-filtered version what bug80 posted at the top?  And the brickwall what's available on ff123?