Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Is it possible to stretch 16 bits symmetrically? (Read 57730 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Is it possible to stretch 16 bits symmetrically?

Reply #50
I feel so confused.


If your remark is about the last few KMD's posts, you shouldn't be. As I understand, KMD is referring to the situation when, if no dithering is applied, and the signal is slowly changing, then due to quantization long runs of consecutive equal magnitude values can appear in the digital sample stream. These values form a "stairstep", which can not be removed by linear filtering. This was discussed before, in this thread, with a nice illustration in this post.

@giro1991: noise shaping can only be performed in the process of adding the noise, i.e., during the quantization. If you have the signal which is already quantized (say, to a 16-bit resolution), then the noise is already mixed into it, and in general case there is no way to remove or reduce it.

Is it possible to stretch 16 bits symmetrically?

Reply #51
@giro: Since you are willing to learn, I suggest you to take a look at these two videos from Monty, from the Xiph.org.

http://xiph.org/video/vid1.shtml
http://xiph.org/video/vid2.shtml

Especially video 2 talks and shows about bitdepth, quantization and what happens to a digital signal when it passes through a DAC.

Said that, the problem that you seem to be having is with the source at which dither is applied.
Dither by itself can be applied to any signal. It is a type of noise. And this noise can be shaped, and the shape can be of multiple ways as you have even shown in a graphic.

But by itself, this dither doesn't bring the noise down, more so if the is already noise in there.

To be of any use, the dither is applied when changing down the bit depth (i.e. 32 ->24, 24->16, etc...) due to the necessary quantization of values, not when increasing it, because the whole new bits added would be based on those that were already present in the signal, not to their correct values.

Those examples that you mention that oversample, change the bitdepth to have room for the new values that will get generated during the whole process. It doesn't really change the noise floor.


Is it possible to stretch 16 bits symmetrically?

Reply #52
This was discussed before, in this thread, with a nice illustration in this post.
…and was concluded by less sensationalist posters to be neither surprising nor audibly relevant, if I’m not mistaken?

@giro: Since you are willing to learn, I suggest you to take a look at these two videos from Monty, from the Xiph.org.

http://xiph.org/video/vid1.shtml
http://xiph.org/video/vid2.shtml
Thanks: these excellent videos should be recommended at every opportunity.

Quote
Those examples that you mention that oversample, change the bitdepth to have room for the new values that will get generated during the whole process. It doesn't really change the noise floor.
Yup, the increased bit-depth just enables more precise interpolationm and since even a theoretical perfect interpolation leaves the original signal functionally unchanged, interpolating between samples of noise yields only an upsampled equivalent of the original noise. Apparently we can never emphasise it enough: you can’t create something from nothing, especially not ‘quality’.

Is it possible to stretch 16 bits symmetrically?

Reply #53
If your remark is about the last few KMD's posts, you shouldn't be. As I understand, KMD is referring to the situation when, if no dithering is applied, and the signal is slowly changing, then due to quantization long runs of consecutive equal magnitude values can appear in the digital sample stream. These values form a "stairstep", which can not be removed by linear filtering.


Not really about KMD's post, but anyway, well of course if you store a square wave then it's not magically going to turn into a smooth sine wave. That is regardless of bit depth.
If you don't dither you will get nonlinear distortion products. The closer you get to the limit of the dynamic range the bigger those will be, effectively turning sines more and more into aliased squares.
"I hear it when I see it."

Is it possible to stretch 16 bits symmetrically?

Reply #54
Lets ignore my nonsensical 'Uprezzing' tangent and focus reducing bit depth.

As you seen in previous posts, I'm experimenting with dsps.

I successfully applied noise shaped dither to a 16bit file, to output 8bit, I didnt believe it possible but the difference barely audible, if noise shaping is employed correctly (majority of dither based beyond 22.5).

My goal is actually to try replicate the proccessing a digital filter would otherwise do prior to entering a multibit dac, but with foobar. I have a setup where I've bypassed the digital chip, so that the multibit DEM DAC chip is receiving 48khz via optical.

This digital filter is early model from the dawn of Digital, it's very noisy but it's purpose is clear to me.
The oversampling, creating multiple images introduces ultrasonics.
I know I need to create something at relative amplitude to rest of signal, so mirroring makes sense to "create ultrasonic material" which I can base the noise shaped dither on.
Doing it this way, presents the dac with a 16bit file with ultrasonics present, as intended by designer of this DAC, which maintiaining linearity (... i've said all this before).

I have foobar setup so sox is at 4x,
I have two plugins that acheive aliasing, one is called quantiser, which nearly acheives what I'm after by replicating the image beyond 22.5, nearly only because its "vector'd" and still too near band of interest, the other is uselss because it wont budge from 22050 sample decimation. The quantizer is interesting i'm still playing with it. It has an envelope function.
I'd like to get them a little further away from 22.05, for obvious reasons.
The first image is a comparison with the "quantiser plugin" off/on, the second to demonstrate the mirroring it does a little bit more clearly.

THEN I want to apply quantising and noise shaping to this signal, while still at 176.4, then sampling output at 48khz, where it will go via optical to the multibit.

Hope this is more clear now?

Is it possible to stretch 16 bits symmetrically?

Reply #55
Lets ignore my nonsensical 'Uprezzing' tangent and focus reducing bit depth.
“tangent”??? That was your core reason for starting this thread! Not a very good attempt at deflection. Perhaps you should start another thread about your depth-reducing idea to get more topical replies – and to satisfy TOS #5.

Is it possible to stretch 16 bits symmetrically?

Reply #56
This was discussed before, in this thread, with a nice illustration in this post.
…and was concluded by less sensationalist posters to be neither surprising nor audibly relevant, if I’m not mistaken?


Of course it's not something unexpected, just an illustration of how quantization error can result in actual appearance of the infamous "stair steps"  Although strictly speaking it's not a real "stair step", since the reconstructed signal will not stay constant between the sampled points.

With 16 bits of resolution even undithered quantization noise is unlikely to become an audible problem.


Is it possible to stretch 16 bits symmetrically?

Reply #58
The descriptions on that page are almost totally devoid of logic, so yes, it seems to be a good fit.

Is it possible to stretch 16 bits symmetrically?

Reply #59
Seems to me it's simple:

You have a signal. You dither appropriately and then quantize it.

You now have a quantized signal, which consists of your original signal, dither and quantization error.

You increase bit depth by zero padding.

Now the only way you can take advantage of those extra bits is if you have some way of differentiating your original signal from the dither + QE.

In oversampling, you know that you have no signal above a certain frequency so you can filter things out.

But in the general case, if you don't know what part of the quantized signal is the original signal and what isn't, there's nothing you can gain.

What am I missing?

Is it possible to stretch 16 bits symmetrically?

Reply #60
Seems to me it's simple:

You have a signal. You dither appropriately and then quantize it.

You now have a quantized signal, which consists of your original signal, dither and quantization error.

Can't have this at all. Does this quantization error occur simply because there isnt anything past 22050?
By your post, surely oversampling comes first, generate harmonics using that tube sound dsp second, then quantising (up or down) last?

Which seems to me just the reversal of ADC process, what ever the musical content is. (by musical i mean transient content, not tones and sne waves, which people seem to use for proof)...

Quote
Now the only way you can take advantage of those extra bits is if you have some way of differentiating your original signal from the dither + QE.

What about enabling asymetric option/balance in tube emulatior? (which is a feature on this dsp actually).

Is it possible to stretch 16 bits symmetrically?

Reply #61
Quantization error is, by definition, the difference between an unquantized signal and the quantized signal.

Is it possible to stretch 16 bits symmetrically?

Reply #62
Quantization error is, by definition, the difference between an unquantized signal and the quantized signal.


"Error resulting from trying to represent a continuous analog signal with discrete, stepped digital data. The problem arises when the analog value being sampled falls between two digital “steps.” When this happens, the analog value must be represented by the nearest digital value, resulting in a very slight error. In other words, the difference between the continuous analog waveform, and the stair-stepped digital representation is quantization error"

doesnt oversampling address this?

edit: spelling mistake -.-

Is it possible to stretch 16 bits symmetrically?

Reply #63
oversampling refers to rate not depth. It is used to allow less complex analog filters.  Maybe you are envisioning that  adjacent samples can be summed to increase bit depth and decrease bandwidth that is possible in principle  and is simmillar  the delta sigma technique

Is it possible to stretch 16 bits symmetrically?

Reply #64
You mean digital filters not analog right?

Something else if anyone could answer.

If noise shaped dither applied in the ultrasonic range exceeds that of the peak amplitude of the baseband audio, does this push the baseband further in the noise floor upon conversion...?


Is it possible to stretch 16 bits symmetrically?

Reply #65
No I meant the  analog anti aliasing or anti image filters that are part of the process.

noise floor can be  a misleading term as noise is summed with and accompanies a signal, not a floor that it sits on top off. It can even increase with an increaese signal level in some scenarios.

Is it possible to stretch 16 bits symmetrically?

Reply #66
Oversampling at a lower bit depth allows you (among other things) to increase the bit depth at the output and then filter out the QE + dither that is above the Nyquist frequency of the (lower) output sample rate. So you can effectively trade sample rate for bit depth.

Is it possible to stretch 16 bits symmetrically?

Reply #67
SO starting from/using 16bit standard...
16bit / 44.1, at 88.2, you could get away 8bit
multiply the rate by two again, you can halve the depth again, for same theoretical performance...
multiply rate to 352.8khz (DSD rate), allows 1 bit performance.

But I think the way dither is employed is crucial, perhaps increasing the noise beyong the peak amplitude of the signal being dither contributes.

This is why badly implimented DSD players have massive peaks 100khz... it's on the disc because this is how they encode it, THE SECRET IS OUT

hehe just kidding, but can someone confirm?

Is it possible to stretch 16 bits symmetrically?

Reply #68
I believe that without noise shaping you only get ~3dB for every doubling of sample rate.

Is it possible to stretch 16 bits symmetrically?

Reply #69
I've been condoning noise shaping the entire thread, I will be using it. It must be used.
I believe that without noise shaping you only get ~3dB for every doubling of sample rate.

Please excuse my persistance but I've seen adobe audition show up before prior to posting and also noted some DAWs reduce volume by -6dB, when doing 16>24, some don't.
So there are discrepancies.

I knew I was on to something from the start I was almost conviced to be getting no where.

I still need to find a way to apply noise shaping as far as 48khz would allow.

Is it possible to stretch 16 bits symmetrically?

Reply #70
multiply rate to 352.8khz (DSD rate), allows 1 bit performance.


Please... DSD operates at 2822.4 kHz.
Also, DSD uses PDM and not PCM. It contains a sigma-delta modulated signal.

I find DSD to be nonsense. If you want to do processing you usually need to convert to superior PCM first anyway, then back to DSD, and then nowdays you pass this 1-bit signal to a multibit DAC doing more conversions...
And there's the problem with all the ultrasonic noise..


Just get a proper (oversampling) DAC and feed it 44.1 resampled to 88.2 or 96 kHz at 24 bit if it makes you happier.
"I hear it when I see it."

Is it possible to stretch 16 bits symmetrically?

Reply #71
Ouch!! Didn't we address this already?


A) Sample Rate: Rate at which samples are obtained/played from/to the ADC/DAC (recording/playback).
B) Bit Depth: The number of bits used to represent each of the samples obtained/played from/to the ADC/DAC.

