Mustang lowpass test, Using a cosine filter |
- No over 30 sec clips of copyrighted music. Cite properly and never more than necessary for the discussion.
- No copyrighted software without permission.
- Click here for complete Hydrogenaudio Terms of Service
![]() ![]() |
Mustang lowpass test, Using a cosine filter |
Aug 21 2005, 22:14
Post
#1
|
|
![]() Group: Members Posts: 396 Joined: 23-January 05 From: The Netherlands Member No.: 19254 |
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 This post has been edited by bug80: Aug 22 2005, 18:33
Attached File(s)
mustang.flac ( 522.19K )
Number of downloads: 456
mustang_10kHz_smooth.flac ( 484.11K )
Number of downloads: 395
mustang_14kHz_smooth.flac ( 524.76K )
Number of downloads: 492 |
|
|
|
Aug 21 2005, 22:20
Post
#2
|
|
![]() ABC/HR developer, ff123.net admin Group: Developer (Donating) Posts: 1396 Joined: 24-September 01 Member No.: 12 |
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 |
|
|
|
Aug 21 2005, 22:24
Post
#3
|
|
![]() Group: Members Posts: 396 Joined: 23-January 05 From: The Netherlands Member No.: 19254 |
QUOTE (ff123 @ Aug 21 2005, 11:20 PM) 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 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? |
|
|
|
Aug 22 2005, 12:19
Post
#4
|
|
![]() Group: Developer Posts: 1317 Joined: 20-March 04 From: Göttingen (DE) Member No.: 12875 |
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 |
|
|
|
Aug 22 2005, 13:33
Post
#5
|
|
![]() Group: Members Posts: 1189 Joined: 19-May 05 From: Montreal, Canada Member No.: 22144 |
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..)
|
|
|
|
Aug 22 2005, 18:39
Post
#6
|
|
|
Moderator Group: Super Moderator Posts: 3934 Joined: 29-September 01 Member No.: 73 |
QUOTE (Shade[ST] @ 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..) How can you ABX cosine versus brickwall at 14 kHz while the number of downloads for the cosine file is zero |
|
|
|
Aug 22 2005, 18:50
Post
#7
|
|
![]() Group: Members Posts: 396 Joined: 23-January 05 From: The Netherlands Member No.: 19254 |
QUOTE (SebastianG @ Aug 22 2005, 01:19 PM) 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. ![]() Compare this with a brickwall filter and you see that the effective length of the FIR filter is higher: ![]() QUOTE 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) I've made a figure of this filter also (I've done a minimum phase operation first) ![]() Looks good. I've applied both "my" 15 kHz filter and your filter24 on the mustang sample, the results are attached to this post. 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.
Attached File(s)
mustang_15kHz_smooth.flac ( 532.64K )
Number of downloads: 298
mustang_15kHz_filter24.flac ( 532.84K )
Number of downloads: 278 |
|
|
|
Aug 22 2005, 18:51
Post
#8
|
|
![]() Group: Members Posts: 396 Joined: 23-January 05 From: The Netherlands Member No.: 19254 |
QUOTE (Pio2001 @ Aug 22 2005, 07:39 PM) QUOTE (Shade[ST) ,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..) How can you ABX cosine versus brickwall at 14 kHz while the number of downloads for the cosine file is zero I've posted new versions |
|
|
|
Aug 22 2005, 18:59
Post
#9
|
|
|
Moderator Group: Super Moderator Posts: 3934 Joined: 29-September 01 Member No.: 73 |
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. |
|
|
|
Aug 22 2005, 19:14
Post
#10
|
|
![]() Group: Members Posts: 396 Joined: 23-January 05 From: The Netherlands Member No.: 19254 |
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.
Attached File(s)
|
|
|
|
Aug 22 2005, 19:19
Post
#11
|
|
![]() Group: Members Posts: 3353 Joined: 6-July 03 From: Sachsen (DE) Member No.: 7609 |
QUOTE (bug80 @ Aug 22 2005, 08:14 PM) 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). Out of curiosity - where is your objective hearing-cutoff, when testing it with unnatural sounds(sine-wave) ? This post has been edited by Lyx: Aug 22 2005, 19:20 -------------------- I am arrogant and I can afford it because I deliver.
|
|
|
|
Aug 22 2005, 19:20
Post
#12
|
|
![]() Group: Developer Posts: 1317 Joined: 20-March 04 From: Göttingen (DE) Member No.: 12875 |
QUOTE (bug80 @ Aug 22 2005, 06:50 PM) 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. 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 |
|
|
|
Aug 22 2005, 19:42
Post
#13
|
|
![]() Group: Members Posts: 396 Joined: 23-January 05 From: The Netherlands Member No.: 19254 |
QUOTE (Lyx @ Aug 22 2005, 08:19 PM) QUOTE (bug80 @ Aug 22 2005, 08:14 PM) 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). Out of curiosity - where is your objective hearing-cutoff, when testing it with unnatural sounds(sine-wave) ? 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 ABX result was 7/8. I could ABX the 18 kHz with a 8/8 result. edit: and now I'm having a headache. This post has been edited by bug80: Aug 22 2005, 19:57 |
|
|
|
Aug 22 2005, 19:54
Post
#14
|
|
![]() Group: Members Posts: 396 Joined: 23-January 05 From: The Netherlands Member No.: 19254 |
QUOTE (SebastianG @ Aug 22 2005, 08:20 PM) 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. |
|
|
|
Aug 23 2005, 14:18
Post
#15
|
|
![]() Group: Developer Posts: 1317 Joined: 20-March 04 From: Göttingen (DE) Member No.: 12875 |
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 |
|
|
|
Aug 23 2005, 14:26
Post
#16
|
|
![]() Group: Members Posts: 1189 Joined: 19-May 05 From: Montreal, Canada Member No.: 22144 |
|
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 20th June 2013 - 12:53 |