Skip to main content
21 events
when toggle format what by license comment
Apr 30, 2014 at 11:12 comment added Matt L. @teadrinker: If you use $b$ the same way as I use $b$, then $b=1$ doesn't make sense because then each allpass becomes a simple inverter (check Eq. (1) of my answer, $A_0(z)=-1$), and $2N$ cascaded allpass filters are just a straight connection without any processing. Furthermore, there is no delay in the feedback loop. Imagine a trivial system $y(n)=ax(n)$. Now add a feedback term (with factor $f$) without delay: $y(n)=a(x(n)+fy(n))\Rightarrow y(n)=ax(n)/(1-af)$, so it can be done. Honestly, I'm pretty sure that your implementation does not agree with the system I've analyzed.
Apr 29, 2014 at 10:54 comment added teadrinker Interesting, no I am talking about notch (and by the way, they are also not aligned). But I did managed to get the responses to align for the case b=1, by adding an additional allpass outside the feedback loop. I am not sure I got the explaination right, but isnt it that implementing feedback in a straight forward way in the digital domain will give you an additional 1 sample delay in the feedback loop.
Apr 28, 2014 at 11:09 history edited Matt L. CC BY-SA 3.0
deleted 379 characters in body
Apr 28, 2014 at 11:06 comment added Matt L. @teadrinker From my experiments it appears that feedback does not change the location of the maxima. I've added a figure to my answer. By the way, were you maybe talking about notch frequencies instead of peak frequencies, i.e. frequency where the attenuation is maximum? I've check everything and I'm pretty sure that everything is correct now, at least according to the phaser structure from wikipedia. Do we at least get the same results without feedback?
Apr 28, 2014 at 11:03 history edited Matt L. CC BY-SA 3.0
deleted 379 characters in body
Apr 27, 2014 at 10:30 comment added teadrinker Right, b is k, that makes much more sense. You are right, there IS a maxima at nyquist. I think I found mismatch, I added the depth (a) to the example and it seems like the feedbackpeaks surprisingly does not align with the maxima.
Apr 27, 2014 at 9:37 comment added Matt L. @teadrinker Check out this figure: en.wikipedia.org/wiki/File:Phaser_response.png Here $N=4$ (8 stages) and there are also peaks at 0 and at Nyquist.
Apr 27, 2014 at 9:28 comment added Matt L. $b$ is what you called 'k' in your webapp.
Apr 27, 2014 at 9:20 comment added Matt L. @teadrinker $b$ is what's called 'Fa1' in your code. Just to be sure: you add the direct signal and a cascade of $2N$ identical allpass filters (ignoring feedback for the moment), right? For this case, the formula should be correct. But somehow I start thinking that we might be talking about different structures ... need to clear this up.
Apr 27, 2014 at 1:14 comment added teadrinker I cleaned up and rebuilt an example, including a approximation (which is only really correct at b == 1, but kind of aligns until 0.5), note that this webapp might be slow, since it is calculating the sound and 5 spectrograms in javascript.
Apr 27, 2014 at 1:14 comment added teadrinker It's not easy for me to wrap my head around this math, but b is the delay, right? It looks like our formulas and code does not match up, when I plug in b = 0.6 for N=4 (8 allpass filters, each using delay 0.6), I get the peaks around 0, 0.45, 0.98, 1.68, 2.6. I also noticed that with your formulas you get a peak at nyquist, this only happens in my case when using negative feedback or odd number of allpass filters.
Apr 25, 2014 at 13:14 history edited Matt L. CC BY-SA 3.0
added 1 character in body
Apr 25, 2014 at 10:29 history edited Matt L. CC BY-SA 3.0
added 22 characters in body
Apr 25, 2014 at 7:48 comment added Matt L. @teadrinker I finally had the time to discuss the general allpass case and edited my answer accordingly. Please have a look.
Apr 25, 2014 at 7:47 history edited Matt L. CC BY-SA 3.0
added 2552 characters in body
Apr 24, 2014 at 6:14 comment added teadrinker Correct, they all use the same Fa1.
Apr 23, 2014 at 18:06 comment added Matt L. @teadrinker OK, so you have $2N$ of these first order allpass filters in series. Do they all use the same parameter Fa1?
Apr 23, 2014 at 14:18 comment added teadrinker I based my experiments on the code snippets of these comments. The allpass process function does: Result := inSample * -Fa1 + Fzm1; Fzm1 := Result * Fa1 + inSample. And Fa1 is (1 - delay) / (1 + delay)
Apr 23, 2014 at 13:39 comment added Matt L. @teadrinker I used $D$ as the delay which can be fractional, irrespective of the number of allpass filters realizing the delay. What do you mean by "as soon as the delays are not 1"? What are they then? If you have general allpass filters with a non-linear phase response then you must specify the behavior of these allpass filters, otherwise nothing can be said about the peak frequencies.
Apr 23, 2014 at 13:36 comment added teadrinker Hmm, the number of allpass filters seem to be missing from this formula, (or maybe I am missing something)? The formula has a linear relationship between peak index (k) and frequency, but as soon as the delays are not 1 the peaks starts warping non-linearly, this is also what gives the phaser its characteristic sound. (I added an image that might help make things clearer)
Apr 21, 2014 at 19:01 history answered Matt L. CC BY-SA 3.0