Optimal interpolation [message #31954] |
Thu, 29 August 2002 04:49 |
Randall Skelton
Messages: 169 Registered: October 2000
|
Senior Member |
|
|
It is funny that 'optimal interpolation' (aka zero filling) has come up in
this group...
My problem is basically is how to rectify the fact that noise becomes
correlated when you interpolate. If I have a measured signal (with
uncorrelated white noise) of i points, and interpolate to get 2*i points,
then there is a reduction in the apparent noise on the signal. Of course,
in the original signal I have a diagonal covariance while in the second
the noise is correlated which accounts for the apparent decrease.
In the case of an optimal interpolation scheme, no net information (in the
Shannon or Fischer sense) is added by interpolating and the process is
reversible. I therefore (perhaps naively) assume that the process of
mapping the covariance matrices must also be reversible.
Thinking in the time domain, I can represent zero padding as a matrix
multiplication
y = [ I ] x <-> x = [ I 0 ] y
[ 0 ]
where y is the zero-padded signal vector of length n, x is the signal
without padding of length l, and I is an identity matrix of size l by l
and 0 is a matrix of zeros making the matrix [ I 0 ] l by n in size.
Accordingly, the two process are related by the transpose of the
zero padding matrix operator.
I am relatively happy with the fact that zero padding in the time domain
corresponds to optimal interpolation in the spectral domain. If I let s
represent my spectrum on the interpolated grid (length n) and z be the
course spectrum (length l) then
s = W z <-> z = (W*) s
where the interpolation matrix W is n by l and (W*) is a l by n pseudo
inverse of W. So, (W*) W = I and the full spectrum constructed from z by
interpolation will give the same z back if the interpolation is undone.
However, the product W (W*) may not give I (n by n) as W is of rank l < n
(i.e. it is impossible to take a high frequency spectrum, decrease the
sampling, and then transform again to restore the high resolution). In
this case, I am only interested in accounting for the full covariance of
the former case (i.e. I have a spectrum z, I interpolate by zero-padding
to get s, and I want to know the covariance matrix for the interpolated
result). In this case, the full covariance of the interpolated result
(Ss) should simply be:
Ss = W Sz W'
where Sz is the covariance of the course spectrum and ' denotes the
transpose. However, Sz is only of rank l and is therefore singular?
Clearly I am missing something here... Basically, I zero-pad a time-series
measurement (an interferogram) which I assume to have a diagonal
(uncorrelated) covariance prior to zero-padding. I want to know what
the full covariance after zero padding. Also, what is the best way of
constructing W and W*? I generally always interpolate in the time
(Fourier) domain... is there a way of mapping the covariance in spectral
space to the time (Fourier) domain?
In re-reading this I am not entirely sure what I have written is clear,
but I cannot think of another way to explain it.
Many thanks for the input,
Randall
On Wed, 28 Aug 2002, Robert Stockwell wrote:
> Paul van Delst wrote:
>> GB Karas wrote:
>>
>>> sinc interpolation relies on the following interpolating kernel:
>>>
>>> sinc(x)=sin(x)/x
>>
>>
>> Why don't you use FFT's to do the interpolation then? You know, FFT the curve in question, zerofill
>> (or truncate) the result and FFT back?
>
>
> If you check out a digital signal processing book on upsampling
> or downsampling (or perhaps multirate sampling) you'll see that it
> can be the way to go in some cases.
> (oppenheimer and schafer frinstance)
>
> Cheers,
> bob
>
>
|
|
|