DSPRelated.com
Forums

Phaser effect realization

Started by cris...@gmail.com April 26, 2011
Hi!

I'm developing a digital phaser effect based on several docs I found on the net and books.
One of the most detailed resources is:
http://www.onkartgromt.no/index.php/resources/effects-explained/56-phaser

My question is about FEEDBACK:
Please look at the first block diagram on the link above. There are several all pass filters connected in series with a feedback.
Well, suppose this all pass chain is build of a sequence of the following all pass filters:
http://www.music.miami.edu/programs/mue/research/sbrowne/images/allpass.gif

Is this phaser realizable, once the output of the all pass chain is directly feedback to the input, without a delay? I think this is a closed loop without delay and therefore it is not realizable. What is the best solution to make this realizable? I tried to add a one-sample delay (z^-1) before the first AP, but it changed a bit the final amplitude response. Is there a better solution?

Thanks a lot.
Ricardo
Hi Cris,
I was previously describing the z-transform version of the all-pass
filter, which is the discrete equivalent of the all-pass filter described in
the first link. For coding purposes I would use the following expression
for the phasor's transfer function:

(1-Depth) * Allpass(z)

Phasor: H(z) = Depth + -------------------------------

1 - Afb * Allpass(z)

I prefer the wikipedia explanation which follows the conventional block
diagram rules and explains the effect a little better. You have several
parameters depth, feedback and the all-pass coefficient.

http://en.wikipedia.org/wiki/Phaser_(effect)

The z-transform for your all-pass filter should be something like this
(complex numbers):

z^{-1} - a*

H(z) = --------------

1 - a*z^{-1}

or if your only using real numbers:

z^{-2} - 2*Re(a)*z^{-1} + abs(a)^2

H(z) = -----------

1 - 2*Re(a)*z^{-1} + abs(a)^2*z^{-2}

Looks pretty straightforward. Good luck.
-Brant


On Tue, Apr 26, 2011 at 1:54 PM, Ricardo Cris wrote:

