Reply by Jani Huhtanen September 4, 20062006-09-04
Oli Filth wrote:

> Jani Huhtanen said the following on 01/09/2006 18:16: >> Oli Filth wrote: >>> Let us consider the case where phi(t) is bandlimited. Therefore: >>> >>> phi(t) = SUM_n{ c[n] sinc(t-n) } >>> >>> and: >>> >>> phi(t-t0) = SUM_n{ c[n] sinc(t-t0-n) } >>> >>> Decomposing sinc(t-t0): >>> >>> phi(t-t0) = SUM_n{ c[n] SUM_q{ a_t0[q] sinc(t-q-n) }} >>> >>> = SUM_q{ a_t0[q] SUM_n{ c[n] sinc(t-q-n) }} >>> >>> But the inner summation is just phi(t-q), therefore we have: >>> >>> phi(t-t0) = SUM_q{ a_t0[q] phi(t-q) } >>> >>> which is the form we desire. This implies that any sampling function >>> that is appropriately bandlimited satisfies (6) in your original post. >>> >> it would be interesting to find constrainst for phi(t) so that it spans >> the same function space as sinc(t). > > To span an identical space, the set {phi(t-k)} must themselves be in the > space, and therefore we *must* be able to express them as a linear > summation of basis functions {sinc(t-k)} (i.e. they must necessarily be > bandlimited). If we have: > > phi(t) = SUM_n{ c[n] sinc(t-n) } > > then to have: > > <phi(t), phi(t-k)> = delta(k) > > [(1) from your original post] > we must have: > > <c[n], c[n-k]> = delta(k) > > In other words, the discrete-time representation of phi(t) (in a > Nyquist-sampled sense) must exhibit a white spectrum. The only two > cases I can think of that satisfy this are: > > * c[n] = delta(n), which gives phi(t) = sinc(t). > > * c[n] is a zero-mean memoryless random process. >
Yep, this is true. Or at least I arrived at the same result.
> >> I'm quite tight on time at the moment (started a new job). > > I, on the other hand, currently have all the time in the world, as I've > just graduated, and don't start my job until October! This is a very > interesting problem, so I'm happy to keep working on it. >
That's great! -- Jani Huhtanen
Reply by Oli Filth September 1, 20062006-09-01
Jani Huhtanen said the following on 01/09/2006 18:16:
> Oli Filth wrote: >> Let us consider the case where phi(t) is bandlimited. Therefore: >> >> phi(t) = SUM_n{ c[n] sinc(t-n) } >> >> and: >> >> phi(t-t0) = SUM_n{ c[n] sinc(t-t0-n) } >> >> Decomposing sinc(t-t0): >> >> phi(t-t0) = SUM_n{ c[n] SUM_q{ a_t0[q] sinc(t-q-n) }} >> >> = SUM_q{ a_t0[q] SUM_n{ c[n] sinc(t-q-n) }} >> >> But the inner summation is just phi(t-q), therefore we have: >> >> phi(t-t0) = SUM_q{ a_t0[q] phi(t-q) } >> >> which is the form we desire. This implies that any sampling function >> that is appropriately bandlimited satisfies (6) in your original post. >> > it would be interesting to find constrainst for phi(t) so that it spans the > same function space as sinc(t).
To span an identical space, the set {phi(t-k)} must themselves be in the space, and therefore we *must* be able to express them as a linear summation of basis functions {sinc(t-k)} (i.e. they must necessarily be bandlimited). If we have: phi(t) = SUM_n{ c[n] sinc(t-n) } then to have: <phi(t), phi(t-k)> = delta(k) [(1) from your original post] we must have: <c[n], c[n-k]> = delta(k) In other words, the discrete-time representation of phi(t) (in a Nyquist-sampled sense) must exhibit a white spectrum. The only two cases I can think of that satisfy this are: * c[n] = delta(n), which gives phi(t) = sinc(t). * c[n] is a zero-mean memoryless random process.
> I'm quite tight on time at the moment (started a new job).
I, on the other hand, currently have all the time in the world, as I've just graduated, and don't start my job until October! This is a very interesting problem, so I'm happy to keep working on it. -- Oli
Reply by Jani Huhtanen September 1, 20062006-09-01
Oli Filth wrote:

> Jani, > > I've given this some more thought; hopefully there are no mistakes this > time! >
I'm really impressed and thankful for your effort, Oli.
> Let us consider the case where phi(t) is bandlimited. Therefore: > > phi(t) = SUM_n{ c[n] sinc(t-n) } > > and: > > phi(t-t0) = SUM_n{ c[n] sinc(t-t0-n) } > > Decomposing sinc(t-t0): > > phi(t-t0) = SUM_n{ c[n] SUM_q{ a_t0[q] sinc(t-q-n) }} > > = SUM_q{ a_t0[q] SUM_n{ c[n] sinc(t-q-n) }} > > But the inner summation is just phi(t-q), therefore we have: > > phi(t-t0) = SUM_q{ a_t0[q] phi(t-q) } > > which is the form we desire. This implies that any sampling function > that is appropriately bandlimited satisfies (6) in your original post. > > The next job is to consider what happens if we extend the bandwidth of > phi(t)... > >
I don't find any mistakes. In addition to phi(t) with "extended bandwidth", it would be interesting to find constrainst for phi(t) so that it spans the same function space as sinc(t). It is propably quite straightforward to show, but I'm quite thight on time at the moment (started a new job). I'll look into it at some point. -- Jani Huhtanen
Reply by Oli Filth August 31, 20062006-08-31
Jani,

I've given this some more thought; hopefully there are no mistakes this 
time!

Let us consider the case where phi(t) is bandlimited.  Therefore:

     phi(t) = SUM_n{ c[n] sinc(t-n) }

and:

     phi(t-t0) = SUM_n{ c[n] sinc(t-t0-n) }

Decomposing sinc(t-t0):

     phi(t-t0) = SUM_n{ c[n] SUM_q{ a_t0[q] sinc(t-q-n) }}

               = SUM_q{ a_t0[q] SUM_n{ c[n] sinc(t-q-n) }}

But the inner summation is just phi(t-q), therefore we have:

     phi(t-t0) = SUM_q{ a_t0[q] phi(t-q) }

which is the form we desire.  This implies that any sampling function 
that is appropriately bandlimited satisfies (6) in your original post.

The next job is to consider what happens if we extend the bandwidth of 
phi(t)...


-- 
Oli
Reply by Oli Filth August 29, 20062006-08-29
Jani Huhtanen said the following on 29/08/2006 11:46:
> Oli Filth wrote: > >> Jani Huhtanen said the following on 28/08/2006 16:01: >>> Oli Filth wrote: >>> >>>> Jani Huhtanen said the following on 28/08/2006 07:27: >>>>> I'm afraid you have made a mistake somewhere (I'll look into it after >>>>> I'm back from work). >>>> Ah, that is because I'm an idiot. I go back to my original assertion, >>>> that sinc is the only solution. >>>> >>>> I forgot that t is not a constant in the equation: >>>> >>>> a_t0[n] h(t-t0) = b_t0[n] h(t-n) >>>> >>>> For any given {t0,n} in {R,Z}, this must hold at *all* values of t. It >>>> is apparent that this can only hold where: >>>> >>>> h(t-t0) = C h(t-n) >>>> >>>> for all t in R, where C = (b_t0[n]/a_t0[n]) is some constant. Clearly, >>>> this can only hold when C = 1 and h(t) = K. >>>> >>>> >>> In your notation is . multiplication (and not for example convolution)? I >>> assume it is multiplication as you talked about window function. >> Yes. >> >> >>> I still fail to see why >>> >>> phi(t-t0) = SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } >>> phi(t-t0) = SUM_n{ b_t0[n]*h(t-n)*sinc(t-n) } (a) >>> >>> implies >>> >>> a_t0[n]*h(t-t0) = b_t0[n]*h(t-n). (b) >>> >>> I see that (b) implies (a), but is it really: (a) <=> (b) ? >>> >>> I assume you infered the result from >>> >>> SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } - SUM_n{ >>> b_t0[n]*h(t-n)*sinc(t-n) } >>> = SUM_n{ (a_t0[n]*h(t-t0) - b_t0[n]*h(t-n)) * sinc(t-n) } <--- >>> = phi(t-t0) - phi(t-t0) = 0 >>> >>> but how did you prove that >>> >>> a_t0[n]*h(t-t0) - b_t0[n]*h(t-n) (i) >>> >>> could not be orthogonal to >>> >>> sinc(t-n) (ii) >> You make an excellent point, which I did not think of. However, here >> are my thoughts on this: >> >> The function set {sinc(t-n)} forms an orthonormal basis of bandlimited >> functions; i.e. >> >> f(t) = SUM_n{ c[n] sinc(t-n) } >> >> Therefore we have two possibilities: >> >> 1. phi(t-t0) is bandlimited. >> Therefore it is uniquely specified by a set of coefficients {c[n]}. >> Therefore a_t0[n].h(t-t0) = b_t0[n].h(t-n). >> >> 2. phi(t-t0) is not bandlimited. >> Therefore it cannot be specified by any set of coefficients {c[n]}. >> >> > > Yes, but a_t0[n]*h(t-t0)-b_t0[n]*h(t-n) is a function of t and t0 while c[n] > is not.
Dammit, you are right! I must learn to think before I post. I will give this some more thought... -- Oli
Reply by Jani Huhtanen August 29, 20062006-08-29
Oli Filth wrote:

> Jani Huhtanen said the following on 28/08/2006 16:01: >> Oli Filth wrote: >> >>> Jani Huhtanen said the following on 28/08/2006 07:27: >>>> I'm afraid you have made a mistake somewhere (I'll look into it after >>>> I'm back from work). >>> Ah, that is because I'm an idiot. I go back to my original assertion, >>> that sinc is the only solution. >>> >>> I forgot that t is not a constant in the equation: >>> >>> a_t0[n] h(t-t0) = b_t0[n] h(t-n) >>> >>> For any given {t0,n} in {R,Z}, this must hold at *all* values of t. It >>> is apparent that this can only hold where: >>> >>> h(t-t0) = C h(t-n) >>> >>> for all t in R, where C = (b_t0[n]/a_t0[n]) is some constant. Clearly, >>> this can only hold when C = 1 and h(t) = K. >>> >>> >> >> In your notation is . multiplication (and not for example convolution)? I >> assume it is multiplication as you talked about window function. > > Yes. > > >> I still fail to see why >> >> phi(t-t0) = SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } >> phi(t-t0) = SUM_n{ b_t0[n]*h(t-n)*sinc(t-n) } (a) >> >> implies >> >> a_t0[n]*h(t-t0) = b_t0[n]*h(t-n). (b) >> >> I see that (b) implies (a), but is it really: (a) <=> (b) ? >> >> I assume you infered the result from >> >> SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } - SUM_n{ >> b_t0[n]*h(t-n)*sinc(t-n) } >> = SUM_n{ (a_t0[n]*h(t-t0) - b_t0[n]*h(t-n)) * sinc(t-n) } <--- >> = phi(t-t0) - phi(t-t0) = 0 >> >> but how did you prove that >> >> a_t0[n]*h(t-t0) - b_t0[n]*h(t-n) (i) >> >> could not be orthogonal to >> >> sinc(t-n) (ii) > > You make an excellent point, which I did not think of. However, here > are my thoughts on this: > > The function set {sinc(t-n)} forms an orthonormal basis of bandlimited > functions; i.e. > > f(t) = SUM_n{ c[n] sinc(t-n) } > > Therefore we have two possibilities: > > 1. phi(t-t0) is bandlimited. > Therefore it is uniquely specified by a set of coefficients {c[n]}. > Therefore a_t0[n].h(t-t0) = b_t0[n].h(t-n). > > 2. phi(t-t0) is not bandlimited. > Therefore it cannot be specified by any set of coefficients {c[n]}. > >
Yes, but a_t0[n]*h(t-t0)-b_t0[n]*h(t-n) is a function of t and t0 while c[n] is not. -- Jani Huhtanen Tampere University of Technology, Pori
Reply by Oli Filth August 28, 20062006-08-28
Jani Huhtanen said the following on 28/08/2006 16:01:
> Oli Filth wrote: > >> Jani Huhtanen said the following on 28/08/2006 07:27: >>> I'm afraid you have made a mistake somewhere (I'll look into it after I'm >>> back from work). >> Ah, that is because I'm an idiot. I go back to my original assertion, >> that sinc is the only solution. >> >> I forgot that t is not a constant in the equation: >> >> a_t0[n] h(t-t0) = b_t0[n] h(t-n) >> >> For any given {t0,n} in {R,Z}, this must hold at *all* values of t. It >> is apparent that this can only hold where: >> >> h(t-t0) = C h(t-n) >> >> for all t in R, where C = (b_t0[n]/a_t0[n]) is some constant. Clearly, >> this can only hold when C = 1 and h(t) = K. >> >> > > In your notation is . multiplication (and not for example convolution)? I > assume it is multiplication as you talked about window function.
Yes.
> I still fail to see why > > phi(t-t0) = SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } > phi(t-t0) = SUM_n{ b_t0[n]*h(t-n)*sinc(t-n) } (a) > > implies > > a_t0[n]*h(t-t0) = b_t0[n]*h(t-n). (b) > > I see that (b) implies (a), but is it really: (a) <=> (b) ? > > I assume you infered the result from > > SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } - SUM_n{ b_t0[n]*h(t-n)*sinc(t-n) } > = SUM_n{ (a_t0[n]*h(t-t0) - b_t0[n]*h(t-n)) * sinc(t-n) } <--- > = phi(t-t0) - phi(t-t0) = 0 > > but how did you prove that > > a_t0[n]*h(t-t0) - b_t0[n]*h(t-n) (i) > > could not be orthogonal to > > sinc(t-n) (ii)
You make an excellent point, which I did not think of. However, here are my thoughts on this: The function set {sinc(t-n)} forms an orthonormal basis of bandlimited functions; i.e. f(t) = SUM_n{ c[n] sinc(t-n) } Therefore we have two possibilities: 1. phi(t-t0) is bandlimited. Therefore it is uniquely specified by a set of coefficients {c[n]}. Therefore a_t0[n].h(t-t0) = b_t0[n].h(t-n). 2. phi(t-t0) is not bandlimited. Therefore it cannot be specified by any set of coefficients {c[n]}. -- Oli
Reply by Jani Huhtanen August 28, 20062006-08-28
Oli Filth wrote:

> Jani Huhtanen said the following on 28/08/2006 07:27: >> Oli Filth wrote: >> >>> Oli Filth said the following on 27/08/2006 21:22: >>>> Jani Huhtanen said the following on 27/08/2006 19:20: >>>>> Let there be a real function phi(t), such that >>>>> >>>>> { 0, n =/= 0 >>>>> <phi(t), phi(t-n)> ={ (1)* >>>>> { 1, n = 0 >>>>>
<snip>
>>>>>phi(t) has to have following additional property: >>>>> >>>>> phi(t-t0) = SUM_n{ b_t0[n]*phi(t-n) }, for all t0 (6) >>>>> >>>>> Now finally, my question: Is sinc the only function that satisfies >>>>> both (1) >>>>> and (6) (or (7))? >>>>
<snip>
>>> BLEEP! Brain-fart! I am wrong. >>> >>> Writing (10) and (11) again: >>> >>> phi(t-t0) = SUM_n{ a_t0[n] h(t-t0).sinc(t-n) } >>> phi(t-t0) = SUM_n{ b_t0[n] h(t-n).sinc(t-n) } >>> >>> We have: >>> >>> a_t0[n] h(t-t0) = b_t0[n] h(t-n) >>> >>> for all n in Z and t0 in R. Therefore: >>> >>> b_t0[n] = a_t0[n] h(t-t0) / h(t-n) >>> >>> Therefore, *any* function that satisfies (1) will also satisfy (6), >>> provided h(t-n) =/= 0. >>> >> >> I'm afraid you have made a mistake somewhere (I'll look into it after I'm >> back from work). > > Ah, that is because I'm an idiot. I go back to my original assertion, > that sinc is the only solution. > > I forgot that t is not a constant in the equation: > > a_t0[n] h(t-t0) = b_t0[n] h(t-n) > > For any given {t0,n} in {R,Z}, this must hold at *all* values of t. It > is apparent that this can only hold where: > > h(t-t0) = C h(t-n) > > for all t in R, where C = (b_t0[n]/a_t0[n]) is some constant. Clearly, > this can only hold when C = 1 and h(t) = K. > >
In your notation is . multiplication (and not for example convolution)? I assume it is multiplication as you talked about window function. I still fail to see why phi(t-t0) = SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } phi(t-t0) = SUM_n{ b_t0[n]*h(t-n)*sinc(t-n) } (a) implies a_t0[n]*h(t-t0) = b_t0[n]*h(t-n). (b) I see that (b) implies (a), but is it really: (a) <=> (b) ? I assume you infered the result from SUM_n{ a_t0[n]*h(t-t0)*sinc(t-n) } - SUM_n{ b_t0[n]*h(t-n)*sinc(t-n) } = SUM_n{ (a_t0[n]*h(t-t0) - b_t0[n]*h(t-n)) * sinc(t-n) } <--- = phi(t-t0) - phi(t-t0) = 0 but how did you prove that a_t0[n]*h(t-t0) - b_t0[n]*h(t-n) (i) could not be orthogonal to sinc(t-n) (ii) with respect to n for all t and t0 in R and for all h(t) such that phi(t) = h(t)*sinc(t) satisfies (1)? Do I make any sense? and btw, a_t0[n] = sinc(n-t0)... -- Jani Huhtanen Tampere University of Technology, Pori
Reply by Oli Filth August 28, 20062006-08-28
Jani Huhtanen said the following on 28/08/2006 07:27:
> Oli Filth wrote: > >> Oli Filth said the following on 27/08/2006 21:22: >>> Jani Huhtanen said the following on 27/08/2006 19:20: >>>> Let there be a real function phi(t), such that >>>> >>>> { 0, n =/= 0 >>>> <phi(t), phi(t-n)> ={ (1)* >>>> { 1, n = 0 >>>> >>>> where n \in Z and let there be real function f(t) which is known to be >>>> constructed as >>>> >>>> f(t) = SUM_n{ x[n]*phi(t-n) }. (2) >>>> >>>> Coefficients x[n] can be obviously be recovered as >>>> >>>> x[n] = <f(t), phi(t-n)>, for n \in Z (3) >>>> >>>> (proof follows from direct substitution of f(t) by sum in (2)). >>>> >>>> At first I naively thought that any phi(t) satisfying (1) could be >>>> used for >>>> sampling functions of the form (2). And strictly speaking this is true. >>>> However, Robert Bristow-Johnson pointed out that (3) requires _exact_ >>>> samplingpoint synchronization. That is, generally one cannot just sample >>>> >>>> y[n] = <f(t-t0), phi(t-n)>, for n \in Z and t0 \in R. (4) >>>> >>>> and assume that >>>> >>>> f(t-t0) = SUM_n{ y[n]*phi(t-n) }. (5) >>>> >>>> However, for some phi(t) (5) does indeed hold. For example (and this >>>> is the >>>> only example I know), if phi(t) = sinc(t) the equation (5) holds if >>>> f(t) is >>>> constructed as in (2). In this case, the set of functions >>>> representable by >>>> (2) is the set of bandlimited functions. >>>> >>>> For (5) to hold phi(t) has to have following additional property: >>>> >>>> phi(t-t0) = SUM_n{ b_t0[n]*phi(t-n) }, for all t0 (6) >>>> >>>> or >>>> phi(w)*exp(-j*w*t0) = phi(w) * SUM_n{ b_t0[n]*exp(-j*w*n) } (7). >>>> >>>> >>>> That is, phi(t-t0) has to be representable as a linear combination of >>>> sifted >>>> versions of phi(t). For phi(t) = sinc(t) (6) is satisfied. In this case, >>>> b_t0[n] corresponds to coefficients of ideal fractional delay filter >>>> with delay t0. >>>> >>>> Now finally, my question: Is sinc the only function that satisfies >>>> both (1) >>>> and (6) (or (7))? >>> >>> My hunch would be yes - here's my reasoning: >>> >>> Any function that satisfies (1) can be expressed as: >>> >>> phi(t) = h(t).sinc(t) (8) >>> >>> where h(t) is some "window" function. >>> >>> Time-shifting (8) gives: >>> >>> phi(t-t0) = h(t-t0).sinc(t-t0) (9) >>> >>> As you said, we may break sinc(t-t0) down into a weighted sum of sincs, >>> thus: >>> >>> phi(t-t0) = SUM_n{ a[n] h(t-t0).sinc(t-n) } (10) >>> >>> However, if we substitute (8) into (6), it shows that the form we >>> require is: >>> >>> phi(t-t0) = SUM_n{ b[n] h(t-n).sinc(t-n) } (11) >>> >>> Clearly, the only way that (10) and (11) can be made equivalent is for >>> h(t-n) = h(t-t0) for all n in Z and t0 in R. >> BLEEP! Brain-fart! I am wrong. >> >> Writing (10) and (11) again: >> >> phi(t-t0) = SUM_n{ a_t0[n] h(t-t0).sinc(t-n) } >> phi(t-t0) = SUM_n{ b_t0[n] h(t-n).sinc(t-n) } >> >> We have: >> >> a_t0[n] h(t-t0) = b_t0[n] h(t-n) >> >> for all n in Z and t0 in R. Therefore: >> >> b_t0[n] = a_t0[n] h(t-t0) / h(t-n) >> >> Therefore, *any* function that satisfies (1) will also satisfy (6), >> provided h(t-n) =/= 0. >> > > I'm afraid you have made a mistake somewhere (I'll look into it after I'm > back from work).
Ah, that is because I'm an idiot. I go back to my original assertion, that sinc is the only solution. I forgot that t is not a constant in the equation: a_t0[n] h(t-t0) = b_t0[n] h(t-n) For any given {t0,n} in {R,Z}, this must hold at *all* values of t. It is apparent that this can only hold where: h(t-t0) = C h(t-n) for all t in R, where C = (b_t0[n]/a_t0[n]) is some constant. Clearly, this can only hold when C = 1 and h(t) = K. -- Oli
Reply by Jani Huhtanen August 28, 20062006-08-28
Andor wrote:

> > Jani Huhtanen wrote: > > ... >> Now finally, my question: Is sinc the only function that satisfies both >> (1) and (6) (or (7))? Any good pointers for more information about the >> subject, any corrections, comments? > > Jani, if you don't already have this article, it is a must read: > > Unser, M: "Sampling - 50 Years after Shannon" > Proc. of the IEEE, Vol. 88, No. 4, April 2000. > > Available at > bigwww.epfl.ch/publications/unser0001.pdf
I quickly skimmed it through at work. Mostly I concentrated on chapter III Sampling in Shift-Invariant Spaces. Still I did not find answer to my question or I perhaps there was answer but I failed to understand it. But still, very interesting article indeed. It just seems natural that if function f(t) can be perfectly reconstructed from its samples, then function f(t-t0) for t0 \in R can also be perfectly reconstructed. In some applications of wavelet analysis, the approximation error is a measure of detail or complexity. It seems foolish to claim that function f(t-t0) is more complex or has more detail than f(t). In this respect, the quite intuitive framework of wavelet multiresolution analysis seems to "fail"... -- Jani Huhtanen Tampere University of Technology, Pori