Jump to content
IGNORED

Help me to understand filters


Recommended Posts

59 minutes ago, manisandher said:

2. The humble FIR is essentially totally transparent from 0 to 19 kHz. So, what’s the point of using anything else?

 

My hunch is that this question is not relevant. But after sitting back and thinking for 10 minutes, it seems hard to find the reason of Why.

 

Of course, for me, this is also about the knowledge of how my filters behave and which would be far from transparent when your means of testing is applied to it.

or

Of course, we can envision that a FIR filter pre-rings (at least technically it does) and that we thus want a Minimum Phase filter. We all know the story ...

 

... which is less than half of the story.

 

Subjective answers *) are also hard to reason out. So as you know, your latest USB cable brings forward an unheard dose of speed and/hence transient harmonics. Just a stupid USB cable. Try that on any ringing filter (hence say all of the ones you showed) and know that this result will be gone.

Still the followers of those filters will be able to reason out why that other group (mine) can only be worse. That is the theory again.

 

*): I just claimed that today's presence is yesterday's history. 🤪  There's still too much other sh*t going on to approach this subjectively. This world of audio changes too fast.

 

This should not become a thread about transients again (unless it was your intention, Mani). But you know quite well it is about that. And they don't show in any of your examples. Also, the subject is for the happy few (like you) because you can subjectively listen to the difference. So:

 

RME says, In theory, a filter should have as little phase deviation as possible over the frequency range, have as short a settling time as possible, an acceptable decay time, and provide the maximum possible frequency range without deviation. The stopband attenuation should be high to prevent aliasing.”

 

RME is right. And I emphasized the In Theory. And:

Firstly they are as vague as possible (e.g. "should have as little" instead of "is not allowed to have") because we all know there will *always* be a trade off.

 

Let's keep in mind that the aliasing RME refers to, is represented by you by means of Imaging. This is not the same thing. Imaging is harmless unless we think that HF is hurtful to electronics or speaker drivers. It is the aliasing of images (folding back in the audio band) which is harmful - more harmful than THD (like my filters would imply more THD).

 

... But I am happy to learn from others why an original of 24/176.4 actually should arrive back in that exact same state, after applying decent downsampling and upsampling plus the filters - as you proposed it. It doesn't seem wrong. It could even be enlightening. 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.

I know, I am now more vague than RME.

 

Peter

 

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
2 hours ago, manisandher said:

If the FIR filter were causing any phase or ringing issues, surely the up-sampled file would not null with the original.

 

What am I missing here?

 

The fact that we can't use the way too rough FFT for this ?

For fun, if possible, try to have a "bin" with the width of 1000Hz somewhere (could be at 13KHz). If you seem to see a difference now, try to concentrate on the frequency and now make the bin 100Hz in the area of concern. I don't think you can do this with pink noise, so it has to be a music file.

 

Try to envision that the FFT always shows the average of frequencies occurring in the bins you imply (this is about the settings like e.g. 512, 32768, 1M, 2M etc.).

I know, you are not running FFTs but comparisons instead. But it is the same. And then still it is quite undoable when this is about music; Now you also incorporate the period of time of (the) recording. Thus, take 10 seconds and again you'd have an average (one, say, transient which reaches maximum voltage will be averaged with the level of the remaining music in that time period). You won't see back that transient.

 

Of course this can all be related to how the other filters surely are showing the not being "perfect", so if you're after that (must stay perfect) then skip those. But it won't mean that those which you showed as "perfect" are that.

Perfect in this sense is no difference at all. -190dB is not the same by far. And the "inaudible" ? I actually just talked about that. Make it better visible first.

This too is the never ending story (with Nulling). It doesn't work ...

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
16 hours ago, manisandher said:

 

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

 

Mani, I think it would be true that this is an indication that your process somewhere and somehow is failing. I don't see any filter do this in-band (!).

I would not so much claim this for the others (not "nulling").

 

For me it is hard to prove - or to put to words what is wrong with the process in general, but this is very similar to what I tried to tell you:

 

1 hour ago, Miska said:

You are constantly assuming that your source data is accurate representation of the source analog signal.

 

... This almost looks like "our filtering" can improve on the original as how you received it. Still is is not what I would claim.

It could be done though.

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
4 hours ago, manisandher said:

But a -190dB null suggests that the difference between the resampled file and the original is 0.000001dB (I think) in the audio band.

 

No, it is not. So I'll try to repeat:

That -190dB is reported over a number of samples. Say it is 1000 of them.

 

Now firstly one sample can be different for the value of +0,5V while a next is different for -0,5V and you won't see it. The -dB reported would be exactly the same.

 

