Reply by jim July 29, 20062006-07-29

Jerry Avins wrote:

> > An index is conceptually an integer, although the concept is a bit > fictile. It may still be true that the average American family has 2.3 > children, but it would be hard to interview the 1.5th. Fundamentally, > one counts with indices and calculates with arguments.
Yes, but that is not really the problem. One can easily get around a restriction on how counting is done by proper scaling and shifting of the arguments contained in formulae that use indexing. Thus you could if you want even impose a restriction that all counting start with some arbitrary number (e.g. zero) and progress in a positive direction with integer intervals. But that isn't the problem here. The problem is I gave a real frequency response for a filter and Andor gave a complex one. To convert from one to the other requires multiplying by a linear phase term, but in this case the particular linear phase term is verboten. The linear phase term contains a fractional argument which is not allowed and thus you can not get to here from there. -jim ----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==---- http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Reply by Jerry Avins July 29, 20062006-07-29
Rune Allnor wrote:
> Jerry Avins skrev: >> Andor wrote: >>> jim wrote: >>>> Andor wrote: >>>> >>>>> That's true. But choosing the center of the kernel as zero-index can >>>>> only be done for kernels of an odd size ... >>>> Well, not really. If you limit your indexing capability to whole >>>> integers then you are saddled with that limitation (in other words, if >>>> you require your reference zero to land on a sample point only odd sized >>>> kernels will be allowed). But there is no mathematical reason preventing >>>> you from setting zero to half way between two samples. >>> Interesting. Let's say you have a first order difference filter (two >>> coefficients). How does a symmetric indexing scheme work with this >>> filter? >> Not so hard if you allow me to ignore the distinction between an index >> and an argument. (t - 1) and (t) become (t - 1/2) and (t + 1/2). > > A different way of saying this could be to say that the reference time > t > has to be on the form (2n-1)/2, for some integer n. Somehow I am more > comfortable with fractional-sample-period delays, than > fractional-sample > indexes in the time series...
An index is conceptually an integer, although the concept is a bit fictile. It may still be true that the average American family has 2.3 children, but it would be hard to interview the 1.5th. Fundamentally, one counts with indices and calculates with arguments. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by Rune Allnor July 28, 20062006-07-28
Jerry Avins skrev:
> Andor wrote: > > jim wrote: > >> Andor wrote: > >> > >>> That's true. But choosing the center of the kernel as zero-index can > >>> only be done for kernels of an odd size ... > >> Well, not really. If you limit your indexing capability to whole > >> integers then you are saddled with that limitation (in other words, if > >> you require your reference zero to land on a sample point only odd sized > >> kernels will be allowed). But there is no mathematical reason preventing > >> you from setting zero to half way between two samples. > > > > Interesting. Let's say you have a first order difference filter (two > > coefficients). How does a symmetric indexing scheme work with this > > filter? > > Not so hard if you allow me to ignore the distinction between an index > and an argument. (t - 1) and (t) become (t - 1/2) and (t + 1/2).
A different way of saying this could be to say that the reference time t has to be on the form (2n-1)/2, for some integer n. Somehow I am more comfortable with fractional-sample-period delays, than fractional-sample indexes in the time series... Rune
Reply by Jerry Avins July 28, 20062006-07-28
jim wrote:
> > Jerry Avins wrote:
...
>> Not so hard if you allow me to ignore the distinction between an index >> and an argument. (t - 1) and (t) become (t - 1/2) and (t + 1/2). > > That's a distinction without a difference once you have plugged the > index into a fornula.
You mean if it quacks like a duck and all that? An index specifies a particular member of a sequence or array. An argument is something that can be plugged into a formula to compute a specific result. That's a distinction with a difference that is overlooked only with peril. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by jim July 28, 20062006-07-28

