Filter brewing for the Soekris R2R

Approaching the filter distortion from the other side ... theory says the result of a linear operation on a sin wave is again a sin wave of same frequency (but possibly other phase and amplitude). Upsampling and FIR and IIR filters are linear. Thus in the ideal world there is no filter induced THD.
Sine remain a sine in a linear time-invariant system, simple linearity is not enough. Upsampling is linear, but not time-invariant, so it creates spectral images and/or aliasing, which can affect THD.


What oneoclock's plots don't show is the peak in distortion around 11-12kHz that all the filters except NOS display.
Attached shows:
NQB3:red, C960_140dp:green, C128_100dp:blue, Izotope steep rolloff defaults: orange, stock 44.1: purple
Can you explain how have you produced this image? This rise of distortion at 11 kHz is unexpected to me. What was the bandwidth of THD measurement? THD is typically measured with a −1 dBFS sine tone in the bandwidth of 20–20000 Hz.
 
Disabled Account
Joined 2005
Can you explain how have you produced this image? This rise of distortion at 11 kHz is unexpected to me. What was the bandwidth of THD measurement? THD is typically measured with a −1 dBFS sine tone in the bandwidth of 20–20000 Hz.

Hi Alexey,

Thanks for dropping past. I'm sure if anyone can explain this it will be you.

The measurement is based on an a single sample impulse in a 44.1/16 .wav, which was resampled to 352.8kHz in RX4 standard, then exported as a wav.
The file was then analysed in Fuzzmeasure. I've been using this to check check/plot frequency and impulse response as it is an easy way of overlaying multiple plots. As I've noted the "peak" disappears when the file is up sampled to 2822400z so I have my doubts it's particularly meaningful.

cheers
Paul
 
Disabled Account
Joined 2005
No doubt the fr response is a small part, but few dB tilt is not nearly enough effect, ime to make such differences in perceived performance in sqw-s. I have too little knowledge in this signal-analysis-math wizardry to know better, but it feels like phase problems might contribute to this, however these are manifested.
Coherent sounding vs incoherent sounding setups in analog or mechanical ways have somewhat similar flaws as one digital source vs another. I might be wrong tho, i'm here to learn :eek:

It's not likely to be a phase problem.

This is a comparison of the log squared impulse response of the C128 and C960 filters:
attachment.php


This can be thought of as how the filter will process a 0dB signal over the length of the impulse.

The C128 (red) has a narrow spread of energy over time, whereas at say -30dB the C960 is influencing the signal for twice as long. The total energy in the impulse at that point will be roughly the same, but we will perceive it differently due to the "smearing" of the impluse energy in time.
 

Attachments

  • C128C960.png
    C128C960.png
    99.8 KB · Views: 710
Last edited:
Hi Paul. I'm not familiar with Fuzzmeasure, but I'm pretty sure that it is not possible to infer THD from the impulse response: it only gives you the frequency response, phase response, and group delay. For measuring THD one needs a sine sweep or a series of sines. You can run this experiment directly with RX and I'm sure that its distortion does not significantly depend on frequency.
 
Hi Paul. I'm not familiar with Fuzzmeasure, but I'm pretty sure that it is not possible to infer THD from the impulse response: it only gives you the frequency response, phase response, and group delay. For measuring THD one needs a sine sweep or a series of sines. You can run this experiment directly with RX and I'm sure that its distortion does not significantly depend on frequency.

The impulse response of a FIR filter are its filter coefficients, so contains the inforation you need, to apply the filter.
 
It's not likely to be a phase problem.

This is a comparison of the log squared impulse response of the C128 and C960 filters:
attachment.php


This can be thought of as how the filter will process a 0dB signal over the length of the impulse.

The C128 (red) has a narrow spread of energy over time, whereas at say -30dB the C960 is influencing the signal for twice as long. The total energy in the impulse at that point will be roughly the same, but we will perceive it differently due to the "smearing" of the impluse energy in time.

Thanks, this makes sense. And NOS is even narrower?
 
Struggling to hear any real difference between the C960 and 1008 filters. The 960 may be a touch more open sounding, but we're talking the smallest of fractions. Soundstaging much improved. Speakers designed to face one another firing along the wall. I have been running them toed-out from the wall by 2-inches. Reducing to 1 & 1/2-inches has improved things somewhat.
 
Disabled Account
Joined 2005
Yes, this is true for an integer-ratio upsampling. But I doubt that Fuzzmeasure can do this, can it?