Secondly, if indeed one sample only is different for +0,5V, this will be a huge difference which you still won't find back in the average over the 1000 samples. Oh, it will have risen, but your whatever 0.000001dB will have become 0.000002dB and you'd still have the same idea about it is nulls at : -190dB.

 

Thirdly (and I like this one the best), supposed that indeed one sample is different by +0,5V then this is to be averaged with those other 999 samples (which averaged already to say 0V - yep, is is AC) in order to come up with the new -dB value. But because energy will not be lost (and is also not created), the new net result will again be 0V;

This is because the filter will do other "strange" things, like dropping values because an other value rose.

But this net result is integrated over "a bin", just like you could say that the averaged voltage over the whole 5 minute (is an other dimension bin) song is 0V.

Now make that frequency bin a 100Hz wide (like from 12000 to 12100 Hz) and be assured that things have changed in there. Not that I would know how to make it visible for real music data.

 

Regarding the latter re-read Yamamoto's first post in this thread and know that the whatever original you compare with, may have shifted 32768 samples to the right because of the delay of the filter. And I know, you compare the filterED result with the original, but it just can-not be true that this will be the same. So:

 

image.png.09c5eeac2a61d7da77b0a5cfe8eddd14.png

 

I don't care how much this is calculated as differences at -190dB. It will be wildly different if you would be able to look in a small bin *and* in the representative time span.

 

Peter

 

 

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

Hi Mani,

 

1 hour ago, manisandher said:

That extra blue line in the second is not a scratch on the record

 

Which extra blue line ?

 

image.png.a1a2c147cb4f60d71899e86ddf6be8c4.png

 

I only see this one (at the bottom of the picture) but this is not from a missing sample. It is a continuous tone.

 

And FWIW :

 

image.png.3508b6bb3966b02d92497ee587aecae0.png

 

Apart from that line in the top one (your bottom one), these are not the same at all (this is at the far right hand side). But I am not sure why you showed those both captures.

 

For fun you could shift two of the exact same files (the file you originally used) by a few dozen or so samples (make a copy of the file and cut out a few dozen samples from the beginning out of one of them). Now look at the nulling result. I am not sure what to expect, but I guess we will learn something from it ...

 

Peter

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

Something quite else ...

Of course we could attest, like @mitchco funned around a little, that this is a marketing gag at showing different results of filters at work (mind you please, *if* that would have been done in well-fashion, which I highly doubt 🤪).

But it is about the other way around, namely how it "suddenly" got into you that a FIR filter is the one all be all. You know it is not ...

 

So what you must set yourself to (IMHO) is finding what's wrong in the workflow at showing that the FIR is 100%. It won't be, which next give the others a chance again.

They are all different and with fine attention they will all sound different.

(and on top of that you may find that the FIR sounds the worst of the all, but this is up to you)

 

And if you are on to something, it is also OK (better actually - haha).

 

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

Haha, great !

I was actually interested in the -dB figure. And how that plot would look. Thus this one:

 

511552341_2.FIRvs.Original.thumb.jpg.9dfc996c4b5c0c2d62eae025125de994.jpg

 

(you got me totally confused with your vertical time axis - LOL)

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

Hey Mani - That does more to the difference than I expected. I am not sure yet that I will admit that. Haha.

 

More insights ? maybe not from me. But it looks like we're missing some data points. A question I'd have would be:

 

And why is the 1 sample as well as the 12 sample shift so nicely matching the line beyond 22.05 ? Wouldn't you expect the 1 sample shift to at least exhibit something of this ?:

 

image.png.29284d61c6f85043dd6dc0df3640dda4.png

 