Jerry Avins wrote:
> > Andor wrote: > > jim wrote: > >> Andor wrote: > >> > >>> That's true. But choosing the center of the kernel as zero-index can > >>> only be done for kernels of an odd size ... > >> Well, not really. If you limit your indexing capability to whole > >> integers then you are saddled with that limitation (in other words, if > >> you require your reference zero to land on a sample point only odd sized > >> kernels will be allowed). But there is no mathematical reason preventing > >> you from setting zero to half way between two samples. > > > > Interesting. Let's say you have a first order difference filter (two > > coefficients). How does a symmetric indexing scheme work with this > > filter? > > Not so hard if you allow me to ignore the distinction between an index > and an argument. (t - 1) and (t) become (t - 1/2) and (t + 1/2).
That's a distinction without a difference once you have plugged the index into a fornula. -jim ----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==---- http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Reply by jim July 28, 20062006-07-28

Andor wrote:

> The shift theorem works only for integer shifts.
OK. then it can't be done. -jim
> For non-integer shifts > periodic interpolation in time-domain is performed. This does not > result in the same filter as with bandlimited interpolation. For > example, the first difference filter h = [1 -1] using a shift of 1/2 > results in the zero filter (h[k] = cos(2 pi k) => h[k+1/2] = cos(2 pi > (k+1/2)) = 0). Contrast this to bandlimited interpolation of h when > shifted by 1/2 which results in the two-sided antisymmetric IIR filter > > h_{1/2} = [ ... -0.339531, 0.848826, 0, -0.848826, 0.339531, .... ] > > > Remember, > > The indices themselves are shifts and the entire kernel can be > > decomposed into single shifted impulses. If instead you choose to > > decompose into symmetrical and anti symmetrical parts then each part is > > composed of matched pairs of impulses where the distance between is > > increasing by 2. > > > > For computing the frequency response for kernel of length N that can be > > boiled down to this: > > > > For a odd length filter -> sum of sines and cosines with even multiples > > of Pi (0, 2, 4, ... N-1) > > > > For a even length filter -> sum of sines and cosines with odd multiples > > of Pi (1, 3, 5, ... N-1) > > > > > > > > So if your filter was [3 -1]. That decomposes to [1 1] and [2 -2] > > > > and thus the frequency response is cos(pi) + 2*sin(pi) > > I'm not quite sure where you are going with your calculation. The > frequency response of the filter [3 -1] is > > H(w) = 3 - exp(-j w), > > and its magnitude squared response is > > |H(w)|^2 = 10 - 6 cos(w). > > I don't see how your formula can be turned into either of those. > Anycase, we were discussing the frequency domain equivalent of > time-reversing the filter kernel. It is easy to show in this example > how time-reversion implies conjugation of the frequency response and > the multiplication of the linear-phase term corresponding to a time > shift: > > H_r(w) = -1 + 3 exp(-j w) = exp(-j w) (- exp(j w) + 3) = exp(-j w) > H(w)* > > Regards, > Andor
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==---- http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Reply by Andor July 28, 20062006-07-28
jim wrote:
> Andor wrote: > > > > jim wrote: > > > Andor wrote: > > > > > > > > > > > That's true. But choosing the center of the kernel as zero-index can > > > > only be done for kernels of an odd size ... > > > > > > Well, not really. If you limit your indexing capability to whole > > > integers then you are saddled with that limitation (in other words, if > > > you require your reference zero to land on a sample point only odd sized > > > kernels will be allowed). But there is no mathematical reason preventing > > > you from setting zero to half way between two samples. > > > > Interesting. Let's say you have a first order difference filter (two > > coefficients). How does a symmetric indexing scheme work with this > > filter? > > > First of all as you stated in the first post that I replied to, the > shift theorem tells you how much to shift to eliminate the linear phase > term, so you should be able to work it out from that alone.
The shift theorem works only for integer shifts. For non-integer shifts periodic interpolation in time-domain is performed. This does not result in the same filter as with bandlimited interpolation. For example, the first difference filter h = [1 -1] using a shift of 1/2 results in the zero filter (h[k] = cos(2 pi k) => h[k+1/2] = cos(2 pi (k+1/2)) = 0). Contrast this to bandlimited interpolation of h when shifted by 1/2 which results in the two-sided antisymmetric IIR filter h_{1/2} = [ ... -0.339531, 0.848826, 0, -0.848826, 0.339531, .... ]
> Remember, > The indices themselves are shifts and the entire kernel can be > decomposed into single shifted impulses. If instead you choose to > decompose into symmetrical and anti symmetrical parts then each part is > composed of matched pairs of impulses where the distance between is > increasing by 2. > > For computing the frequency response for kernel of length N that can be > boiled down to this: > > For a odd length filter -> sum of sines and cosines with even multiples > of Pi (0, 2, 4, ... N-1) > > For a even length filter -> sum of sines and cosines with odd multiples > of Pi (1, 3, 5, ... N-1) > > > > So if your filter was [3 -1]. That decomposes to [1 1] and [2 -2] > > and thus the frequency response is cos(pi) + 2*sin(pi)
I'm not quite sure where you are going with your calculation. The frequency response of the filter [3 -1] is H(w) = 3 - exp(-j w), and its magnitude squared response is |H(w)|^2 = 10 - 6 cos(w). I don't see how your formula can be turned into either of those. Anycase, we were discussing the frequency domain equivalent of time-reversing the filter kernel. It is easy to show in this example how time-reversion implies conjugation of the frequency response and the multiplication of the linear-phase term corresponding to a time shift: H_r(w) = -1 + 3 exp(-j w) = exp(-j w) (- exp(j w) + 3) = exp(-j w) H(w)* Regards, Andor
Reply by Jerry Avins July 28, 20062006-07-28
Andor wrote:
> jim wrote: >> Andor wrote: >> >>> That's true. But choosing the center of the kernel as zero-index can >>> only be done for kernels of an odd size ... >> Well, not really. If you limit your indexing capability to whole >> integers then you are saddled with that limitation (in other words, if >> you require your reference zero to land on a sample point only odd sized >> kernels will be allowed). But there is no mathematical reason preventing >> you from setting zero to half way between two samples. > > Interesting. Let's say you have a first order difference filter (two > coefficients). How does a symmetric indexing scheme work with this > filter?
Not so hard if you allow me to ignore the distinction between an index and an argument. (t - 1) and (t) become (t - 1/2) and (t + 1/2). Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by jim July 28, 20062006-07-28

Andor wrote:
> > jim wrote: > > Andor wrote: > > > > > > > > That's true. But choosing the center of the kernel as zero-index can > > > only be done for kernels of an odd size ... > > > > Well, not really. If you limit your indexing capability to whole > > integers then you are saddled with that limitation (in other words, if > > you require your reference zero to land on a sample point only odd sized > > kernels will be allowed). But there is no mathematical reason preventing > > you from setting zero to half way between two samples. > > Interesting. Let's say you have a first order difference filter (two > coefficients). How does a symmetric indexing scheme work with this > filter?
First of all as you stated in the first post that I replied to, the shift theorem tells you how much to shift to eliminate the linear phase term, so you should be able to work it out from that alone. Remember, The indices themselves are shifts and the entire kernel can be decomposed into single shifted impulses. If instead you choose to decompose into symmetrical and anti symmetrical parts then each part is composed of matched pairs of impulses where the distance between is increasing by 2. For computing the frequency response for kernel of length N that can be boiled down to this: For a odd length filter -> sum of sines and cosines with even multiples of Pi (0, 2, 4, ... N-1) For a even length filter -> sum of sines and cosines with odd multiples of Pi (1, 3, 5, ... N-1) So if your filter was [3 -1]. That decomposes to [1 1] and [2 -2] and thus the frequency response is cos(pi) + 2*sin(pi) -jim ----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==---- http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Reply by Andor July 28, 20062006-07-28
I wrote:
> jim wrote: > > Andor wrote: > > > > > > > > That's true. But choosing the center of the kernel as zero-index can > > > only be done for kernels of an odd size ... > > > > Well, not really. If you limit your indexing capability to whole > > integers then you are saddled with that limitation (in other words, if > > you require your reference zero to land on a sample point only odd sized > > kernels will be allowed). But there is no mathematical reason preventing > > you from setting zero to half way between two samples. > > Interesting. Let's say you have a first order difference filter (two > coefficients). How does a symmetric indexing scheme work with this > filter?
Banlimited interpolation makes this into an IIR filter. Hardly the kind of operation that simplifies the analysis. I prefer the linear-phase term :-). Regards, Andor