Reply by Bhaskar Thiagarajan●December 14, 200420041214
"Rick Lyons" <r.lyons@_BOGUS_ieee.org> wrote in message
news:41bedb73.165789484@news.sf.sbcglobal.net...
> (snipped)
> >>
> Yesterday I bought Bhaskar a bottle of pilsner
> beer (brewed in Holland) named "Mariner".
> Because Bhaskar never did show up at my place,
> I ended up having to drink his beer myself.
> Today I will buy you a 16ounce can of Henninger
> beer (brewed in Stuttgart Germany). Upon returning
> home I will wait one hour, and if you don't
> arrive to claim your beer I'll be forced to drink
> it as well. :)
Didn't you know that I prefer Ales over Pilsners?? That's why I didn't show
up.
BTW, I'm glad my explanation made reasonable sense.
Cheers
Bhaskar
Reply by David Kirkland●December 14, 200420041214
Rick Lyons wrote:
> On Mon, 13 Dec 2004 11:32:44 0500, David Kirkland <spam@netscape.net>
> wrote:
>
>
>>Rick Lyons wrote:
>>
>>>On Wed, 8 Dec 2004 16:04:28 0800, "Bhaskar Thiagarajan"
>>><bhaskart@mydeja.com> wrote:
>>>
>
> (snipped)
>
>
>
>>>>If you see the diagram,
>>>>one branch uses x(n+1) and the other branch uses x(n).
>>>>My method was to apply a z^1 to both branches. This would result in x(n)
>>>>for the top branch and x(n1) for the bottom branch. In the end, I think it
>>>>is important to preserve the fact that the top branch leads the bottom by 1
>>>>unit of delay.
>>>
>>>
>>>Yes Yes Yes!
>>>Darn, ... as you say I was focusing in on only
>>>part of the system instead of looking at the
>>>whole system.
>>>
>
> (snipped)
>
>>>Good job Bhaskar! That's *another* beer I owe you!
>>>(I hope you're keeping track.)
>>>
>>>
>>>
>>>>Cheers
>>>>Bhaskar
>>>
>>>
>>>Thanks, ... I won't make this mistake again!
>>>[Rick]
>>>
>>
>>Rick,
>>
>>I can't say for sure why it's done that way, but from what I've seen in
>>similar areas:
>
>
>
> Hi David,
>
>
>>Due to symmetry, the math is often easier to follow using time advances.
>>In other words when deriving the equations it is easier to keep track of
>>what it going on. An example might be something like a filter of Length
>>N. If you're interested in the middle element (predict/smoothing) it is
>>easier to keep track of it as element 0 , rather than N/2 (N even).
>
>
> Yes, yes.
> Here's an example of an "advanced time" scenario.
> If we define some H(m) discrete sequence of desired frequency
> response values for a filter we're designing, we can
> obtain the h(n) timedomain impulse response samples by
> taking the DFT of H(m). If we do so, the center
> h(n) sample has an "n" time index value of n = 0.
>
> That h(n) impulse response would then be a noncausal
> (zero phase shift) filter which we cannot implement.
> If we redefine the h(n) index so that the first sample
> is h(0), now we can implement the filter (it's now
> causal) but the filter has a time delay of (N1)/2 samples.
>
> The above paragraph is what I think about anytime someone
> asks, "Why is the delay through an Ntap FIR filter equal to
> (N1)/2 instead of N?"
>
>
>>Other places you might run into similar problems are with foward /
>>backward prediction. Backward prediction seems like an odd thing to do,
>>but because of symmetry the combination of forward/backward prediction
>>produces some very nice results. This often leads to lattice or wave
>>filter construction.
>>
>>
>>BTW  how about a beer for the guy that first responded to your post :)
>
>
> Ha. The 1st time I read your 1st response,
> your idea didn't sink into my head.
> After reading your 1st response again, I now
> see just how really sensible it was.
>
> Thanks David, and yes I'm formally adding your
> name to the list of guys whom I owe an adult
> beverage.
>
> Yesterday I bought Bhaskar a bottle of pilsner
> beer (brewed in Holland) named "Mariner".
> Because Bhaskar never did show up at my place,
> I ended up having to drink his beer myself.
> Today I will buy you a 16ounce can of Henninger
> beer (brewed in Stuttgart Germany). Upon returning
> home I will wait one hour, and if you don't
> arrive to claim your beer I'll be forced to drink
> it as well. :)
>
>
>>Cheers,
>>David
>
>
> Cheers to you & Thanks again,
> [Rick]
>
>
Rick, sorry the first post wasn't as helpful as I would have hoped :(.
I admire your taste in beer  although you'd better hope you don't get
too much help from this forum :)
Cheers,
Dave
Reply by Rick Lyons●December 14, 200420041214
On Mon, 13 Dec 2004 11:32:44 0500, David Kirkland <spam@netscape.net>
wrote:
>Rick Lyons wrote:
>> On Wed, 8 Dec 2004 16:04:28 0800, "Bhaskar Thiagarajan"
>> <bhaskart@mydeja.com> wrote:
>>
(snipped)
>>>If you see the diagram,
>>>one branch uses x(n+1) and the other branch uses x(n).
>>>My method was to apply a z^1 to both branches. This would result in x(n)
>>>for the top branch and x(n1) for the bottom branch. In the end, I think it
>>>is important to preserve the fact that the top branch leads the bottom by 1
>>>unit of delay.
>>
>>
>> Yes Yes Yes!
>> Darn, ... as you say I was focusing in on only
>> part of the system instead of looking at the
>> whole system.
>>
(snipped)
>>
>> Good job Bhaskar! That's *another* beer I owe you!
>> (I hope you're keeping track.)
>>
>>
>>>Cheers
>>>Bhaskar
>>
>>
>> Thanks, ... I won't make this mistake again!
>> [Rick]
>>
>Rick,
>
>I can't say for sure why it's done that way, but from what I've seen in
>similar areas:
Hi David,
>Due to symmetry, the math is often easier to follow using time advances.
>In other words when deriving the equations it is easier to keep track of
>what it going on. An example might be something like a filter of Length
>N. If you're interested in the middle element (predict/smoothing) it is
>easier to keep track of it as element 0 , rather than N/2 (N even).
Yes, yes.
Here's an example of an "advanced time" scenario.
If we define some H(m) discrete sequence of desired frequency
response values for a filter we're designing, we can
obtain the h(n) timedomain impulse response samples by
taking the DFT of H(m). If we do so, the center
h(n) sample has an "n" time index value of n = 0.
That h(n) impulse response would then be a noncausal
(zero phase shift) filter which we cannot implement.
If we redefine the h(n) index so that the first sample
is h(0), now we can implement the filter (it's now
causal) but the filter has a time delay of (N1)/2 samples.
The above paragraph is what I think about anytime someone
asks, "Why is the delay through an Ntap FIR filter equal to
(N1)/2 instead of N?"
>Other places you might run into similar problems are with foward /
>backward prediction. Backward prediction seems like an odd thing to do,
>but because of symmetry the combination of forward/backward prediction
>produces some very nice results. This often leads to lattice or wave
>filter construction.
>
>
>BTW  how about a beer for the guy that first responded to your post :)
Ha. The 1st time I read your 1st response,
your idea didn't sink into my head.
After reading your 1st response again, I now
see just how really sensible it was.
Thanks David, and yes I'm formally adding your
name to the list of guys whom I owe an adult
beverage.
Yesterday I bought Bhaskar a bottle of pilsner
beer (brewed in Holland) named "Mariner".
Because Bhaskar never did show up at my place,
I ended up having to drink his beer myself.
Today I will buy you a 16ounce can of Henninger
beer (brewed in Stuttgart Germany). Upon returning
home I will wait one hour, and if you don't
arrive to claim your beer I'll be forced to drink
it as well. :)
>Cheers,
>David
Cheers to you & Thanks again,
[Rick]
Reply by David Kirkland●December 13, 200420041213
Rick Lyons wrote:
> On Wed, 8 Dec 2004 16:04:28 0800, "Bhaskar Thiagarajan"
> <bhaskart@mydeja.com> wrote:
>
>
> (snipped)
>
>
>>Hi Rick
>
>
> Hi Bhaskar,
>
> I haven't been ignoring you,
> I've just been pretty busy.
>
> (snipped)
>
>>If you see the diagram,
>>one branch uses x(n+1) and the other branch uses x(n).
>>My method was to apply a z^1 to both branches. This would result in x(n)
>>for the top branch and x(n1) for the bottom branch. In the end, I think it
>>is important to preserve the fact that the top branch leads the bottom by 1
>>unit of delay.
>
>
> Yes Yes Yes!
> Darn, ... as you say I was focusing in on only
> part of the system instead of looking at the
> whole system.
>
> I wonder why neither Vaidyanathan nor C.C Hsiao
> explained this issue (to guys like me) as
> well as you just did.
>
>
>>I'd be glad to answer more questions if you have any  not that I can
>>promise I'll have answers but I'll certainly try.
>
>
> Good job Bhaskar! That's *another* beer I owe you!
> (I hope you're keeping track.)
>
>
>>Cheers
>>Bhaskar
>
>
> Thanks, ... I won't make this mistake again!
> [Rick]
>
Rick,
I can't say for sure why it's done that way, but from what I've seen in
similar areas:
Due to symmetry, the math is often easier to follow using time advances.
In other words when deriving the equations it is easier to keep track of
what it going on. An example might be something like a filter of Length
N. If you're interested in the middle element (predict/smoothing) it is
easier to keep track of it as element 0 , rather than N/2 (N even).
Other places you might run into similar problems are with foward /
backward prediction. Backward prediction seems like an odd thing to do,
but because of symmetry the combination of forward/backward prediction
produces some very nice results. This often leads to lattice or wave
filter construction.
BTW  how about a beer for the guy that first responded to your post :)
Cheers,
David
Reply by Peter K.●December 12, 200420041212
Rick wrote:
] Good job Bhaskar! That's *another* beer I owe you!
] (I hope you're keeping track.)
(: If he's not, Google will. :)
Ciao,
Peter K.
Reply by Rick Lyons●December 12, 200420041212
On Wed, 8 Dec 2004 16:04:28 0800, "Bhaskar Thiagarajan"
<bhaskart@mydeja.com> wrote:
(snipped)
>Hi Rick
Hi Bhaskar,
I haven't been ignoring you,
I've just been pretty busy.
(snipped)
>
>If you see the diagram,
>one branch uses x(n+1) and the other branch uses x(n).
>My method was to apply a z^1 to both branches. This would result in x(n)
>for the top branch and x(n1) for the bottom branch. In the end, I think it
>is important to preserve the fact that the top branch leads the bottom by 1
>unit of delay.
Yes Yes Yes!
Darn, ... as you say I was focusing in on only
part of the system instead of looking at the
whole system.
I wonder why neither Vaidyanathan nor C.C Hsiao
explained this issue (to guys like me) as
well as you just did.
>I'd be glad to answer more questions if you have any  not that I can
>promise I'll have answers but I'll certainly try.
Good job Bhaskar! That's *another* beer I owe you!
(I hope you're keeping track.)
>Cheers
>Bhaskar
Thanks, ... I won't make this mistake again!
[Rick]
Reply by Bhaskar Thiagarajan●December 8, 200420041208
"Rick Lyons" <r.lyons@_BOGUS_ieee.org> wrote in message
news:41b78cd4.399900843@news.sf.sbcglobal.net...
> On Mon, 6 Dec 2004 09:23:22 0800, "Bhaskar Thiagarajan"
> <bhaskart@mydeja.com> wrote:
>
> (snipped)
> >
> >I've had the same problem when I've used his text to solve some polyphase
> >decomposition problems.
> >The way I dealt with it was to add a fixed delay equal to the largest
> >positive power of z at the input. This would give me a z^0 and several
z^ve
> >values (depending on my resampling ratios). So I then implemented them as
> >delays and jumped around the time advance that his text suggests.
> >It seemed to make sense to me and the fact that my design worked made me
> >feel a little better about it.
> >
> >Hope this helps.
> >
> >Cheers
> >Bhaskar
>
> Hi Bhaskar,
>
> it sounds like you solved this problem.
> Sorry to be so "thickskulled", but can you answer a
> couple of questions for me?
>
> Looking at the following block diagram, how can I add
> delays so that sample x(n+1) is available to me
> at time instant n?
>
>
> ??? Delay Delay
>
>   
> x(n)> z *> 1/z *> 1/z > a(n)
>     
>  
>  > b(n)
> 
> > x(n+1)
>
>
> Can you tell me what your term "z^ve" means?
Hi Rick
Sorry, I shouldn't have assumed that "z^ve value" would read as "z raised
to negative values"...anyways, that's what I meant.
In your diagram, you have taken one segment of the diagram from the book 
I'm not sure how I can help solve just this one section without using the
other half.
If you see the diagram,
one branch uses x(n+1) and the other branch uses x(n).
My method was to apply a z^1 to both branches. This would result in x(n)
for the top branch and x(n1) for the bottom branch. In the end, I think it
is important to preserve the fact that the top branch leads the bottom by 1
unit of delay.
I'd be glad to answer more questions if you have any  not that I can
promise I'll have answers but I'll certainly try.
Cheers
Bhaskar
>
> I'd sure like to figure this out.
> Thanks Bhaskar,
> [Rick]
Reply by Rick Lyons●December 8, 200420041208
On Mon, 6 Dec 2004 09:23:22 0800, "Bhaskar Thiagarajan"
<bhaskart@mydeja.com> wrote:
(snipped)
>
>I've had the same problem when I've used his text to solve some polyphase
>decomposition problems.
>The way I dealt with it was to add a fixed delay equal to the largest
>positive power of z at the input. This would give me a z^0 and several z^ve
>values (depending on my resampling ratios). So I then implemented them as
>delays and jumped around the time advance that his text suggests.
>It seemed to make sense to me and the fact that my design worked made me
>feel a little better about it.
>
>Hope this helps.
>
>Cheers
>Bhaskar
Hi Bhaskar,
it sounds like you solved this problem.
Sorry to be so "thickskulled", but can you answer a
couple of questions for me?
Looking at the following block diagram, how can I add
delays so that sample x(n+1) is available to me
at time instant n?
??? Delay Delay
  
x(n)> z *> 1/z *> 1/z > a(n)
    
 
 > b(n)

> x(n+1)
Can you tell me what your term "z^ve" means?
I'd sure like to figure this out.
Thanks Bhaskar,
[Rick]
Reply by Rick Lyons●December 8, 200420041208
On Mon, 6 Dec 2004 12:55:30 0500, "Jaime Andr�s Aranguren Cardona"
<jaac@nospam.sanjaac.com> wrote:
>Hi Rick,
>
>It seems that many of us have got into the trouble of the "noncausality"
>created by that z^(+1) in Vaidyanathan's book.
>
>Just to complement whay Bhaskar wrote, have a look at this thread in
>comp.dsp archives http://tinyurl.com/668qw I hope this helps in clarifying,
>as it did for me.
>
>Regards,
>
>
>Jaime Andr�s Aranguren Cardona
Hello Jaime,
thanks, I'll take a look at that thread.
[Rick]
Reply by ●December 6, 200420041206
Hi Rick,
It seems that many of us have got into the trouble of the "noncausality"
created by that z^(+1) in Vaidyanathan's book.
Just to complement whay Bhaskar wrote, have a look at this thread in
comp.dsp archives http://tinyurl.com/668qw I hope this helps in clarifying,
as it did for me.
Regards,

Jaime Andr�s Aranguren Cardona
jaac@nospam.sanjaac.com
SanJaaC Electronics
Soluciones en DSP
www.sanjaac.com
(Remove "nospam" from email address)
"Rick Lyons" <r.lyons@_BOGUS_ieee.org> escribi� en el mensaje
news:41b470cc.196117296@news.sf.sbcglobal.net...
>
> Hello Earthlings,
>
> I recently ran across some material in
> Vaidyanathan's "Multirate Systems and Filter Banks"
> DSP book that discusses a way to improve the
> computational efficiency of polyphase filters
> used in noninteger decimation applications.
>
> Vaidyanathan's description (starting on page 128,
> and derived from a 1987 conference paper by
> C.C Hsiao) sounds interesting except for one
> tiny little thing. To implement this "nice trick,
> as Vaidyanathan calls it, we have to implement the
> inverse of a delay. What I mean by that is:
> if a singlesample delay is represented by
> z^(1), 1/z, Vaidyanathan shows an element in
> his Figure 4.38 block diagrams represented by
> a "z" (z to the plus one power)!!!
>
> It looks something like:
>
> ??? Delay Delay
>
>   
> x(n)> z *> 1/z *> 1/z > a(n)
>     
>  
>  > b(n)
> 
> > c(n)
>
> I've read his description just about as thoroughly
> as I can, but I still can't figure out how we can
> implement that initial "time advance by one sample"
> operation shown above.
> I took a look at the original Hsaio conference paper,
> but found no discernable explanation for that
> troubesome "z" operation. I even went through
> Stephan Hawking's "A Brief History of Time" book
> to see if there was some way to travel into the
> future to obtain future time samples. I had no luck
> reading either Hsaio's or Hawking's material.
>
> Can the decimation scheme in Vaidyanathan's
> Figure 4.38 block diagrams actually work in our
> universe? :)
>
> Gosh, ... I know I'm making some sort of silly mistake
> here, but I'm darned if I can figure what it is?
>
> Hey wait a second. After typing this post it just
> occurred to me that maybe this "nice trick" can only
> be used "offline", the situation where all the x(n)
> time samples are available before the decimation
> process begins. However, neither Vaidyanathan nor
> Hsaio mentioned (as far as I know) an "offline only"
> restriction for their decimation filters.
>
> Anyway, I'd sure appreciate it if one of you guys could
> straighten me out.
>
> Thanks Guys,
> [Rick]
>