• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Unlimited FIR taps? yes please

thorvat

Senior Member
Joined
Aug 9, 2021
Messages
323
Likes
387
That doesn’t need to be the case, it all depends on where you put the main impulse ;)

Ehhh.. sure. But that is kind of hair-splitting - assuming impulse centering remains constant increasing number of taps will add delay.
 

gnarly

Major Contributor
Joined
Jun 15, 2021
Messages
1,037
Likes
1,471
By lower quality, it feels like the signal is duplicating itself, stretching / rubber banding, at 100k+ taps it becomes a pain to listen to.
That sounds like whatever you've been trying is causing significant pre-ring....?????

If that's maybe it, I've found trying to linearize phase on top of existing minimum phase crossovers, to be subject to pre-ring.
Example is using linear phase FIR correction across an entire speaker that is already running.
Best to replace minimum phase xovers with complementary linear phase xovers.

2nd cause of pre-ring i've encountered is trying to linearize phase of driver's natural rolloffs, again with linear phase correction spanning those rollofffs which again occurs in trying to phase linearize an entire existing speaker.
Best is to use out-of-band minimum phase correction of the driver's rolloffs, to each driver individually, before applying complementary linear phase xovers.


Since the "pure fir" high end DSPs available on the market have more or less 8k taps, no one really experienced a lot more taps to say... nah that's stupid don't do it.
FIR filter generating software like Acourate and AudioLense both default to 65,535 taps at either 44.1 or 48KHz, as i remember.
Many folks use PCs for this, so there is considerable experience with filters longer than 8k. I've heard of guys running 130K taps at 192kHz on PCs no problem.
Like i say, i just can't see a need for more PC/MAC type processing power.
 

gnarly

Major Contributor
Joined
Jun 15, 2021
Messages
1,037
Likes
1,471
Ehhh.. sure. But that is kind of hair-splitting - assuming impulse centering remains constant increasing number of taps will add delay.
One of my favorite techniques, both for reducing FIR time delay, and increasing subwoofer frequency resolution, is to move the sub's FIR filter impulse closer to start.

I look at how well the sub's low pass response, maintains flat phase as I move impulse peak towards start. I continue moving it until phase starts showing lag from too few 'time-working' taps.
Freq response (magnitude response) vs target, of course only gets better as impulse moves towards start, and the filter becomes more minimum phase like.
And delay goes down...halleluiah :)
 

dc655321

Major Contributor
Joined
Mar 4, 2018
Messages
1,597
Likes
2,236
One of my favorite techniques, both for reducing FIR time delay, and increasing subwoofer frequency resolution, is to move the sub's FIR filter impulse closer to start.

How does shifting the impulse peak increase freq resolution?
 

thorvat

Senior Member
Joined
Aug 9, 2021
Messages
323
Likes
387
One of my favorite techniques, both for reducing FIR time delay, and increasing subwoofer frequency resolution, is to move the sub's FIR filter impulse closer to start.

I look at how well the sub's low pass response, maintains flat phase as I move impulse peak towards start. I continue moving it until phase starts showing lag from too few 'time-working' taps.
Freq response (magnitude response) vs target, of course only gets better as impulse moves towards start, and the filter becomes more minimum phase like.
And delay goes down...halleluiah :)

Frankly, I don't see what is this thread about, as 65536 taps provide sufficient LF resolution, and any decent convolver (say brutefir, for example) can run such filter even on RPI4 or similar platforms. I have seen Intel Pentium processor running 512K taps without a sweat, so I really don't udnerstand why the fuss about using more taps which require platforms like modern GPU or similar..
 

RayDunzl

Grand Contributor
Central Scrutinizer
Joined
Mar 9, 2016
Messages
13,250
Likes
17,199
Location
Riverview FL
Wouldn't unlimited taps create an unlimited delay before the signal come outs?
 

gnarly

Major Contributor
Joined
Jun 15, 2021
Messages
1,037
Likes
1,471
How does shifting the impulse peak increase freq resolution?
For the same size filter, it puts more taps to work with regards to frequency resolution = 1/T (where T is filter time)
It's the FIR time from taps after the impulse peak that define frequency resolution.

Here's a snip from Synaudcon https://www.prosoundtraining.com/2016/05/20/fir-ward-thinking-part-5/
"A linear phase FIR has a two-sided impulse response, where the main signal arrival is centered in the IR (Figure 9). Let’s make the arrival peak relative time zero. The time span preceding the main arrival provides a place for the “negative time” arrivals necessary to conjugate energy arrivals after the main arrival peak. These “pre-delays” are causal in respect to real time, but acausal with respect to the main signal arrival. This allows the filter to compensate for reflections using an opposite “negative time” response. So, if your tap length is 1024 points, a linear phase FIR will place the main arrival at T/2, allowing one-half the filter length to provide the pre-arrivals necessary to conjugate the post arrivals produced in the loudspeaker or room. It also allows the introduction of the negative group delay necessary to compensate for the all pass response of the crossover.

By using 1/2 of the filter length for “negative relative time” corrections, the frequency resolution of the filter is halved. For example, a 1024 tap min phase FIR has 47.6 Hz frequency resolution. The same tap length for a linear phase FIR has a frequency resolution of 95.2 Hz, since up to one-half of the filter length is reserved for phase equalization."


Bold emphasis mine.

Self-powered proaudio speakers with DSP, use FIR extensively to provide minimum phase EQs / speaker tuning, by using FIR with the impulse shifted towards start.
FIR is probably used this way more so than for linear phase xovers, simply because prosound boxes can't tolerate much delay.
That said, linear phase xovers are no sweat to fit in with minimal delay, once moving towards xovers 1kHz or higher.

