DSPRelated.com
Forums

Interpolation and decimation

Started by seb January 13, 2004
seb wrote:
> > Hello, > > i am looking for decimation and interpolation technique in order to, > given a sampling rate fs, obtain a new sampling rate like (a/b)*fs. > > A way to to do is to decimate and then use linear interpolation... > > Is there some other ways (documents) to do this ? > If so, have you got some book or url ?
Try Secret Rabbit Code: http://www.mega-nerd.com/SRC/ Erik -- +-----------------------------------------------------------+ Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid) +-----------------------------------------------------------+ With 22,100,000 legitimate businesses in the US alone, allowing each to send only one UCE per *year* gets every mailbox 60,547 emails per day. There will either be email without UCE or there will be no email.
On Sun, 18 Jan 2004, Fred Marshall wrote:

> > > > > http://groups.google.com/groups?selm=B8D78660.3B54%25robert%40wavemechanics. > > com > > > > r b-j > > link didn't work..... > > Fred
It works here, with the "com" included at the end. -olli
Fred Marshall wrote:

>> > http://groups.google.com/groups?selm=B8D78660.3B54%25robert%40wavemechanics. > >>com >> >>r b-j > > > link didn't work..... > > Fred
The "com" wrapped. Did you fix that? Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
In article 400aac76$0$6089$61fed72c@news.rcn.com, Jerry Avins at
jya@ieee.org wrote on 01/18/2004 10:55:

> Fred Marshall wrote: > >>> >> http://groups.google.com/groups?selm=B8D78660.3B54%25robert%40wavemechanics. >> >>> com >>> >>> r b-j >> >> >> link didn't work..... >> >> Fred > > The "com" wrapped. Did you fix that?
ya know, the stupid-ass thing is that i can't turn it (the $#@&*#@###!! word wrapping) off with Outlook Express or adjust the line length. on top of that, it shows the entire wrapped link underlined and *does* work for me. i'll just have to remember to remind everyone to unwrap it. stupid-ass micro$hit software. r b-j
"robert bristow-johnson" <rbj@surfglobal.net> wrote in message
news:BC304390.7D23%rbj@surfglobal.net...
> In article 400aac76$0$6089$61fed72c@news.rcn.com, Jerry Avins at > jya@ieee.org wrote on 01/18/2004 10:55: > > > Fred Marshall wrote: > > > >>> > >>
http://groups.google.com/groups?selm=B8D78660.3B54%25robert%40wavemechanics.
> >> > >>> com > >>> > >>> r b-j > >> > >> > >> link didn't work..... > >> > >> Fred > > > > The "com" wrapped. Did you fix that? >
Arrrgh. Didn't even see it. Fixed. Done. Thanks. Fred
robert bristow-johnson <rbj@surfglobal.net> writes:

> In article 400aac76$0$6089$61fed72c@news.rcn.com, Jerry Avins at > jya@ieee.org wrote on 01/18/2004 10:55: > >> Fred Marshall wrote: >> >>>> >>> http://groups.google.com/groups?selm=B8D78660.3B54%25robert%40wavemechanics. >>> >>>> com >>>> >>>> r b-j >>> >>> >>> link didn't work..... >>> >>> Fred >> >> The "com" wrapped. Did you fix that? > > ya know, the stupid-ass thing is that i can't turn it (the $#@&*#@###!! word > wrapping) off with Outlook Express or adjust the line length. on top of > that, it shows the entire wrapped link underlined and *does* work for me. > i'll just have to remember to remind everyone to unwrap it. stupid-ass > micro$hit software.
XEmacs, man, XEmacs. With gnus, of course. (Yes, even for windoze: www.xemacs.org, get the native win32 version. Then allow about a year for learning about new key sequences, Lisp, and key maps...) -- % Randy Yates % "Though you ride on the wheels of tomorrow, %% Fuquay-Varina, NC % you still wander the fields of your %%% 919-577-9882 % sorrow." %%%% <yates@ieee.org> % '21st Century Man', *Time*, ELO
robert bristow-johnson wrote:

