> "Ron N." wrote in message
> > robert bristow-johnson wrote:
> > > in article 44692a1e$1@news.starhub.net.sg, Mr. Ken at Mr. Ken@asdf wrote
> on
> > > 05/15/2006 21:27:
> > >
> > > > I am using an 80 tap matched filter to interpolate a signal by 10
> times,
> > > > which splits the coefficients into 10*8taps. After that, I will
> decimate the
> > > > result by 10 using same filter. Do I get back original data (ignore
> the
> > > > delay)?
> > >
> > > Yes, IF and only if the interpolation impulse response is or can be
> > > represented as a windowed sinc() function where on the zero fractional
> delay
> > > (out of 10 different fractional delays) the coefficients are a single
> "1" in
> > > the middle surrounded by zeros.
> >
> > Since the signal ends up getting filtered twice, wouldn't
> > a FIR of a windowed sinc() with a half-tap delay also
> > produce the original data ignoring delay. In fact, any
> > multiple a half-tap delay in the filter should also work,
> > maybe until the filter kernel gets too asymmetric relative
> > to the precision.
>
> Why do you say it gets filtered twice? There is only 1 filter between the
> interpolation and decimation in a polyphase implementation.
Actually, Ron is right. One can view the interpolation / decimation
process as an inverse filtering problem. This makes the class of
possible interpolation filters even larger than what I described,
because all you need is that the interpolation filter has one
minium-phase sub-phase. For the reconstruction, you pick that phase
from the interpolated data stream and pass it through the inverse
filter (which is just 1 / [minium-phase filter] ).
Reply by Bhaskar Thiagarajan●May 16, 20062006-05-16
"Ron N." <rhnlogic@yahoo.com> wrote in message
news:1147821609.395788.240620@j55g2000cwa.googlegroups.com...
> robert bristow-johnson wrote:
> > in article 44692a1e$1@news.starhub.net.sg, Mr. Ken at Mr. Ken@asdf wrote
on
> > 05/15/2006 21:27:
> >
> > > I am using an 80 tap matched filter to interpolate a signal by 10
times,
> > > which splits the coefficients into 10*8taps. After that, I will
decimate the
> > > result by 10 using same filter. Do I get back original data (ignore
the
> > > delay)?
> >
> > Yes, IF and only if the interpolation impulse response is or can be
> > represented as a windowed sinc() function where on the zero fractional
delay
> > (out of 10 different fractional delays) the coefficients are a single
"1" in
> > the middle surrounded by zeros.
>
> Since the signal ends up getting filtered twice, wouldn't
> a FIR of a windowed sinc() with a half-tap delay also
> produce the original data ignoring delay. In fact, any
> multiple a half-tap delay in the filter should also work,
> maybe until the filter kernel gets too asymmetric relative
> to the precision.
Why do you say it gets filtered twice? There is only 1 filter between the
interpolation and decimation in a polyphase implementation.
Cheers
Bhaskar
> in article 44692a1e$1@news.starhub.net.sg, Mr. Ken at Mr. Ken@asdf wrote on
> 05/15/2006 21:27:
>
> > I am using an 80 tap matched filter to interpolate a signal by 10 times,
> > which splits the coefficients into 10*8taps. After that, I will decimate the
> > result by 10 using same filter. Do I get back original data (ignore the
> > delay)?
>
> Yes, IF and only if the interpolation impulse response is or can be
> represented as a windowed sinc() function where on the zero fractional delay
> (out of 10 different fractional delays) the coefficients are a single "1" in
> the middle surrounded by zeros.
Since the signal ends up getting filtered twice, wouldn't
a FIR of a windowed sinc() with a half-tap delay also
produce the original data ignoring delay. In fact, any
multiple a half-tap delay in the filter should also work,
maybe until the filter kernel gets too asymmetric relative
to the precision.
IMHO. YMMV.
--
rhn A.T nicholson d.0.t C-o-M
Reply by robert bristow-johnson●May 16, 20062006-05-16
Andor wrote:
>
> I think that criterion you describe is sufficient ("if") but not
> necessary ("...and only if"). Essentially, you can take any FIR filter
> design routine that minimizes some error criterion under constraints
> (the constraint being that there exists at least one sub-phase
> consisting of a "1" surrounded - not necessarily symmetrically - by
> zeroes).
>
> For example, specify the number of taps = 10*N and phase zero as [1 0 0
> ... 0 ]. Now use the remaining 9 N degrees of freedom to minimize the
> phase (assuming a magnitude constraint), using the differential
> evolution algorithm.
you're right. the OP *did* say, after all, "ignore the delay".
> This would be constrained perfect reconstruction
> minimum-phase interpolation (I like inventing names :-).
dunno about that. i get 3 hits with Google. it's a term that makes
sense to me.
r b-j
Reply by Andor●May 16, 20062006-05-16
robert bristow-johnson wrote:
> in article 44692a1e$1@news.starhub.net.sg, Mr. Ken at Mr. Ken@asdf wrote on
> 05/15/2006 21:27:
>
> > I am using an 80 tap matched filter to interpolate a signal by 10 times,
> > which splits the coefficients into 10*8taps. After that, I will decimate the
> > result by 10 using same filter. Do I get back original data (ignore the
> > delay)?
>
> Yes, IF and only if the interpolation impulse response is or can be
> represented as a windowed sinc() function where on the zero fractional delay
> (out of 10 different fractional delays) the coefficients are a single "1" in
> the middle surrounded by zeros.
I think that criterion you describe is sufficient ("if") but not
necessary ("...and only if"). Essentially, you can take any FIR filter
design routine that minimizes some error criterion under constraints
(the constraint being that there exists at least one sub-phase
consisting of a "1" surrounded - not necessarily symmetrically - by
zeroes).
For example, specify the number of taps = 10*N and phase zero as [1 0 0
... 0 ]. Now use the remaining 9 N degrees of freedom to minimize the
phase (assuming a magnitude constraint), using the differential
evolution algorithm. This would be constrained perfect reconstruction
minimum-phase interpolation (I like inventing names :-).
Regards,
Andor
Reply by robert bristow-johnson●May 16, 20062006-05-16
in article 44692a1e$1@news.starhub.net.sg, Mr. Ken at Mr. Ken@asdf wrote on
05/15/2006 21:27:
> I am using an 80 tap matched filter to interpolate a signal by 10 times,
> which splits the coefficients into 10*8taps. After that, I will decimate the
> result by 10 using same filter. Do I get back original data (ignore the
> delay)?
Yes, IF and only if the interpolation impulse response is or can be
represented as a windowed sinc() function where on the zero fractional delay
(out of 10 different fractional delays) the coefficients are a single "1" in
the middle surrounded by zeros. if it were polynomial interpolation like
Lagrange or Hermite, that could be represented as a windowed sinc()
function. but B-spline interpolation cannot and your decimated signal will
sound or appear like the original but low-pass filtered.
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."
Reply by Mr. Ken●May 15, 20062006-05-15
I am using an 80 tap matched filter to interpolate a signal by 10 times,
which splits the coefficients into 10*8taps. After that, I will decimate the
result by 10 using same filter. Do I get back original data (ignore the
delay)?