Imho, being able to embed any number and type of minimum phase filters into a FIR file, is a benefit nearly on par with linear phase.
Just takes sufficient taps post impulse ( like altering phase takes sufficient taps prior peak.)
 

gnarly

Major Contributor
Joined
Jun 15, 2021
Messages
1,037
Likes
1,471
Frankly, I don't see what is this thread about, as 65536 taps provide sufficient LF resolution, and any decent convolver (say brutefir, for example) can run such filter even on RPI4 or similar platforms. I have seen Intel Pentium processor running 512K taps without a sweat, so I really don't udnerstand why the fuss about using more taps which require platforms like modern GPU or similar..
Yep, i've been trying to say that too ...
In some alternate universe where different physics laws apply maybe it does. In our universe it doesn't.
You sure about that ? ;)
 

ppataki

Major Contributor
Joined
Aug 7, 2019
Messages
1,249
Likes
1,416
Location
Budapest
hat sounds like whatever you've been trying is causing significant pre-ring
Maybe this is a dummy comment but whenever I import REW EQ values into RePhase and save them in Linear Phase there is always huge pre-ringing regardless of how many taps I enter....
I wonder if that has to do anything with the 'FIR limitations' mentioned here earlier or maybe it is a totally different issue or just my ignorance
 

thorvat

Senior Member
Joined
Aug 9, 2021
Messages
323
Likes
387
For the same size filter, it puts more taps to work with regards to frequency resolution = 1/T (where T is filter time)
It's the FIR time from taps after the impulse peak that define frequency resolution.

Here's a snip from Synaudcon https://www.prosoundtraining.com/2016/05/20/fir-ward-thinking-part-5/
"A linear phase FIR has a two-sided impulse response, where the main signal arrival is centered in the IR (Figure 9). Let’s make the arrival peak relative time zero. The time span preceding the main arrival provides a place for the “negative time” arrivals necessary to conjugate energy arrivals after the main arrival peak. These “pre-delays” are causal in respect to real time, but acausal with respect to the main signal arrival. This allows the filter to compensate for reflections using an opposite “negative time” response. So, if your tap length is 1024 points, a linear phase FIR will place the main arrival at T/2, allowing one-half the filter length to provide the pre-arrivals necessary to conjugate the post arrivals produced in the loudspeaker or room. It also allows the introduction of the negative group delay necessary to compensate for the all pass response of the crossover.

By using 1/2 of the filter length for “negative relative time” corrections, the frequency resolution of the filter is halved. For example, a 1024 tap min phase FIR has 47.6 Hz frequency resolution. The same tap length for a linear phase FIR has a frequency resolution of 95.2 Hz, since up to one-half of the filter length is reserved for phase equalization."


Bold emphasis mine.

Self-powered proaudio speakers with DSP, use FIR extensively to provide minimum phase EQs / speaker tuning, by using FIR with the impulse shifted towards start.
FIR is probably used this way more so than for linear phase xovers, simply because prosound boxes can't tolerate much delay.
That said, linear phase xovers are no sweat to fit in with minimal delay, once moving towards xovers 1kHz or higher.

Imho, being able to embed any number and type of minimum phase filters into a FIR file, is a benefit nearly on par with linear phase.
Just takes sufficient taps post impulse ( like altering phase takes sufficient taps prior peak.)

Ehh.. I was under the impression we are discussing minimum phase filters, and I believe minimum phase FIRs are widely used to avoid pre-ringing. I would also rather use minimum phase XO filters than linear phase filters. Not to mention that passive XOs are certainly not linear phase, and they work fine, without any audible artifacts.

So, minimum phase FIRs with 65536 taps solves pretty much everything one might need.
 

nc535

Member
Joined
Dec 30, 2021
Messages
52
Likes
62
65K taps are great unless there is video that you want to lip sync with your audio. Have you got a solution for that other than designing an IIR filter set to switch to when streaming video?
 

thorvat

Senior Member
Joined
Aug 9, 2021
Messages
323
Likes
387
65K taps are great unless there is video that you want to lip sync with your audio. Have you got a solution for that other than designing an IIR filter set to switch to when streaming video?

Pretty much every modern video player offer feature to delay video, including android based TVs.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,406
Likes
18,367
Location
Netherlands
65K taps are great unless there is video that you want to lip sync with your audio. Have you got a solution for that other than designing an IIR filter set to switch to when streaming video?
Yes! You can use partitioned convolution to keep the delay down.
 

chris719

Senior Member
Joined
Mar 22, 2019
Messages
373
Likes
423
Ehh.. I was under the impression we are discussing minimum phase filters, and I believe minimum phase FIRs are widely used to avoid pre-ringing. I would also rather use minimum phase XO filters than linear phase filters. Not to mention that passive XOs are certainly not linear phase, and they work fine, without any audible artifacts.

So, minimum phase FIRs with 65536 taps solves pretty much everything one might need.
If you are ok with minimum phase then why use FIR at all? You can do the same with less with IIR.
 

thorvat

Senior Member
Joined
Aug 9, 2021
Messages
323
Likes
387
Maybe this is a dummy comment but whenever I import REW EQ values into RePhase and save them in Linear Phase there is always huge pre-ringing regardless of how many taps I enter....
Pre-ringing is caused by linear phase filters. As pre-ringing doesn't exist in nature are ears are quite sensitive to it and that is the reason why EQ softwares have strategies to avoid it, mostly by reducing the ammount of phase corrections and use of linear phase filters to minimum.
 

thorvat

Senior Member
Joined
Aug 9, 2021
Messages
323
Likes
387
Yes! You can use partitioned convolution to keep the delay down.
That would reduce the convolution processing delay but not the filter delay. Unfortunately, filter delay is far larger than convolution processing delay.
 
Top Bottom