Jump to content
IGNORED

Help me to understand filters


Recommended Posts

1 hour ago, manisandher said:

Today, I've been going the other way, i.e.:

 

1. take a 24/44.1 file (or 24/88.2)

2. up-sample to 24/176.4 (or 24/352.8), using various HQPlayer filters

3. down-sample back to 24/44.1 (or 24/88.2), using various HQPlayer filters

4. null down-sampled file against original

 

With this process, the down-sampled files do not null with the original - in the case of pink noise, around -70dB.

You mean you get -70dB in the whole spectrum? Because when I do that (with sox) it still nulls at around -190 in 0-20kHz range:

null.spectrum.thumb.png.415b2b84f3b08ff74ecb27178839fa8f.png

 

null.thumb.png.adb78a473e3b3c10782af3e6994f174e.png

Link to comment
11 minutes ago, danadam said:

You mean you get -70dB in the whole spectrum? Because when I do that (with sox) it still nulls at around -190 in 0-20kHz range:

 

You're getting exactly what I was expecting. I'm not getting anything like this.

 

But increasing up-sampling seems to help:

 

1969232411_Up-samplinghelps.thumb.jpg.48f6ed5b5bec85adb997fdc01f46d0be.jpg

 

What source file are you using?

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment

I can get a perfect null (<-200dB) with Audacity up to almost 21 kHz, but nowhere near with HQPlayer:

 

1223758912_NULL-up-sample_down-sample.thumb.jpg.1995780b7a9e5846ae9298021e98349a.jpg

 

I'm pretty certain that whatever HQPlayer's doing during filtering, it's absolutely by design.

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment

Thanks, that's really helpful, and explains why I'm not getting a null - the filter is doing a lot of 'extra work' cleaning up the decimation filter's mess. Got it.

 

But can you explain something that's still grating on my mind...

 

When I go from 176.4 to 44.1 to 176.4, I can get a nice null below 20 kHz or so. But using exactly the same filters, when I go from 44.1 to 176.4 to 44.1, I don't. Is is because in the former case that decimation filter has already cleaned things up ready for the interpolation filter?

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment
7 minutes ago, manisandher said:

When I go from 176.4 to 44.1 to 176.4, I can get a nice null below 20 kHz or so. But using exactly the same filters, when I go from 44.1 to 176.4 to 44.1, I don't. Is is because in the former case that decimation filter has already cleaned things up ready for the interpolation filter?

 

How are you doing the nulls in first place? Taking possible sub-sample delays into account?

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
7 minutes ago, Miska said:

How are you doing the nulls in first place?

 

Capturing the output from HQP (resampled twice) and then simply aligning it with the original in Audacity.

 

7 minutes ago, Miska said:

Taking possible sub-sample delays into account?

 

No. I wouldn't know how to do this even if I wanted to.

 

But the simple approach I'm taking is capable of <-200dB nulls (see Audacity plot earlier). And I'm getting -190dB nulls with many of HQP's filters... but only going from hires to 44.1 and back to hires, and not the other way round.

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment

 

5 hours ago, manisandher said:

 

Capturing the output from HQP (resampled twice) and then simply aligning it with the original in Audacity.

 

 

No. I wouldn't know how to do this even if I wanted to.

 

But the simple approach I'm taking is capable of <-200dB nulls (see Audacity plot earlier). And I'm getting -190dB nulls with many of HQP's filters... but only going from hires to 44.1 and back to hires, and not the other way round.

 

Mani.

 

I think pkane2001's DeltaWave null comparator should take care of sub sample delay.  Have you tried that?  It's a wonderful program.

Link to comment
On 10/11/2020 at 3:43 AM, manisandher said:

4. minringFIR-lp:

 

700831432_4.minringFIR-lpvs.Original.thumb.jpg.0e1d5f936caa3e8291b242bcb0292e70.jpg

 

The up-sampled and original files do not null. There is a reasonable amount of imaging beyond Nyquist (see inset).

 

 

 

Thank you for posting this.  This is exactly how the Weiss Saracon resampler looks, and I could never find any other resampler that had this character.

Link to comment
4 hours ago, Steve B said:

I think pkane2001's DeltaWave null comparator should take care of sub sample delay.  Have you tried that?  It's a wonderful program.

 

I've always meant to give it a go. Thanks for reminding me 👍.

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment
5 hours ago, Steve B said:

I think pkane2001's DeltaWave null comparator should take care of sub sample delay.  Have you tried that?  It's a wonderful program.

 

Yes, that should likely do it. I have not used it myself, but I would assume it does the right thing, or at least gets closer.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
On 10/11/2020 at 12:42 PM, PeterSt said:

One hint is in my mind: The downsampling for RBCD possibly has not been done so well as you just did it (you worked your way to it 😉) but you made a good job out of it. So ... nothing tells me that a means of filtering could not create a better version than the downsampling means (now wrongly applied) followed by the upsampling of your choice, could not work out for the better.

 

