You are here


The Nyquist vs EQHQ death match

I'm in the process of putting together some code to help assemble filters, and was trying out some ideas with a function which generates a bank of Nyquist filters.
This fitler set is basically just a test of that, and thought it might be interesting to compare with one of the EQHQv1 filters.

It's a pretty slim set - only banks 1 & 2 have filters.  You can select banks 3 & 4 but you'll just get bank 2.

Bank 1 is a fairly steep Nyquist filter with 2205Kz transition band on the 44.1KHz filter.

Bank 2 has the filter from Bank 4 of EQHQ variations.  



skr filter: 

EQHQ variations v1

I've updated the EQHQ variations filters, as FIR2 filters exceeded maximum taps. The original upload seemed to behave OK with the long FIR2 filters, however Søren has confirmed the maximum length in still 127 taps. The filters have ended up being significantly different to the original upload in that the focus shifted to minimising the passband ripple as far as possible. In practice this means the passband ripple spec has dropped from ±0.0000003dB to ±0.00000005dB which seems to be close to the limit of what I can achieve with the equiripple approach. I won't bother listing the specs for the filters as the filter description lists correct values. Use the "filters all" command in uManger to see a complete listing.

Update: I've added a version with what should have 3.5dBFS "headroom".  This will make the output for 0dbFS 3.5dB lower than with previous filters but should prevent intersample clipping in most circumstances. The "HR" code indicates the added headroom version.

Another Update:  More fiddling with the EQHQ variations, without altering the basic coefficients.

Changes are:

  • Config file processed with my homebrew config -> skr code.  MKROM.exe generates a .skr file which has a checksum in the header, but this appears to be ignored. The .skr generated by my code now includes checksum, thanks to Søren.
  • Fitler coefficients are rounded to nearest integer during conversion to fixed point, vs truncation with MKROM.exe - I wouldn't expect any significant audible difference from this change.
  • Attenutation reduced to 3dB and moved to FIR2. FIR1 gain set to 8 to maximise signal level in FIR1, Volume and IIR filtering.

For reference Filter 5 is very similar to Filter 6 of the "PartyPak":

EQHQ v1: 05 EQHQ_lpbr_b2, 44.1 Khz, 0-19.50Khz +-0.00000005dB, 22.50Khz -174.48dB

Party Pak: 06 EQHQ_b3, 44.1 Khz, 0-19.50Khz +-0.00000030dB, 22.50Khz -168.05dB

Why are these filters Experimental?

The experimental aspect of the filter is variation in width of the transition band.
Bank 1 has the shortest filters with widest transition band, and Bank 4 has longest filters with shortest transition band.
The stopband edge remains fixed, while the passband edge is shifted upwards with each increase of bank number.

04 EQHQ_lpbr_b1, 44.1 Khz, 0-19.00Khz +-0.00000005dB, 22.50Khz -174.26dB
04 EQHQ_lpbr_b1, 48.0 Khz, 0-19.50Khz +-0.00000005dB, 24.00Khz -174.21dB
05 EQHQ_lpbr_b2, 44.1 Khz, 0-19.50Khz +-0.00000005dB, 22.50Khz -174.48dB
05 EQHQ_lpbr_b2, 48.0 Khz, 0-20.00Khz +-0.00000005dB, 24.00Khz -174.34dB
06 EQHQ_lpbr_b3, 44.1 Khz, 0-20.00Khz +-0.00000005dB, 22.50Khz -174.13dB
06 EQHQ_lpbr_b3, 48.0 Khz, 0-20.50Khz +-0.00000005dB, 24.00Khz -174.17dB
07 EQHQ_lpbr_b4, 44.1 Khz, 0-20.45Khz +-0.00000005dB, 22.50Khz -174.19dB
07 EQHQ_lpbr_b4, 48.0 Khz, 0-21.00Khz +-0.00000005dB, 24.00Khz -174.30dB


The v099 Party Pak

This is a bit of a grab bag and in the spirit of bad 70's compilation albums not all "hits" are performed by the original artists...

Bank 1: EQHQv5, A remake of the EQHQv2. I've taken advantage of the longer filters so the passband edge is now above 20kHz, and stop band edge is at 22.5Khz.
Bank 2: EQHQ_Apo, similar to above, but all FIR1's have a stop band that starts before nyquist, so more "technically" correct. You can hear a slight shift in tonal balance switching between the two.
Bank 3: Low Delay v4, very slow roll-off and with no concerns about aliasing, plus much lower stop band attenuation that 1 and 2.
Bank 4: NewNos. Yes, that one....

Please be aware that the bandwidth figures in the description are the limits of ripple specification//passband edge.
As an example the Low Delay 44.1Khz filter is shown as "0-17Khz" as 17Khz is the edge of the passband and meets the ripple spec to that point.
However the filter is only -0.4dB at 20KHz and -3dB at 21.7KHz, and is far flatter than the numbers would initially suggest.
This is typical of all the filter specs so don't get to concerned about the numbers especially on the higher sample rates.

Have fun...

response plot: