Started by August 27, 2006
Hi,

I posted about "wavelet" sampling here http://tinyurl.com/efnh6 in a
thread: "Nyquist didn't say that". Nothing of what I said does not have to
be tied to wavelet terminology, thus I try not to use it in the following
(to keep it general and perhaps more easily accessible). This is bit
lengthy so if you're in a hurry then skip to the end of this post.

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)

* Here <a(t), b(t)> means integrate from -inf to inf {a(t)*b(t)*dt}.

- Jani

--
Jani Huhtanen
Tampere University of Technology, Pori

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) = h(t-t0) SUM_n{ a[n] sinc(t-n) }

= 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.  The only way that this can
be achieved is h(t) = K (some constant), which means that:

phi(t) = K.sinc(t)

--
Oli

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.

--
Oli

Jani Huhtanen wrote:

...
> Now finally, my question: Is sinc the only function that satisfies both (1)

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


Andor wrote:

>
> Jani Huhtanen wrote:
>
> ...
>> Now finally, my question: Is sinc the only function that satisfies both
>
>
> 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

No I didn't have. It seems to be well written (i.e., not overly abstract)
and highly interesting. I'll have to read this ASAP. Thanks for this!

--
Jani Huhtanen
Tampere University of Technology, Pori

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). Any function satisfying (1) includes

{ 1, t \in [0,1]
phi(t) = {
{ 0, otherwise

This is clear because phi(t)*phi(t-n)=0, when n =/= 0 and is 1 otherwise.
However, this phi(t) clearly does not satisfy (6). Let t0=1/2 and find
coefficients b_1/2 from equation (6):

SUM_n{ b_1/2[n]*phi(t-n) } = phi(t-1/2) = 1, t \in [1/2, 3/2]

Clearly coefficients are b_1/2 = 1, b_1/2 = 1 in this interval. Now
outside [1/2, 3/2] it is impossible to find the other coefficients so that
the equation (6) is satisfied. Consider interval [0, 1/2]. With current
coefficients, sum equates to 1 when t \in [0, 1/2]. The only function,
phi(t-n), that has support in that interval is that one corresponding to
coefficient b_1/2 and that coefficient has already been fully
determined. Thus (6) does not hold for the chosen phi(t). QED.

--
Jani Huhtanen
Tampere University of Technology, Pori

Andor wrote:

>
> Jani Huhtanen wrote:
>
> ...
>> Now finally, my question: Is sinc the only function that satisfies both
>
>
> 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

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

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

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