With all the negatives in here (my highlights), this made absolutely no sense to me when you posted it, but with some of Jussi's explanations, I think I get it. An example of 'Double Dutch' if ever there was one 😉.

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment
58 minutes ago, manisandher said:

(my highlights)

 

Haha. Double Negatives - that never works for understanding. But this is Dutch just the same indeed.

 

And you can bet that the Apodizing Filters can start roll off earlier (can be way before 20KHz) than the normal FIR filter. You showed a couple of those ...

 

 

 

 

 

 

Lush^3-e      Lush^2      Blaxius^2.5      Ethernet^3     HDMI^2     XLR^2

XXHighEnd (developer)

Phasure NOS1 24/768 Async USB DAC (manufacturer)

Phasure Mach III Audio PC with Linear PSU (manufacturer)

Orelino & Orelo MKII Speakers (designer/supplier)

Link to comment

@pkane2001...

 

Hi Paul, I've just downloaded your Deltawave app... absolutely phenomenal!

 

But I can't for the life of me recreate the -190dB nulls that I can get with my simple manual nulling process. For example, the following two files null to <-200dB below 21 kHz with my approach, but to only -125dB with Deltawave:

 

Edit: It helps if I give the correct files!

 

https://drive.google.com/file/d/1WlGBYImttxslE7g2DU_HHcNXzOIuLZsx/view?usp=sharing

https://drive.google.com/file/d/1VdKumk8oMkYbEVdr9l_RaIz04vSv2Crf/view?usp=sharing

 

When you have a couple of minutes spare, could you take a look please?

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment
3 hours ago, manisandher said:

I've had a chance to play around with Deltawave now, and it's fantastic! Especially seeing as it's corroborated my initial findings 🙂. Apart from being out by a single sample on a couple, my original plots were bang on (Deltawave plots in inset).

 

Some of the results are still looking somewhat wrong. What are you using for downsampling in the cases where the same filter cannot be used for that? So what is the conversion to the other direction and what is the entire process?

 

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Overall the differences are:

 

minringFIR-lp is very short and has some amount of pass-band ripple in pass-band frequency response. This is also actually what you get with DAC chip filters too.

 

polynomial-2 behaves somewhat better than a NOS DAC, but still has some frequency response roll-off towards high frequencies. This makes the pass-band difference.

 

IIR and other minimum-phase filters have modified phase response, so the null reflects the difference between minimum phase and linear phase responses. You could actually revert the process in second processing round and get the same result as with a linear phase version.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
5 hours ago, Miska said:

Some of the results are still looking somewhat wrong. What are you using for downsampling in the cases where the same filter cannot be used for that? So what is the conversion to the other direction and what is the entire process?

 

There are two processes:

 

1. 24/176.4 (original) to 24/44.1_sinc-M to 24/176.4_FUT* -> null against original

 

I used sinc-M for the downsample stage in all cases here, as I wanted as much HF content preserved in the downsampled file as possible. This process produces the nulls shown above.

 

2. 24/44.1 (original) to 24/176.2_FUT* to 24/44.1_sinc-M -> null against original

 

With this process, I can't get anywhere near a null with any of the HQP filters. As I mentioned in an earlier post, the 24/44.1 original files I used (both pink noise and music) have a lot of content right up to 22.05 kHz. (The Audacity filter happily nulls to <-200dB in the pass band with these files.)

 

Everything remains pure D-to-D in both processes.

 

(* FUT - filter under test)

 

Mani.

Main: SOtM sMS-200 -> Okto dac8PRO -> 6x Neurochrome 286 mono amps -> Tune Audio Anima horns + 2x Rotel RB-1590 amps -> 4 subs

Home Office: SOtM sMS-200 -> MOTU UltraLite-mk5 -> 6x Neurochrome 286 mono amps -> Impulse H2 speakers

Vinyl: Technics SP10 / London (Decca) Reference -> Trafomatic Luna -> RME ADI-2 Pro

Link to comment

I wanted to chime in with a caveat about seeing 'hash' above 20kHz on a spectogram.   That 'hash' can come from various sources, but on old material from analog tape, very often that 'hash' that happens co-incendtally with HF music material is noise modulation that comes from the effects of an NR system.   So, when you see that 'hash' that appears to be co-incendental with the music, it can be any of these:

 

(Here  -- when I use the term 'compression', I mean Dynamic Range Compression, not data compression.)

 

1) Modulation of the analog tape noise when the recording was created using a noise reduction system, then sometimes made worse with compression of the material as it is distributed to the consumer.   Compression is VERY OFTEN used -- even on material that is misrepresented as 'pristine.'

2) Actual music. someone took the care to provide wide bandwidth to the consumer.

3) Distortion products as created by signal processing (of any type.)

 

And probably a few others that I didn't think of at this very minute.

 

John

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...