> Putting my original question into another form:
>
> According to the first diagram on the first link, the input to the all pass
> chain is the current input sample summed to the feedback gain multiplied by
> the output from the last all pass stage. Using discrete processing:
>
> input buffer: x[]
> input to the all pass chain: ap_in[]
> last all pass stage output: ap_out[]
> feedback gain: fb_gn
>
> so, what is the correct logic?
>
> 1) ap_in[n] = x[n] + fb_gn * ap_out[n]
> ap_out[n] = allpass(ap_in[n])
>
> or
>
> 2) ap_in[n] = x[n] + fb_gn * ap_out[n - 1]
> ap_out[n] = allpass(ap_in[n])
>
> The second option makes much more sense to me, since the input to the all
> pass chain depends on previous output and not on the "current" output, which
> is undefined yet.
> If it is correct, the ap_out[n - 1] in this formula wouldn't require a
> delay element for the feedback on the block diagram? The first link doesn't
> use any delays on its explanation, and I don't understand how the delay unit
> embedded into the allpass filters would help.
>
> Very thanks in advance
> Ricardo
>
> On Tue, Apr 26, 2011 at 4:33 PM, Ricardo Cris wrote:
>
>> Brant,
>>
>> I don't get the point you said about negative feedback. Are you talking
>> about the feedback inside the all-pass filter or the phaser feedback?
>> About the first block diagram, isn't it _adding_ the feedback to the input
>> instead of multiplying them? I think the (X) symbol there represents an
>> adder, not a multiplier.
>> Did you mean that the all pass filter used in the first link is not the
>> same first order all-pass filter we are talking about? That below:
>>
>> Allpass(s) = (s - p)/(s + p)
>>
>> If yes, what would be its discrete form transfer function and block
>> diagram? The link only shows its conitnuous transfer function, I guess.
>>
>> Very thanks
>> Ricardo
>> On Tue, Apr 26, 2011 at 3:32 PM, Brant Jameson wrote:
>>
>>> Oh Yes ...
>>> Excellent point. I don't think that it is possible to use 'negative'
>>> feedback with any all-pass filter. Let's consider the following first order
>>> all-pass filter:
>>>
>>> z^{-1} - a*
>>>
>>> H(z) = --------------
>>>
>>> 1 - a*z^{-1}
>>>
>>> The current input sample will be multiplied by a* and added to the
>>> output. That is the case for the previous block diagram as well.
>>>
>>> One should note that the block diagram in the first link does not use
>>> negative feedback though. It takes the output of the all-pass filter and
>>> multiplies the input by that amount before filtering it with the all-pass
>>> filter. The author then simplifies this block diagram in two steps. The
>>> last block diagram is what I would implement in code. It is a (slightly
>>> modified) all-pass filter with a multiplier and an adder. Should be pretty
>>> easy. No need to add additional delays. Check the author's derivation first
>>> though!
>>> -Brant
>>>
>>>
>>> On Tue, Apr 26, 2011 at 11:17 AM, Ricardo Cris >>> > wrote:
>>>
>>>> Thanks, Brant!
>>>>
>>>> But... that all pass filter has a multiplier (the first, on top, which
>>>> multiplies by -a) that doesn't pass through the delay unit, so the incoming
>>>> signal has a path that arrives at the end of the chain without being
>>>> delayed, am I right? Like this (it is in fixed font face).
>>>>
>>>>
>>>> (this path doesn't get delayed)
>>>> input /---------(-a)---\
>>>> ------->(+)-----(+)--(Delay)--(+)-------------------------- (to mix)
>>>> \ \-----(*a)-------<--/ /
>>>> \---<------------------------------- (to feedback)
>>>>
>>>>
>>>> A digital implementation of this system would require the current input
>>>> sample to be added with its own output (???), so each output would depend on
>>>> itself, which I guess it is not realizable.
>>>> Any block diagram with its correspondent implementation source code
>>>> would be appreciated for better understading. All feedback loops I've seen
>>>> until now never had a subpath which doesn't pass through one deplay at
>>>> least.
>>>>
>>>> Very thanks
>>>> Ricardo
>>>>
>>>>
>>>> On Tue, Apr 26, 2011 at 1:23 PM, Brant Jameson wrote:
>>>>
>>>>> Hi Cris,
>>>>> The all pass filter you show in the second link has a delay of D
>>>>> samples embedded in the loop (between the two multipliers). So, yes, this
>>>>> filter is realizable with feedback.
>>>>> -Brant
>>>>>
>>>>>
>>>>> On Fri, Apr 22, 2011 at 6:12 PM, wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> Hi!
>>>>>>
>>>>>> I'm developing a digital phaser effect based on several docs I found
>>>>>> on the net and books.
>>>>>> One of the most detailed resources is:
>>>>>>
>>>>>> http://www.onkartgromt.no/index.php/resources/effects-explained/56-phaser
>>>>>>
>>>>>> My question is about FEEDBACK:
>>>>>> Please look at the first block diagram on the link above. There are
>>>>>> several all pass filters connected in series with a feedback.
>>>>>> Well, suppose this all pass chain is build of a sequence of the
>>>>>> following all pass filters:
>>>>>>
>>>>>> http://www.music.miami.edu/programs/mue/research/sbrowne/images/allpass.gif
>>>>>>
>>>>>> Is this phaser realizable, once the output of the all pass chain is
>>>>>> directly feedback to the input, without a delay? I think this is a closed
>>>>>> loop without delay and therefore it is not realizable. What is the best
>>>>>> solution to make this realizable? I tried to add a one-sample delay (z^-1)
>>>>>> before the first AP, but it changed a bit the final amplitude response. Is
>>>>>> there a better solution?
>>>>>>
>>>>>> Thanks a lot.
>>>>>> Ricardo
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Brant Jameson
>>>>> PhD Candidate
>>>>> UC Santa Cruz Computer Engineering
>>>>> http://people.ucsc.edu/~pheese
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Ricardo Baptista
>>>>
>>>>
>>>> Now I can look at you in peace; I dont eat you anymore.
>>>> Franz Kafka
>>>>
>>>>
>>>
>>>
>>> --
>>> Brant Jameson
>>> PhD Candidate
>>> UC Santa Cruz Computer Engineering
>>> http://people.ucsc.edu/~pheese
>>>
>>>
>> --
>> Ricardo Baptista
>> Now I can look at you in peace; I dont eat you anymore.
>> Franz Kafka
> --
> Ricardo Baptista
> Now I can look at you in peace; I dont eat you anymore.
> Franz Kafka
--
Brant Jameson
PhD Candidate
UC Santa Cruz Computer Engineering
http://people.ucsc.edu/~pheese
Brant,

I don't get the point you said about negative feedback. Are you talking
about the feedback inside the all-pass filter or the phaser feedback?
About the first block diagram, isn't it _adding_ the feedback to the input
instead of multiplying them? I think the (X) symbol there represents an
adder, not a multiplier.
Did you mean that the all pass filter used in the first link is not the same
first order all-pass filter we are talking about? That below:

Allpass(s) = (s - p)/(s + p)

If yes, what would be its discrete form transfer function and block diagram?
The link only shows its conitnuous transfer function, I guess.

Very thanks
Ricardo

On Tue, Apr 26, 2011 at 3:32 PM, Brant Jameson wrote:

> Oh Yes ...
> Excellent point. I don't think that it is possible to use 'negative'
> feedback with any all-pass filter. Let's consider the following first order
> all-pass filter:
>
> z^{-1} - a*
>
> H(z) = --------------
>
> 1 - a*z^{-1}
>
> The current input sample will be multiplied by a* and added to the output.
> That is the case for the previous block diagram as well.
>
> One should note that the block diagram in the first link does not use
> negative feedback though. It takes the output of the all-pass filter and
> multiplies the input by that amount before filtering it with the all-pass
> filter. The author then simplifies this block diagram in two steps. The
> last block diagram is what I would implement in code. It is a (slightly
> modified) all-pass filter with a multiplier and an adder. Should be pretty
> easy. No need to add additional delays. Check the author's derivation first
> though!
> -Brant
> On Tue, Apr 26, 2011 at 11:17 AM, Ricardo Cris wrote:
>
>> Thanks, Brant!
>>
>> But... that all pass filter has a multiplier (the first, on top, which
>> multiplies by -a) that doesn't pass through the delay unit, so the incoming
>> signal has a path that arrives at the end of the chain without being
>> delayed, am I right? Like this (it is in fixed font face).
>> (this path doesn't get delayed)
>> input /---------(-a)---\
>> ------->(+)-----(+)--(Delay)--(+)-------------------------- (to mix)
>> \ \-----(*a)-------<--/ /
>> \---<------------------------------- (to feedback)
>> A digital implementation of this system would require the current input
>> sample to be added with its own output (???), so each output would depend on
>> itself, which I guess it is not realizable.
>> Any block diagram with its correspondent implementation source code would
>> be appreciated for better understading. All feedback loops I've seen until
>> now never had a subpath which doesn't pass through one deplay at least.
>>
>> Very thanks
>> Ricardo
>> On Tue, Apr 26, 2011 at 1:23 PM, Brant Jameson wrote:
>>
>>> Hi Cris,
>>> The all pass filter you show in the second link has a delay of D
>>> samples embedded in the loop (between the two multipliers). So, yes, this
>>> filter is realizable with feedback.
>>> -Brant
>>>
>>>
>>> On Fri, Apr 22, 2011 at 6:12 PM, wrote:
>>>
>>>>
>>>>
>>>> Hi!
>>>>
>>>> I'm developing a digital phaser effect based on several docs I found on
>>>> the net and books.
>>>> One of the most detailed resources is:
>>>>
>>>> http://www.onkartgromt.no/index.php/resources/effects-explained/56-phaser
>>>>
>>>> My question is about FEEDBACK:
>>>> Please look at the first block diagram on the link above. There are
>>>> several all pass filters connected in series with a feedback.
>>>> Well, suppose this all pass chain is build of a sequence of the
>>>> following all pass filters:
>>>>
>>>> http://www.music.miami.edu/programs/mue/research/sbrowne/images/allpass.gif
>>>>
>>>> Is this phaser realizable, once the output of the all pass chain is
>>>> directly feedback to the input, without a delay? I think this is a closed
>>>> loop without delay and therefore it is not realizable. What is the best
>>>> solution to make this realizable? I tried to add a one-sample delay (z^-1)
>>>> before the first AP, but it changed a bit the final amplitude response. Is
>>>> there a better solution?
>>>>
>>>> Thanks a lot.
>>>> Ricardo
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Brant Jameson
>>> PhD Candidate
>>> UC Santa Cruz Computer Engineering
>>> http://people.ucsc.edu/~pheese
>>>
>>>
>> --
>> Ricardo Baptista
>> Now I can look at you in peace; I dont eat you anymore.
>> Franz Kafka
> --
> Brant Jameson
> PhD Candidate
> UC Santa Cruz Computer Engineering
> http://people.ucsc.edu/~pheese
--
Ricardo Baptista
Now I can look at you in peace; I dont eat you anymore.
Franz Kafka
Oh Yes ...
Excellent point. I don't think that it is possible to use 'negative'
feedback with any all-pass filter. Let's consider the following first order
all-pass filter:

z^{-1} - a*

H(z) = --------------

1 - a*z^{-1}

The current input sample will be multiplied by a* and added to the output.
That is the case for the previous block diagram as well.

One should note that the block diagram in the first link does not use
negative feedback though. It takes the output of the all-pass filter and
multiplies the input by that amount before filtering it with the all-pass
filter. The author then simplifies this block diagram in two steps. The
last block diagram is what I would implement in code. It is a (slightly
modified) all-pass filter with a multiplier and an adder. Should be pretty
easy. No need to add additional delays. Check the author's derivation first
though!
-Brant

On Tue, Apr 26, 2011 at 11:17 AM, Ricardo Cris wrote:

> Thanks, Brant!
>
> But... that all pass filter has a multiplier (the first, on top, which
> multiplies by -a) that doesn't pass through the delay unit, so the incoming
> signal has a path that arrives at the end of the chain without being
> delayed, am I right? Like this (it is in fixed font face).
> (this path doesn't get delayed)
> input /---------(-a)---\
> ------->(+)-----(+)--(Delay)--(+)-------------------------- (to mix)
> \ \-----(*a)-------<--/ /
> \---<------------------------------- (to feedback)
> A digital implementation of this system would require the current input
> sample to be added with its own output (???), so each output would depend on
> itself, which I guess it is not realizable.
> Any block diagram with its correspondent implementation source code would
> be appreciated for better understading. All feedback loops I've seen until
> now never had a subpath which doesn't pass through one deplay at least.
>
> Very thanks
> Ricardo
> On Tue, Apr 26, 2011 at 1:23 PM, Brant Jameson wrote:
>
>> Hi Cris,
>> The all pass filter you show in the second link has a delay of D
>> samples embedded in the loop (between the two multipliers). So, yes, this
>> filter is realizable with feedback.
>> -Brant
>> On Fri, Apr 22, 2011 at 6:12 PM, wrote:
>>
>>>
>>>
>>> Hi!
>>>
>>> I'm developing a digital phaser effect based on several docs I found on
>>> the net and books.
>>> One of the most detailed resources is:
>>> http://www.onkartgromt.no/index.php/resources/effects-explained/56-phaser
>>>
>>> My question is about FEEDBACK:
>>> Please look at the first block diagram on the link above. There are
>>> several all pass filters connected in series with a feedback.
>>> Well, suppose this all pass chain is build of a sequence of the following
>>> all pass filters:
>>>
>>> http://www.music.miami.edu/programs/mue/research/sbrowne/images/allpass.gif
>>>
>>> Is this phaser realizable, once the output of the all pass chain is
>>> directly feedback to the input, without a delay? I think this is a closed
>>> loop without delay and therefore it is not realizable. What is the best
>>> solution to make this realizable? I tried to add a one-sample delay (z^-1)
>>> before the first AP, but it changed a bit the final amplitude response. Is
>>> there a better solution?
>>>
>>> Thanks a lot.
>>> Ricardo
>>>
>>> --
>> Brant Jameson
>> PhD Candidate
>> UC Santa Cruz Computer Engineering
>> http://people.ucsc.edu/~pheese
> --
> Ricardo Baptista
> Now I can look at you in peace; I dont eat you anymore.
> Franz Kafka
--
Brant Jameson
PhD Candidate
UC Santa Cruz Computer Engineering
http://people.ucsc.edu/~pheese
Thanks, Brant!

But... that all pass filter has a multiplier (the first, on top, which
multiplies by -a) that doesn't pass through the delay unit, so the incoming
signal has a path that arrives at the end of the chain without being
delayed, am I right? Like this (it is in fixed font face).
(this path doesn't get delayed)
input /---------(-a)---\
------->(+)-----(+)--(Delay)--(+)-------------------------- (to mix)
\ \-----(*a)-------<--/ /
\---<------------------------------- (to feedback)
A digital implementation of this system would require the current input
sample to be added with its own output (???), so each output would depend on
itself, which I guess it is not realizable.
Any block diagram with its correspondent implementation source code would be
appreciated for better understading. All feedback loops I've seen until now
never had a subpath which doesn't pass through one deplay at least.

Very thanks
Ricardo
On Tue, Apr 26, 2011 at 1:23 PM, Brant Jameson wrote:

> Hi Cris,
> The all pass filter you show in the second link has a delay of D samples
> embedded in the loop (between the two multipliers). So, yes, this filter is
> realizable with feedback.
> -Brant
> On Fri, Apr 22, 2011 at 6:12 PM, wrote:
>
>> Hi!
>>
>> I'm developing a digital phaser effect based on several docs I found on
>> the net and books.
>> One of the most detailed resources is:
>> http://www.onkartgromt.no/index.php/resources/effects-explained/56-phaser
>>
>> My question is about FEEDBACK:
>> Please look at the first block diagram on the link above. There are
>> several all pass filters connected in series with a feedback.
>> Well, suppose this all pass chain is build of a sequence of the following
>> all pass filters:
>>
>> http://www.music.miami.edu/programs/mue/research/sbrowne/images/allpass.gif
>>
>> Is this phaser realizable, once the output of the all pass chain is
>> directly feedback to the input, without a delay? I think this is a closed
>> loop without delay and therefore it is not realizable. What is the best
>> solution to make this realizable? I tried to add a one-sample delay (z^-1)
>> before the first AP, but it changed a bit the final amplitude response. Is
>> there a better solution?
>>
>> Thanks a lot.
>> Ricardo
>>
>> --
> Brant Jameson
> PhD Candidate
> UC Santa Cruz Computer Engineering
> http://people.ucsc.edu/~pheese
--
Ricardo Baptista
Now I can look at you in peace; I dont eat you anymore.
Franz Kafka
Putting my original question into another form:

According to the first diagram on the first link, the input to the all pass
chain is the current input sample summed to the feedback gain multiplied by
the output from the last all pass stage. Using discrete processing:

input buffer: x[]
input to the all pass chain: ap_in[]
last all pass stage output: ap_out[]
feedback gain: fb_gn

so, what is the correct logic?

1) ap_in[n] = x[n] + fb_gn * ap_out[n]
ap_out[n] = allpass(ap_in[n])

or

2) ap_in[n] = x[n] + fb_gn * ap_out[n - 1]
ap_out[n] = allpass(ap_in[n])

The second option makes much more sense to me, since the input to the all
pass chain depends on previous output and not on the "current" output, which
is undefined yet.
If it is correct, the ap_out[n - 1] in this formula wouldn't require a delay
element for the feedback on the block diagram? The first link doesn't use
any delays on its explanation, and I don't understand how the delay unit
embedded into the allpass filters would help.

Very thanks in advance
Ricardo

On Tue, Apr 26, 2011 at 4:33 PM, Ricardo Cris wrote:

> Brant,
>
> I don't get the point you said about negative feedback. Are you talking
> about the feedback inside the all-pass filter or the phaser feedback?
> About the first block diagram, isn't it _adding_ the feedback to the input
> instead of multiplying them? I think the (X) symbol there represents an
> adder, not a multiplier.
> Did you mean that the all pass filter used in the first link is not the
> same first order all-pass filter we are talking about? That below:
>
> Allpass(s) = (s - p)/(s + p)
>
> If yes, what would be its discrete form transfer function and block
> diagram? The link only shows its conitnuous transfer function, I guess.
>
> Very thanks
> Ricardo
> On Tue, Apr 26, 2011 at 3:32 PM, Brant Jameson wrote:
>
>> Oh Yes ...
>> Excellent point. I don't think that it is possible to use 'negative'
>> feedback with any all-pass filter. Let's consider the following first order
>> all-pass filter:
>>
>> z^{-1} - a*
>>
>> H(z) = --------------
>>
>> 1 - a*z^{-1}
>>
>> The current input sample will be multiplied by a* and added to the output.
>> That is the case for the previous block diagram as well.
>>
>> One should note that the block diagram in the first link does not use
>> negative feedback though. It takes the output of the all-pass filter and
>> multiplies the input by that amount before filtering it with the all-pass
>> filter. The author then simplifies this block diagram in two steps. The
>> last block diagram is what I would implement in code. It is a (slightly
>> modified) all-pass filter with a multiplier and an adder. Should be pretty
>> easy. No need to add additional delays. Check the author's derivation first
>> though!
>> -Brant
>> On Tue, Apr 26, 2011 at 11:17 AM, Ricardo Cris wrote:
>>
>>> Thanks, Brant!
>>>
>>> But... that all pass filter has a multiplier (the first, on top, which
>>> multiplies by -a) that doesn't pass through the delay unit, so the incoming
>>> signal has a path that arrives at the end of the chain without being
>>> delayed, am I right? Like this (it is in fixed font face).
>>>
>>>
>>> (this path doesn't get delayed)
>>> input /---------(-a)---\
>>> ------->(+)-----(+)--(Delay)--(+)-------------------------- (to mix)
>>> \ \-----(*a)-------<--/ /
>>> \---<------------------------------- (to feedback)
>>>
>>>
>>> A digital implementation of this system would require the current input
>>> sample to be added with its own output (???), so each output would depend on
>>> itself, which I guess it is not realizable.
>>> Any block diagram with its correspondent implementation source code would
>>> be appreciated for better understading. All feedback loops I've seen until
>>> now never had a subpath which doesn't pass through one deplay at least.
>>>
>>> Very thanks
>>> Ricardo
>>>
>>>
>>> On Tue, Apr 26, 2011 at 1:23 PM, Brant Jameson wrote:
>>>
>>>> Hi Cris,
>>>> The all pass filter you show in the second link has a delay of D
>>>> samples embedded in the loop (between the two multipliers). So, yes, this
>>>> filter is realizable with feedback.
>>>> -Brant
>>>>
>>>>
>>>> On Fri, Apr 22, 2011 at 6:12 PM, wrote:
>>>>
>>>>>
>>>>>
>>>>> Hi!
>>>>>
>>>>> I'm developing a digital phaser effect based on several docs I found on
>>>>> the net and books.
>>>>> One of the most detailed resources is:
>>>>>
>>>>> http://www.onkartgromt.no/index.php/resources/effects-explained/56-phaser
>>>>>
>>>>> My question is about FEEDBACK:
>>>>> Please look at the first block diagram on the link above. There are
>>>>> several all pass filters connected in series with a feedback.
>>>>> Well, suppose this all pass chain is build of a sequence of the
>>>>> following all pass filters:
>>>>>
>>>>> http://www.music.miami.edu/programs/mue/research/sbrowne/images/allpass.gif
>>>>>
>>>>> Is this phaser realizable, once the output of the all pass chain is
>>>>> directly feedback to the input, without a delay? I think this is a closed
>>>>> loop without delay and therefore it is not realizable. What is the best
>>>>> solution to make this realizable? I tried to add a one-sample delay (z^-1)
>>>>> before the first AP, but it changed a bit the final amplitude response. Is
>>>>> there a better solution?
>>>>>
>>>>> Thanks a lot.
>>>>> Ricardo
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Brant Jameson
>>>> PhD Candidate
>>>> UC Santa Cruz Computer Engineering
>>>> http://people.ucsc.edu/~pheese
>>>>
>>>>
>>>
>>>
>>> --
>>> Ricardo Baptista
>>>
>>>
>>> Now I can look at you in peace; I dont eat you anymore.
>>> Franz Kafka
>>>
>>>
>> --
>> Brant Jameson
>> PhD Candidate
>> UC Santa Cruz Computer Engineering
>> http://people.ucsc.edu/~pheese
> --
> Ricardo Baptista
> Now I can look at you in peace; I dont eat you anymore.
> Franz Kafka
--
Ricardo Baptista
Now I can look at you in peace; I dont eat you anymore.
Franz Kafka
Hi Cris,
The all pass filter you show in the second link has a delay of D samples
embedded in the loop (between the two multipliers). So, yes, this filter is
realizable with feedback.
-Brant

On Fri, Apr 22, 2011 at 6:12 PM, wrote:

> Hi!
>
> I'm developing a digital phaser effect based on several docs I found on the
> net and books.
> One of the most detailed resources is:
> http://www.onkartgromt.no/index.php/resources/effects-explained/56-phaser
>
> My question is about FEEDBACK:
> Please look at the first block diagram on the link above. There are several
> all pass filters connected in series with a feedback.
> Well, suppose this all pass chain is build of a sequence of the following
> all pass filters:
> http://www.music.miami.edu/programs/mue/research/sbrowne/images/allpass.gif
>
> Is this phaser realizable, once the output of the all pass chain is
> directly feedback to the input, without a delay? I think this is a closed
> loop without delay and therefore it is not realizable. What is the best
> solution to make this realizable? I tried to add a one-sample delay (z^-1)
> before the first AP, but it changed a bit the final amplitude response. Is
> there a better solution?
>
> Thanks a lot.
> Ricardo
>
>

--
Brant Jameson
PhD Candidate
UC Santa Cruz Computer Engineering
http://people.ucsc.edu/~pheese