> In article 400aac76$0$6089$61fed72c@news.rcn.com, Jerry Avins at > jya@ieee.org wrote on 01/18/2004 10:55: > > >>Fred Marshall wrote: >> >> >>>http://groups.google.com/groups?selm=B8D78660.3B54%25robert%40wavemechanics. >>> >>> >>>>com >>>> >>>>r b-j >>> >>> >>>link didn't work..... >>> >>>Fred >> >>The "com" wrapped. Did you fix that? > > > ya know, the stupid-ass thing is that i can't turn it (the $#@&*#@###!! word > wrapping) off with Outlook Express or adjust the line length. on top of > that, it shows the entire wrapped link underlined and *does* work for me. > i'll just have to remember to remind everyone to unwrap it. stupid-ass > micro$hit software. > > r b-j
Use Netscape. Other stupid bugs, but not that one and none with no workarounds. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
In article <bu9vtl$fmn03$1@ID-210375.news.uni-berlin.de>,
Jon Harris <goldentully@hotmail.com> wrote:
>"Fred Marshall" <fmarshallx@remove_the_x.acm.org> wrote in message >news:UfudnYDZHMwl5pXdRVn-hA@centurytel.net... >... But it would seem that any *time-invariant linear* >interpolation could be pre-computed, "table-ized", and implemented with a >poly-phase FIR. The reasons it is not commonly implemented this way are >probably practical ones rather than due to any limitation in the theory. > >> Polyphase is just an implementation detail for a known filter - so I >>choose to leave that out as much as possible.
I sense recursion here. The problem is not having continuous data. So we use equally spaced sampled data, and we select, iterpolate or multi-rate FIR filter to get (estimated) values in between the ones sampled. But since no CPU has a one-cycle sinc() generating instruction (etc.), we don't have a continuous FIR filter coefficients. So we use eqully spaced "phases" of the FIR coefficients, and we select, interpolate, or... Or maybe use the interpolation FIR filter on it's own coefficients! Hmmm... I wonder how many levels of this it takes before diminishing returns sets in? Everybody seems to assume 1.5 levels in enough: 1 or 2 taps (select or linear interpolation inside the phase table for the FIR coefficients) plus N taps (for the data). Given a fixed number of MACs per sample and a fixed number of table entries (to fit in x% of the dcache for instance), it looks like there are several possiblities. 0 MACs for the coeffs and N MACs for the data. N/2 MACs for 2 taps of coeff generation (and with a table now with twice as many phases in the same number of bytes) and N/2 taps for the data. Or maybe even more MACs for coefficient generation and an even shorter FIR filter. An interesting optimization and error bounding problem. IMHO. YMMV. -- Ron Nicholson rhn AT nicholson DOT com http://www.nicholson.com/rhn/ #include <canonical.disclaimer> // only my own opinions, etc.
robert bristow-johnson <rbj@surfglobal.net> wrote in message
news:BC304390.7D23%rbj@surfglobal.net...
> In article 400aac76$0$6089$61fed72c@news.rcn.com, Jerry Avins at > jya@ieee.org wrote on 01/18/2004 10:55: > > > Fred Marshall wrote: > > > >>> >
http://groups.google.com/groups?selm=B8D78660.3B54%25robert%40wavemechanics. com
> >>> > >>> r b-j > >> > >> link didn't work..... > >> > >> Fred > > > > The "com" wrapped. Did you fix that? > > ya know, the stupid-ass thing is that i can't turn it (the $#@&*#@###!!
word
> wrapping) off with Outlook Express or adjust the line length. on top of > that, it shows the entire wrapped link underlined and *does* work for me.
I don't know what version of OE you are using, but in mine (Windows, V5.0, circa 1999), you can go to Tools->Options, Send tab, click Plain Text Settings and adjust the wrap link. Another good option is http://tinyurl.com/.
Ronald H. Nicholson Jr. <rhn@mauve.rahul.net> wrote in message
news:bufdfe$f3d$1@blue.rahul.net...
> In article <bu9vtl$fmn03$1@ID-210375.news.uni-berlin.de>, > Jon Harris <goldentully@hotmail.com> wrote: > >"Fred Marshall" <fmarshallx@remove_the_x.acm.org> wrote in message > >news:UfudnYDZHMwl5pXdRVn-hA@centurytel.net... > >... But it would seem that any *time-invariant linear* > >interpolation could be pre-computed, "table-ized", and implemented with a > >poly-phase FIR. The reasons it is not commonly implemented this way are > >probably practical ones rather than due to any limitation in the theory. > > > >> Polyphase is just an implementation detail for a known filter - so I > >>choose to leave that out as much as possible. > > I sense recursion here. > > The problem is not having continuous data. So we use equally spaced > sampled data, and we select, iterpolate or multi-rate FIR filter to > get (estimated) values in between the ones sampled. > > But since no CPU has a one-cycle sinc() generating instruction (etc.), we > don't have a continuous FIR filter coefficients. So we use eqully spaced > "phases" of the FIR coefficients, and we select, interpolate, or... > > Or maybe use the interpolation FIR filter on it's own coefficients!
This is usually overkill. Unless your available table memory is so small that you can only store a handfull of phases, the filter coefficients are essentially highly oversampled data (or low pass data as r b-j called it). Hence you can get away a pretty simple interpolation scheme since there is very little high-frequency content.
> Hmmm... I wonder how many levels of this it takes before diminishing > returns sets in? Everybody seems to assume 1.5 levels in enough: > 1 or 2 taps (select or linear interpolation inside the phase table > for the FIR coefficients) plus N taps (for the data).
This is usually adequate for the reasons stated above (and see below too).
> Given a fixed number of MACs per sample and a fixed number of table > entries (to fit in x% of the dcache for instance), it looks like there > are several possiblities. 0 MACs for the coeffs and N MACs for the data. > N/2 MACs for 2 taps of coeff generation (and with a table now with twice > as many phases in the same number of bytes) and N/2 taps for the data. > Or maybe even more MACs for coefficient generation and an even shorter > FIR filter. An interesting optimization and error bounding problem.
I think it would usually be pretty easy to find the optimial answer. For example, if you decide to do linear coeficient interpolation, you immediately have to use a shorter filter which means you can store more phases in the same memory, which means there is a less critical need for the linear coef interpolation. You can see why higher order interpolation of the coefs quickly becomes a losing battle. The only excpeption might be if memory was *extremely* tight and you had tons of MACs available.
> IMHO. YMMV. > -- > Ron Nicholson rhn AT nicholson DOT com http://www.nicholson.com/rhn/ > #include <canonical.disclaimer> // only my own opinions, etc.