A is responsible, due to the Shannon Theorem, to define an upper limit of the frequencies that will be stored precisely (given a perfect filter). Sampling at 44Khz, lets one have from 0 to 22.05Khz of frequencies. (0Hz = DC offset).
Since the whole theory of sampling is made around bandlimited (band = frequencies, limited = upper limit for frequencies), it requires a filter to represent the samples how they really are.  The mirroring you see without applying the filter is not something added, but a consequence of not having a filter on a sampled signal. Even resampling entirely in the digital domain requires a filter to avoid the aliasing images. (I extend about this below)

B) is responsible to define the noise floor, also called signal to noise ratio (SNR) that the signal could have (given that the ADC/DAC are precise enough). The noise floor consists of the miminum signal amplitude (in the frequency domain) that is considered not part of the sampled signal. If there is no dithering when quantizing, then there are frequencies that have alias-like effects (that is why we call it correlated).
If there is dither, then, there is a noise signal present. It's noise is visible in the frequency domain like in the graphics you showed in post 36


What do I want to say with this?

First, don't use the word "quantize" when talking about sampling rate and frequency bands. There is no quantization in there, there is an upper limit.
Second, don't mix the two concepts. Oversampling is about sample rate, and frequency bandwith. Quantization, dither, SNR is about Bit Depth.