Well, it does not. And this is still in the realm of that original which already emerged from ??? (I know, you created it yourself if you'd repeat this for pink noise, which I am not asking for !).

 

Maybe someone else is able to explain this one:

 

image.png.fcce5839c1f74c736a9c93e78cca2835.png

 

because I wouldn't know where this comes from, unless it would be music data related in some special way. All you did is shift by 12 samples, so why is everything nulling "half way" at that point ?

And how does what we now see relate to this one ?:

 

image.png.857dd7c2c680e61b7cd5bdae069448da.png

 

Contestant #1 does not have the answers.

But it will be in the area of the 16 bit file not being able to discern the often close to 24 bit resolution of the 12 sample shift. Or you applied the shift in the down-sampled file ? (that would not have been the idea).

Resolution in 24 bit is 256 times that of 16 bit.

 

 

PS: Sorry to have deviated so much from your original question, but many of such questions and means to support "theses" end up like this, right ?

 

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
3 hours ago, manisandher said:

The signal can be transformed into a whole bunch of sine waves. We've shifted by 12 samples, which creates a null in the sine wave with a 12-sample wavelength. 176400/12 = 14700. The 'null' should sit at 14.7 kHz... which it does!

 

Hats off ...

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
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
1 hour ago, manisandher said:

I knew that the polynomial filter attenuation in the passband was a non-linear function of frequency (the null gets larger with frequency). What I didn't know until now was that the attenuation is a function of signal amplitude too.

 

Hi Mani,

 

To me (and my English) it seems that the remainder of your post is about that first sentence only, and is thus what we all expect. And because I don't see how the remainder of your post is about the second sentence, there is not much to work out.

 

Of course I see that you have set up a -0dBFS and a -3dBFS signal, but the relation between the two looks linear to me.

 

image.png.81153f6e73da2f879b4296a2d34f7f01.png

 

Even that part still looks linear. So I wonder whether you went off-track on the purpose of your (last) post; I probably won't get it.

 

The higher the frequency, the higher the distortion (for such a filter). But notice that somehow I am missing the roll off in your first picture (it can also be that the roll off goes all the way towards 0Hz and that the whole plot line(s) are thus part of the "not-null" to begin with).

 

Anyway, I don't see as of yet how the distortion would increase towards the high frequencies with more attenuation (this is what you seem to hint at). Otoh, it should be logic that there's more distortion at the lower levels because there's less bits to put in the so small space for bits anyway (now think 2 available samples for 20KHz anyway, which 2 samples also need to find their way for a decent amplitude without error, which in a space of 16 bits and 32767 possibilities (for plus and for minus individually) incurs for error in itself when it's given 8 times less that space (~ -25dB), thus 4096 possibilities only. So in my view when 20KHz allows for 1 sample point for positive value and 1 sample point for negative value, with 4 times less the space, one of those may be missing at all. Surely this would be a very different amount of (additional) distortion than e.g. a 50Hz wave which will also have 4 times less amplitude possibilities, but for which there are 1311 to begin with (I think 32767 (positive voltage) / 25 (half of the cycle for positive voltage only). Compare this with 32767 / 10000 (for 20KHz) and you may see my point.

So while the space of 32767 becomes 8192, the frequency of 20KHz remains the same and 8192/10000 is now 0.8192 or below 1 ... is too short/few.

 

So if that was meant to be your point, then you are granted to have it ... as I see it now. Sort of.

 

Sort of, because in real life (not NOS) the attenuation happens after upsampling, and for now outside of the more samples to projected sample points, the bit space (= space for the level) is 256 times larger.

At this moment I can not fully justify the latter, because it kind of implies that 16 times upsampling allows for 16 times more frequency as well. But, because you went from 176.4 to 44.1 all right, the frequency is definitely lost. Mind you, with the polynomial filter. All we can do is take care of the frequency distortion being as low as possible, which happens with the cascading with other filter means or other trickery. Remember the objective (Miska said it in between the lines): a better (transient) response in the time domain.

 

 

What I would like to see (because you are at it anyway) is the clear correlation of what you implied already and what I tried to make clear (I did not say "clear better" - haha). But for that, a signal (music) which has been attenuated to -25dBFS is not sufficient, *because* your DAC won't lose bits yet. So for a 24 bit DAC your base level should be -48dBFS at least (going towards -144) and compare that with more attenuation. But then not with 3dBFS more, but something significant (say an additinal 15dB attenuation). Your goal:

 

image.png.551140eb9e3cdd4f83ed1799b96d7d1e.png

 

let the lower line cross the upper line when going towards the right. Or at least let it go up progressively compared to the upper line.

 

Lastly, notice that the distortion towards the right hand side, could stay more linear by means of deliberate earlier roll off. I implied this at the beginning of this post. Thus, the roll off itself will imply a distortion when looking at the nulling towards the left hand side, while the attenuation of the real distortion (this is again the roll off now looking at the 20KHz side), will virtually *) let drop the null line towards the right.

I think it is important to see through this, because the nulling (test) will only show a difference, while my mentioned two types of distortion are totally different and will sound different from each other.

 

*): This is only virtual and can not be practice because all we'd to is take out the distorting frequencies (while we would not perceive those anyway *when* the frequencies would be in undistorted fashion). But you are not measuring THD here. You compare / null. So attenuating already cause error.

Might I have been able to bring this latter across, then you'd maybe understand that what shows as error on the nulling, sounds better (because higher frequencies not fully reconstructed, causing aliasing and what not what you *can* hear, have been taken out).

 

Bzz

 

 

 

 

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

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...