Why not IIR filters + a global phase linearization by FIR

Years ago I had developed a spread sheet for 2-way subtractive delay crossover. It allowed yuo to choose the crossover point, low pass filter type and order, and whether the LP filter was linear or minimum phase. Later, Paul V of the old FRC took it s a step further and made it more general, allowing up to a 4-way crossover. It seems to have some glitches in it but is still functional. It includes Butter worth filters and show what I found that when using a linear phase, Butterworth LP section the subtractive HP section roll off at a slope twice that of the LP section. Here is a screen shot of the crossover section for a 3-wy using 6th order Butterworth amplitude LP sections with linear phase. Attached is the spread sheet. Don't know how well it will work with newer Excel, but fun to play with if it works.

1698150527031.png
 

Attachments

  • TPSDMulti-.9070.zip
    844.2 KB · Views: 52
  • Like
  • Thank You
Reactions: 3 users
Trying to catch-up with all of the requests. The forum limits the number of replies per hour, so I'll have to wait a bit to get to the remainder. If you requested a copy of the paper but haven't received it by tomorrow, write to me again and I'll give it another try.

- Greg
 
True, but it's still a pain to use -- like learning another language. I use LaTeX, pronounced "lay-TEK". Only I call it "cave-tech".

Same here, but I use this thing called LyX that looks like MS Word but generates LaTeX output once you press a button. There are also many built-in templates available within LyX for letters, papers, presentations (beamer) e.g. IEEE transactions. One just needs to install LyX and specify the path of the MikTeX package that's it, freeware no money.

https://www.lyx.org/
 
Years ago I had developed a spread sheet for 2-way subtractive delay crossover. It allowed yuo to choose the crossover point, low pass filter type and order, and whether the LP filter was linear or minimum phase. Later, Paul V of the old FRC took it s a step further and made it more general, allowing up to a 4-way crossover. It seems to have some glitches in it but is still functional. It includes Butter worth filters and show what I found that when using a linear phase, Butterworth LP section the subtractive HP section roll off at a slope twice that of the LP section. Here is a screen shot of the crossover section for a 3-wy using 6th order Butterworth amplitude LP sections with linear phase. Attached is the spread sheet. Don't know how well it will work with newer Excel, but fun to play with if it works.

View attachment 1227008

Almost all of those old FRC Excel based programs work fine with newer versions of Excel, but only if you install the 32 bit version of Office instead of the 64 bit version. On my Win 11 machine I have both Excel 2010 (32 bit) and Excel 2021 (64 bit) although MS doesn't support multiple Office versions. A perhaps cleaner and safer way (which I used in the past) is to create a virtual machine (I used good old Windows 7) to run the 32 bit version of Office. What ever works for you.

I did find a slightly newer version of the app on the old FRC website via the way back machine (LINK). The TPSD (Transient Perfect Subtractive Delay) file, tpsd1.10.exe, is a self-extracting executable that contains TPSDMulti-.9071.xls, a user manual and fftdll.dll. The DLL speeds up the FFT process, but probably isn't needed on today's machines.
 
To everybody who received a copy of my Matched Delay Crossover Tutorial, and anybody who still wants to:

It's been a few days since I received any new feedback (thank you!), so I'm declaring the document to be finished. The final version is 20231026. If you have a version earlier than that, and want a copy of the final version, please PM me.

All of the changes are what I would call "cosmetic" -- typographical errors, language clarification, tidying-up some graphics, etc., so if you have an earlier version you still have all of the correct technical information.
 
  • Like
  • Thank You
Reactions: 8 users
Hi Greg, I've enjoyed your paper. It has a nicely laid out logical progression, that i found easy to understand.
Other than when I needed my long forgotten math (lol/sigh).
Oh, what's the practical meaning of RMS periods? ...I couldn't grasp that either...

The "G8x2" does look like a nice substitute for a Gaussian low pass. I could see that being used anywhere a second order high pass works.

I like your idea of trying to minimize impulse response width per bandwidth. I've never really thought of that.
I see my FIR generating software will produce the subtractive complement for linear phase bessels, BW's, and a host of other non-complementary types. ( and from either side)

I may play with lin phase Bessel's despite their relatively low orders vs the high orders i typically swear by......
i figure we never know, proof is in the listening...gotta keep trying stuff.
Must admit though, I have a hard time imagining that reduced impulse widths will overpower the benefits of reduced lobing frequency ranges.
Maybe like all things in audio, there's a happy compromise.....:)

Anyway, thx again !
 
Oh, what's the practical meaning of RMS periods? ...I couldn't grasp that either...
Just as we quantify the "center" and "width" of a distribution of things with mean and standard deviation, we quantify the "center" and "length" of a signal with "central time" and "RMS duration". We can't use standard deviation directly with signals, because standard deviation requires that the values being included in the computation can never be negative. Of course, AC signals like audio have both positive and negative values, so we must square the signal to ensure that the values being included in the computation are never negative. Otherwise, the principle is the same -- large standard deviation means that the distribution is "spread out"; large RMS duration means that the signal lasts a long time.
 
I’ve been interested how subtractive delay filters would use the meager ADAU1701 DSP resources and how they would perform in an inexpensive 1701 DSP board. So, I designed two, single-channel, three-way subtractive crossovers: Gregory Berchin’s simplified 8th order Bessel and John Kreskovsky’s 6th order Butterworth. Each of the three crossover outputs were measured and then added together to check for their summed frequency and phase responses.

Both crossovers have nearly identical crossover frequencies of ~250 and ~2100 Hz. The first two attachments are the SigmaStudio crossover schematics with the compiler resource usage statistics added as comments. The third attachment shows the individual measured outputs of both filters. The filters’ responses track quite well up to ~50 dB below the fundamental, but below that level the high pass filters’ responses begin to lose track. The fourth and fifth attachments show the filters’ frequency and phase responses when the individual outputs are summed together. Linear phase!

Overall, I’m quite impressed with the performance of both filters. They offer a way to achieve linear phase filters for users of the ubiquitous 1701 DSP. Special thanks to Gregory and John for their work on these filters. It’s been 20+ years since their initial development, but better late than never!

Details, details……

  • I created a zip file containing both SigmaStudio projects which can be downloaded HERE.
  • I used THIS TinySine DSP board with Fs set to 48 KHz. I used REW for measuring, also at 48 KHz. The DSP board’s native frequency response rolled off at the upper and lower ranges which affected the phase. I converted the native response into a “microphone” calibration formatted file which resulted in a totally flat frequency and phase response using a “straight through” (input directly to DAC) project.
  • Don’t use the SigmaStudio “Fractional Delay” as it causes phase shift in the higher frequencies. See these links for details (LINK1, LINK2). Use the standard delay which delays integer multiples of 1/Fs.
  • The SigmaStudio “Simulation Probe” doesn’t correctly display the filter’s phase. The magnitude is displayed correctly though.
  • The 1701 DACs output in negative polarity. See the 1701 datasheet for details.
  • I used SigmaStudio’s “Nth Order” filter for the Butterworth filter and John’s Excel worksheet for the Butterworth delay times. I used SigmaStudio’s “Parametric EQ” and selected four “General Low Pass” filters for the 8th order Bessel filter. Their Q values and frequencies along with their delay values were calculated from posts in this thread.

    Bessel 8th Order MSD Schematic.jpg
Butterworth 6th Order MSD Schematic.jpg


Bessel and Butterworth 3-way Outputs.jpg

Bessel 8th Order 3-way Filter, Individual Outputs Summed.jpg


Butterworth 6th Order 3-way Filter, Individual Outputs Summed.jpg
 
  • Like
Reactions: 3 users