DSPRelated.com
Forums

FIR Interpolation question

Started by Roger Waters February 2, 2004
POPP = point of personal privilege, from Roberts Rules of Order

Clay S. Turner wrote:

> "Jim Gort" <jgort@comcast.net> wrote in message > news:KcVUb.108474$U%5.556842@attbi_s03... > >>Fred: >> >>I wish Roger Waters could stop being bitter about the Floyd problem > > > cute! very cute! I was wondering if Jerry would make this connection. > > Clay > > > >>and jump >>in, but again my understanding is different. I will try to resolve my take >>on it with yours (and others) below:
Being a nerd (that's really knurd*, and I'm proud of it) and a social misfit (which is too bad), it went right by me. Roger Walters started this thread and is probably hiding from all the barrages it engendered, but who is Floyd? And what's the problem? Jerry _________________________ *"Drunk", spelled backwards. Those who, by studying instead of partying, upset the "curve" and reduced the party-goer's grades. Harvard, 1950s -- 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;
Hello Jerry,

I figured Jim was making a reference to the artist "Roger Waters" of Pink
Floyd fame who dissolved the band a while back. More on him below:

http://pinkfloydhyperbase.dk/who/w.htm


-- 
Clay S. Turner, V.P.
Wireless Systems Engineering, Inc.
Satellite Beach, Florida 32937
(321) 777-7889
www.wse.biz
csturner@wse.biz



"Jerry Avins" <jya@ieee.org> wrote in message
news:4024fa75$0$20054$61fed72c@news.rcn.com...
> POPP = point of personal privilege, from Roberts Rules of Order > > Clay S. Turner wrote: > > > "Jim Gort" <jgort@comcast.net> wrote in message > > news:KcVUb.108474$U%5.556842@attbi_s03... > > > >>Fred: > >> > >>I wish Roger Waters could stop being bitter about the Floyd problem > > > > > > cute! very cute! I was wondering if Jerry would make this connection. > > > > Clay > > > > > > > >>and jump > >>in, but again my understanding is different. I will try to resolve my
take
> >>on it with yours (and others) below: > > Being a nerd (that's really knurd*, and I'm proud of it) and a social > misfit (which is too bad), it went right by me. Roger Walters started > this thread and is probably hiding from all the barrages it engendered, > but who is Floyd? And what's the problem? > > Jerry > _________________________ > *"Drunk", spelled backwards. Those who, by studying instead of partying, > upset the "curve" and reduced the party-goer's grades. Harvard, 1950s > -- > 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; >
Clay:

Yes and, sadly, though he was at very least a founding member and co-leader
of the band, and at best (this becomes a matter of opinion) *the* creative
force of the band, the balance of the band has gone on to use the name "Pink
Floyd" through 2 (I think) albums, and many many lucrative concerts. Roger,
on the other hand, has had an immensely less luctrative solo career. The
critical merits of Roger Water's solo work verse the work of the remainder
of "Pink Floyd" are arguable--most would agree, however, that neither part
was as good as the whole. However, the source of the bitterness is that,
according to Roger Waters, the immense difference in monetary success was
because he forsook the name "Pink Floyd", and the rest of the band did not.
I believe he has made several unsuccesful attempts (lawsuits, etc.) to
achieve monetary equality with the rest of the band since breakup, which
have occupied his time (apparently, this has recently taken away from his
time allocated to follow up on his comp.dsp post, putting me in a position
where I am arguing about his intent/wording).

I used to follow this fairly closely in the 90's, and I'm not sure how the
situation has changed in the last few years.

Jim

"Clay S. Turner" <CSTurner@WSE.Biz> wrote in message
news:s9bVb.14152$Rl4.5084@bignews5.bellsouth.net...
> > Hello Jerry, > > I figured Jim was making a reference to the artist "Roger Waters" of Pink > Floyd fame who dissolved the band a while back. More on him below: > > http://pinkfloydhyperbase.dk/who/w.htm > > > -- > Clay S. Turner, V.P. > Wireless Systems Engineering, Inc. > Satellite Beach, Florida 32937 > (321) 777-7889 > www.wse.biz > csturner@wse.biz > > > > "Jerry Avins" <jya@ieee.org> wrote in message > news:4024fa75$0$20054$61fed72c@news.rcn.com... > > POPP = point of personal privilege, from Roberts Rules of Order > > > > Clay S. Turner wrote: > > > > > "Jim Gort" <jgort@comcast.net> wrote in message > > > news:KcVUb.108474$U%5.556842@attbi_s03... > > > > > >>Fred: > > >> > > >>I wish Roger Waters could stop being bitter about the Floyd problem > > > > > > > > > cute! very cute! I was wondering if Jerry would make this connection. > > > > > > Clay > > > > > > > > > > > >>and jump > > >>in, but again my understanding is different. I will try to resolve my > take > > >>on it with yours (and others) below: > > > > Being a nerd (that's really knurd*, and I'm proud of it) and a social > > misfit (which is too bad), it went right by me. Roger Walters started > > this thread and is probably hiding from all the barrages it engendered, > > but who is Floyd? And what's the problem? > > > > Jerry > > _________________________ > > *"Drunk", spelled backwards. Those who, by studying instead of partying, > > upset the "curve" and reduced the party-goer's grades. Harvard, 1950s > > -- > > 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; > > > > >
Jim Gort wrote:
> Clay: > > Yes and, sadly, though he was at very least a founding member and co-leader > of the band, and at best (this becomes a matter of opinion) *the* creative > force of the band, the balance of the band has gone on to use the name "Pink > Floyd" through 2 (I think) albums, and many many lucrative concerts.
I agree with your assessment regarding Waters' role in Floyd. My understanding is that he "wore out his welcome - with random precision." I don't think the other members appreciated what his obsessed-with-perfection mentality actually contributed, but it is obviously lacking in the post-Waters releases. -- Jim Thomas Principal Applications Engineer Bittware, Inc jthomas@bittware.com http://www.bittware.com (703) 779-7770 The secret to enjoying your job is to have a hobby that's even worse - Calvin's Dad
Hello All!