Example of sampling (supposedly, what you now try to do):
If you have a 5Hz sine wave, and a 15Hz sine wave, and you sample it at 20Hz (i.e. 20 samples each second, which means bandlimited to 10Hz) without applying any filter, you get:
(Assuming 0 degrees of phase, and 1 and -1 to be the upper and lower amplitude of the sine)

5Hz -> 0, 1, 0, -1, 0, 1, 0, -1, 0, 1.
15Hz -> 0, -1, 0, 1, 0, -1, 0, 1, 0,  -1.

So... are the signals recorded really different? No. The 5Hz signal is equal to the 15Hz signal recorded. There is a difference only in that the phase is inverted in the 15Hz one.
But if it is so, how can we know if we have a 5Hz sine, or a 15Hz sine? The truth is: Only the one that respects the Shannon theorem (i.e. being below the bandlimited frequency) can exist in a properly sampled signal.

Is it possible to stretch 16 bits symmetrically?

Reply #72
theres also problem with compessing the file length of a DSD stream for storage , and dithering  is a problem, aren't all DSD encoders all at least 3 bits nowadays anyway

Is it possible to stretch 16 bits symmetrically?

Reply #73
I mistook dsd for dxd, which I read somewhere.
Ultrasonic isnt an issue, the final 48khz resampling stage gets rid of them.

Thanks JAZ, that well and truely de boggles everything.

theres also problem with compessing the file length of a DSD stream for storage

Not going to store it.

Is it possible to stretch 16 bits symmetrically?

Reply #74
quantisation depth isn't just s/n ratio. if dither is not applied at sampling then small signals are lost