Waveform interpolation

In the application that I'm thinking of, the output will eventually be driving a fairly large piezoelectric or magnetic transducer. I think it's possible that the inertia of the transducer itself in this case may itself act sufficiently as a low-pass filter that the jump points will not be noticeable in the output even with just some kind of first-order interpolation. We'll see.

Reply to
bitrex
Loading thread data ...

Not much. The physical process that the data is sampled from has a pretty strong 1/f characteristic.

But the output is most likely going to be driving some kind of transducer that will have significant inertia, and it's possible that it will act enough as a low-pass filter that I can get away with a minimum of processing.

Reply to
bitrex

Mechanics often act as a low-pass filter (and of course you can use a filter in the analogue electronics) - it could well be good enough for the job.

But using a 32-bit micro could give you more flexibility - small Cortex M devices are often cheaper than most 8-bit microcontrollers these days, and certainly I find they are now usually a better choice. Of course there could be other concerns - package types, familiarity, existing code bases, peripherals, voltage ranges, etc., that make your 8-bit device a better choice.

Reply to
David Brown

Definitely something to keep in mind. In this case it's most likely a one-off job, and I'm familiar with the Atmel toolchain and have the required programming equipment on hand. I've been meaning to get into ARM someday, though.

Reply to
bitrex

So use an Atmel ARM! ;-)

Reply to
krw

I'd proceed with infinite caution. Blend signals when: (1) there is a same-sense zero crossing and (2) by gradually reducing the previous signal and amplifying the new signal.

I do not think it's correct to use a constand dB/second slope on the two signals. Instead, choose a dual-slope that keeps the RMS power constant.

Steve

Reply to
Steve Pope

On Mon, 10 Aug 2015 20:20:06 +0000 (UTC), snipped-for-privacy@speedymail.org (Steve Pope) Gave us:

Driving a piezo stack..... it had better be a pure sine waveform if high power levels are used.

Note how speaker assemblies/speaker cones do not like too much mechanical manipulation from distorted waveforms.

Reply to
DecadentLinuxUserNumeroUno

Any artefacts of the cross fade would cluster around 1/(cross-fade-time) in Hz, so pick a time and LPF away the artefacts. There's probably some cross-fade curve that minimises the effect, but that'll also depend on the LPF filter characteristics.

I expect that's how frequency-shifters work, am I wrong?

Reply to
Clifford Heath

If it is random data with an equal distribution then no interpolation is needed and will in fact be a bad thing

Reply to
David Eather

Frequency shifters generally work by buffering the signal and resampling it at a slilghtly higher or lower rate to shift the frequency using a kernel that is typically 5 or 7 samples long.

Choice of interpolation kernel affects the artefacts introduced.

A truncated sinc function with a gaussian taper is typical.

--
Regards, 
Martin Brown
Reply to
Martin Brown

Or in analog-land by multiplying with the shift frequency and phasing out the unwanted sideband. As in RF SSB generation.

piglet

Reply to
piglet

With arbitrary point values, there is no "easy" solution,other than the crude use of average of the 2 values (last of past points, first of "jump" points). If one had the time between "normal" samples, one could take the previous (say) 5 points,and the "next" (to be used) points and calculate previous slope, and calculate "next" after-"jump" slope. Then use slopes and values to fake intermediate values; might be hokey-sounding transition, but a lot better than the one-point fake mentioned.

Reply to
Robert Baer

Slope calculation needed, then; how many points before,and after? How much time (eg: compute power) available between nominal look-up rate?

Reply to
Robert Baer

YES! Provided the compute power (time) is available.

Reply to
Robert Baer

Zero crossing cut and splice CANNOT "always work". (Baer) fur eggzample, first waveform was going negative from some (unknown) positive value, and the second waveform happens to go positive from some (unknown) negative value. MAJOR glitch! There ain't no symple solution. Other than GURrowl at it.

Reply to
Robert Baer

Commonly done in the past, with not unreasonable results (depends on who the observer is). The commercial Darth Vader voice was done that way, i think. Often, i think, the SSB trick is easier and better.

Reply to
Robert Baer

Nearest neighbour forward difference will be good enough. Avoiding any severe discontinuities will make the transition inaudible.

(apart from the differing signal content)

--
Regards, 
Martin Brown
Reply to
Martin Brown

Adding a frequency offset upsets all the harmonics. That's not the kind of frequency shifting that Martin and I were talking about.

Reply to
Clifford Heath

Best answer yet, Thanks :)

Can I steal your "GURrowl" for laterl appropriatations?

It pretty much lays-it-on-the-line for pretty much everything these days.

Reply to
Rev. 11D Meow!

Simulating the correct 'filter' response for this would involve a few pricey CPU-Cycles, yes..

Where does one start and end the blend\interpolation process? How many samples before the end of the first waveform's edit point against how many samples into the waveform being 'punched' toward does one count as Interpolation Period? :)

Reply to
Rev. 11D Meow!

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.