non-understanding oversampling

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
The interpolated values are "absolutely correct" if three things are true:

1) The input signal is a steady-state sine wave.

2) The combined reconstruction filter (analog + digital) is a perfect brickwall filter.

3) Any digital filtering is carried out to the degree of precision sufficient to satisfy your abitrary definition of "absolutely correct".
 
Bernhard,

Oversampling is done to relieve filtering requirements... digital processing is cheaper than analog filtering. Samples from a linear interpolation are not "perfect" but they don't need to be.

You can make them "perfect" through more (a LOT more) digital processing, fitting a curve over 4 points or more to derive your "stairs". It is a balancing with diminishing returns though. This is a MASSIVE increase in computing for a dmall decrease in filtering.

:D
 
thanks,

so a digital filter does not just do linear interpolation but something better ?

Obviously linear interpolation introduces errors to a sine wave, linearity errors increase with decreasing nr. of samples per full wave.

I just tested a Yamaha CDX-1110 which claims to have 18bit but only uses one 16bit PCM56 per channel.
It has HiBit and there is a chip marked dith ( = dither ) on the pcb.

Noise floor is very good, goes down to -70dB with -60dB signal, which is a few dBs better than other players.
Distortion is also very low with preselected chips but not better than in other players.
Just because of lower noise floor it is better visible so this will be my new player for PCM56 selection.

Still have to recheck those two chips in another player to make sure spectrum is the same.
 
Bernhard said:
so a digital filter does not just do linear interpolation but something better ?

Pretty much all digital oversampling filters used for audio calculate the intermediate points in the following manner:

a) The desired number of intermediate points are created by inserting values of zero.

b) The resulting data stream is sent to a low-pass digital filter which is a fancy way of averaging the data points. If you think about it, you will realize that going from a finite value at one (original) sample to zero at the next (inserted) sample represents a very rapid (high-frequency) change. Going through the low-pass filter will lower the value original data points (as they are averaged with zeros) and increase the value of the inserted zeros (as they are averaged with the non-zero signal). If a brickwall filter is used, the new (interpolated) data points will exactly reconstruct the original steady-state signal.

NB! - This is no different (in the amplitude domain) than if a brickwall analog filter had been used. In either case the original steady-state signal will be exactly reconstructed.

Averaging two adjacent data points would be linear interpolation, and would give a very gradual frequency response rolloff. Creating a brickwall filter would require averaging an infinite number of samples. Most audio filters average around 100 data points (give or take a factor of two) and area a very good approximation to a brickwall filter.

c) The data is renormalized to the correct amplitude. This needs to be done because if you average the original signal with zeros, the result is lower than the original value.
 
davidsrsb said:
The early 14 bit DACs from Philips used linear interpolation. Modern chips use DSP IIR filtering to compute internediate values as 44.1 KS/s reconstruction of a 20KHz sinewave would become triangular with simple linear interpolation

Almost all modern oversampling filters found in DACs, DF chips, etc... are polyphase FIR filters instead of IIR.

And to answer another post, zero stuffing is done during interpolation - this avoids zero order hold distortion, and also allows polyphase interpolation to be done which greatly reduces the amount of memory and multiplies required to perform the filtering.
 
Surely if you put a high frequency filter on a triangle wave you should get a sine wave - i know for a fact that my old cambridge audio dacmagic used linear interpolation for the upsampling.
If the upsampling is inacurate but at very high frequency then the wave it creates on top of the music is at a very high frequency and in theory can be filtered (digital or analogue filtering) to correct this error.
 
Ok,

thanks, it is clear now and I think hardware os is out for me.

My old HP scope got a little trigger problem with this kind of signal :xeye: but it can be seen, no triangle: 8 x os dac / 20kHz sine after I/V & before filtering.

8xos.jpg
 
You can use zero stuffing, copies of the last real sample, or indeed to quote Max Hauser, "anything else that makes sense." But this isn't interpolating. It is the first part. The indivisible other part is the filter. The two together make for the oversampling system. So a linear interpolation could indeed be done, but it is not correct to say that the interpolator simply does linear interpolation. It does not in exactly the same way as it would be wrong to say the others simply do zero stuffing.

It is also important to realise that these descrptions are a mathematical description. The actual manner in which the system is realised typically combines the mathematics together into a single more complex filter, often with other useful parts of the whole system.
 
old HP scope got a little trigger problem with this kind of signal

Actually, I think the scope is triggering just fine. What is happening is that the 20k is not a nice fractional subharmonic of the 44.1k sample rate, so each pass the waveform starts at a new point.

Here's an example of 8x digital filtering with some analog low pass. Waveform on the right is 20k sine (-6dBFS).

hagdac1khz.jpg


No problems triggering.

jh
 
Bernhard said:
Are those interpolated inbetween values absolutely correct ?

In fact, we will never know...:( since we don't have the original analog source signal anymore.
So all that's been done is "best guessing" :cool:

I once spoke with a guy working on a DSP based 13th order interpolator that would insert 7 or 15 computed samples between two samples.
Maybe mathematically a lesser soultion compared to FIR oversampling filters, he found it to sound far better than the normal oversampling.

Than we have the NON-OS group...
 
Rephlex said:
Surely if you put a high frequency filter on a triangle wave you should get a sine wave - i know for a fact that my old cambridge audio dacmagic used linear interpolation for the upsampling.
If the upsampling is inacurate but at very high frequency then the wave it creates on top of the music is at a very high frequency and in theory can be filtered (digital or analogue filtering) to correct this error.

The linear interpolation has high distortion at higher frequencies. Think about what happens with a 20KHz signal sampled at 44.1KS/s, at times successive samples will be close to the zero crossings so the simple interpolation will fill in around zero.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.