Ping John Larkin

I remember a while back you were working on a machine that had some wave files stored in non-volatile storage of some kind, and there was hardware that was used to read out these waves at varying frequency.

I'm trying to remember how in hardware you kept the output sample rate fixed, while changing the frequency of the waveforms being spit out. Doesn't this require interpolation of some type?

Reply to
bitrex
Loading thread data ...

You probably refer to the Wayback Machine, this one:

formatting link

It's pretty cool; that Signals and Systems stuff really works, and does things that don't seem possible.

You can download the manual, which has some waveforms and stuff, and some discussion of the filtering issues. It can time or phase shift a waveform to a fraction of a sample time, with jitter well below one sample period. The final DAC is clocked at 2 MHz, but it can phase shift the output to nanosecond resolution.

Basically, it's pure Shannon stuff: recover saved samples and run them through an ideal lowpass filter. Since our data rate changes, our filter bandwidth changes to track the sample recovery rate.

A few of us and a customer guy brainstormed the architecture. I wanted a linear or, on reconsideration, a spline interpolation capability but Rob, my s+s and FPGA guy, ignored me and did it right.

Simple linear interpolation, or dumb spline interpolation, is not the ideal lowpass filter that Shannon wants, so you get spurious AM when reconstructing the waveform. That's in the manual.

This was my first suggestion, linear interpolation,

formatting link

which has the obvious AM problem...

formatting link

so the next step would be a spline fit, using three or more samples, but Rob did a lot better somehow...

formatting link

This is mind boggling, a FIR filter whose coefficients change at a rate that is a multiple of the data rate. There's actually a name for that.

I can admire this without the burden of actually having to understand it, or, worse, having to design it myself.

Reply to
John Larkin

Thanks. The book I was reading today says that the "usual" way these days to do "pitch shifting" resampling of a stored waveform is to take a stored bandlimited impulse and to generate each output sample, advance it by alpha*T, where alpha is the fraction of the original frequency, and T is the sample period, and do a multiply-accumulate (convolve the two waveforms). It sounds pretty computationally intensive though and I kind of wanted to try something different.

Reply to
bitrex

This paper seems good, too:

formatting link

Reply to
bitrex

Pitch shifting without time shifting is a separate problem. It involves copying blocks of samples, changing their sample rates, and carefully blending them back together. There was a tape recorder with rotating heads that did that, before DSP.

Reply to
John Larkin

Oh, what I'm describing definitely causes time shifting too, it's just so that you're keeping the sample rate constant when you play back. What I'm talking about is resampling such that say you have a signal of frequency f_o and duration t_o sampled at sampling rate f_s1. The sampling time is 1/f_s1 = T, and you resample it at 1/f_s2 = T/2, and play it all back at the same f_s1. Then the new frequency is f_o/2 and the new duration is 2*t_o.

Pitch shifting without time shifting needs stuff like wavelet transforms and phase vocoding and all that jazz.

Reply to
bitrex

Oh, that's audio. Audio is mostly nonsense.

Reply to
John Larkin

Well, even people who like audio don't like tons of nasty aliasing when they transpose their sampled waveforms, I guess...

Apparently there's a vintage hardware "sampler" that was produced around

1989 or so called the Akai S1000 that's still popular among people who refuse to use computers to make music, because the manufacturer used multi-point sync interpolation rather than linear interpolation in the hardware.
Reply to
bitrex

In this context, that'd be sinc interpolation. Not 'sync'. The cardinal sine function, sinc, or sin(x)/x pops up a lot in signal processing math. It's a smooth function in the time domain and a brick-wall cut-off in the frequency domain.

But you knew that, of course.

Jeroen Belleman

Reply to
Jeroen Belleman

Autocorrect strikes again :-(

Reply to
bitrex

On Fri, 25 Sep 2015 07:36:00 -0400, bitrex Gave us:

Spectrum analyzers typically have sinc in their library of methodologies of examining a signal.

Reply to
DecadentLinuxUserNumeroUno

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.