I'm sorry for the delay in replying.  I was away recording some bass
parts for the new album coming out around August and was thus unable
to check the replies on comp.dsp.


Thanks you all very much for your replies.  I've been doing some
reading, and your inputs have been very valuable.  I've just started
on DSP and, as I'm sure you all would have been at some time, am
rather confused about some of the concepts.

ANYWAY, I've been able to reach the following stage in tackling my
probem:

I have the coefficients for a 4th order, 256 tap Butterworth filter
with a cutoff frequency of 24KHz.

My input array is 256 samples long, and I want to perform a 4:1
interpolation, resulting in a 1024 sample interpolated array.

How do I calculate the interpolated values, i.e in C code how do I
perform the convolution?

Thank you,
Roger

P.S:by the way, my father's name wasn't Fletcher :)
Roger Waters wrote:

> Hello All! > > I'm sorry for the delay in replying. I was away recording some bass > parts for the new album coming out around August and was thus unable > to check the replies on comp.dsp. > > > Thanks you all very much for your replies. I've been doing some > reading, and your inputs have been very valuable. I've just started > on DSP and, as I'm sure you all would have been at some time, am > rather confused about some of the concepts. > > ANYWAY, I've been able to reach the following stage in tackling my > probem: > > I have the coefficients for a 4th order, 256 tap Butterworth filter > with a cutoff frequency of 24KHz. > > My input array is 256 samples long, and I want to perform a 4:1 > interpolation, resulting in a 1024 sample interpolated array. > > How do I calculate the interpolated values, i.e in C code how do I > perform the convolution? > > Thank you, > Roger > > P.S:by the way, my father's name wasn't Fletcher :)
I'm sure that in the end, you want to accomplish something in particular. If you start with that, rather than halfway through a method that may or may not be appropriate, you will probably have a more satisfactory conclusion. 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;
Hello Roger,

I'm still not quite sure of what you are trying to do overall, but if I had
a block of just 256 samples sampled at 48000 samples per second and I wanted
to up the sampling rate by four for just this block, then I'd FFT the data
and then prepend and postpend 384 zeroes to the FFT's output, and then
inverse FFT the whole 1024 values. This works by uping the sample rate by 4
times (hence 256*4=1024) and forcing all of the new frequencies to have zero
content. Since there are 1024-256= 768 new bins, we divide them
symmetrically on both sides of the data - this maintains the realness of the
data.

Now if you are trying to upsample very long strings of data by processing in
data blocks, we need to do more. Because if we take the blocks of data and
string them end to end, we will have discontinuities at each of the
junctions. (187.5 Hz in this case) But fortunately this problem has been
solved and you can look at "overlap and add" and "overlap and save" methods.
Basically the FFT approach does circular convolution and you want linear
convolution. And these methods allow you to make linear convolution from an
inherently circular process.

Another approach to the interpolation is to simply insert three zeroes in
between each of the original data samples and then lowpass filter with a
filter whose cutoff is just below 1/4 of Nyquist which otherwise means set
the cutoff to be just below 1/8 of the sampling rate. Most practical systems
need some degree of oversampling to allow the filter to have a transition
from the pass band to the stop band. Even CDs sampled at 44.1kHz technically
can have frequencies up to 22.05kHz, but many designers will start the
cutoff around 20kHz, allowing for a 2.05kHz transition. As you make the
transition narrower, the impulse response of the filter lengthens.

Since the interpolation involves the filling in of zeroes followed by
lowpass filtering, we can look ahead and see a way around working with all
of the zeroed data. If we use recursive filters there is not much of a short
cut available, but if we use nonrecursive FIR filters, we can subdivide the
filter's impulse response into four subfilters (for your amount of
interpolation), and then for each original data value, we calculate 4 vector
dot products to generate the 4 values that come from the original 1 value.
These dot products are effectively FIR filters except we can use just one
data array along with 4 coef arrays, and the data array pointer only gets
bumped once at the end of the evaluation of the four filters. Here we never
directly worked with all of the zeroes except in concept where looking how
the zero padded data effects a giant transversal filter. So we see that only
1/4 of the coefs matter at any one time, so we divide the one big long
response into four different phased responses. This is a polyphase method.

I hope this clears up the interpolation problem. Earlier you stated
something about autocorrelation and stuff - what are you trying to do?

-- 
Clay S. Turner, V.P.
Wireless Systems Engineering, Inc.
Satellite Beach, Florida 32937
(321) 777-7889
www.wse.biz
csturner@wse.biz



"Roger Waters" <rogerwaters@fastmail.fm> wrote in message
news:6975d4b5.0402091129.6e1a3016@posting.google.com...
> Hello All! > > I'm sorry for the delay in replying. I was away recording some bass > parts for the new album coming out around August and was thus unable > to check the replies on comp.dsp. > > > Thanks you all very much for your replies. I've been doing some > reading, and your inputs have been very valuable. I've just started > on DSP and, as I'm sure you all would have been at some time, am > rather confused about some of the concepts. > > ANYWAY, I've been able to reach the following stage in tackling my > probem: > > I have the coefficients for a 4th order, 256 tap Butterworth filter > with a cutoff frequency of 24KHz. > > My input array is 256 samples long, and I want to perform a 4:1 > interpolation, resulting in a 1024 sample interpolated array. > > How do I calculate the interpolated values, i.e in C code how do I > perform the convolution? > > Thank you, > Roger > > P.S:by the way, my father's name wasn't Fletcher :)