FuzzMeasure Pro 3

All the upsampling is done external to Fuzzmeasure. RX upsampling was done in RX using Izotope SRC. The others were generated from filter coefficients using SoX's upsample and -fir options. In all cases the same 1 sample impulse .wav was used as the source file.

The "HD" peaks look to be directly related to the corner frequency of the filter /2, and the amplitude is related to the steepness of the filter.
 
Disabled Account
Joined 2005
Just having a mess around with Slifer seeing if I can get something useful out the other end. Coefficients are coming out a bit too short so I need have to look at that for starters.

The attached are minimum phase approximation of the C128 and C1008 filters. The process of converting to minimum phase seems to destroy the Nyquist characteristics so that aspect is strictly Linear Phase it seems.

128 is basically slow roll off, and short.
1008 is long and fast roll off.
 

Attachments

  • 1021filt_1008MP.skr.zip
    3.9 KB · Views: 59
  • 1021filt_SL_128MP.skr.zip
    1.8 KB · Views: 61
Last edited:
Sine remain a sine in a linear time-invariant system, simple linearity is not enough. Upsampling is linear, but not time-invariant, so it creates spectral images and/or aliasing, which can affect THD.
Thanks for bringing that back in mind. Some things make so, in the oversampled case, more sense.

My remark on the different behavior on frequencies that are small integer devisors and the general cases remains valid. Only the situation is more complex as you also have the contribution of the filtered aliases and their errors.

For the question on the hand, for the 8-oversampled case, the alias images are in the stop band of the filter and should have no direct impact in the seen magnitude, for the influence of the error term of the aliases I have to think again.

Interesting is that for f=44100/4Hz the situation is very special, the gap between aliases is constant (44100/2Hz). This makes also the aliases odd harmonics. But as said above as they are in the stopband this should not be the dreckt explanation for the peak.
 
Last edited:
Disabled Account
Joined 2005
After checking the coefficients that Slifer exports they seem ok. Comparing the .skr filter that results from the Slifer export and filter exported Slifer -> MATLAB and then exported at "full precision" the results are identical. So filters in previous post are fine in that regard.

Attached is an filter that is similar in length and roll-off to the stock 44.1 filter. it is -0.1dB at around 19kHz.

Haven't had too much to chance to seriously listen and compare but sounds ok, possibly better than the 128 minimum phase.
 

Attachments

  • 1021filt_384_C130_MP.skr.zip
    2.6 KB · Views: 119
  • 348MP_C130.png
    348MP_C130.png
    38.5 KB · Views: 481
Latest filters are interesting. My reference is the C960 filter from a couple or so weeks back. Comparing the SL128 filter I'd argue the sound is much the same, I detect however, slightly more focus in the soundstage. Vocals in the centre appear narrower somehow, with less spread between the speakers. Instruments too in the mix, have slightly more space around them. A word of caution perhaps, as the quality of the filters has come on such a long way, differences are very small indeed, so I wonder how much one perceives is fact?

The 384_C130 sounds to me much like the SL_128MP albeit with a little more air and space in the sound. Switching back to the C960 I feel sure the focus with the 384 is stronger - my new favourite. Very hard to tell. They all sound prettry darn good!

Anyone else any thoughts???
 
missing imgs....
a) oneoclock impluse
b) filter coefficents upsampled in SoX then viewed in Fuzzmeasure
c) Bitscope capture of XLR output at 5MHz sampling rate
You can´t take right my impulse measurements in Fuzzmeasure. It was clear when I put NOS filter impulse, is not perfect.

Only served in comparison with other DAM filters and other DAC devices to see if it will be good filter.

Fuzzmeasure not let me play 44100 and measure 96000.
 
Anyone else any thoughts???

Hi Andrew. Unfortunately, not enough time to make a serious listening and compare all these filters that Paul creates! So I just uploaded the 384_C130 that you suggested and compared it with the C960 I was previously listening. Well after some listening I found that something was a bit strange with the voices and the soundstage, so I checked again my setup. So I found that there was a very small difference in the toe-in of my speakers. After moving the speakers I can agree with what you say about the imaging and the focus. At least to my ears, the difference is there. So I agree with you that C384 is better than C960.

I also compared it with the C128_100, one of the best filters in my opinion, due to its naturalness, despite the fact that it is not so open and airy. And I think that I prefer C384 overall. So another great filter, maybe the best?!
 
Last edited: