If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
(not that) stupid question
7 posts
• Page 1 of 1
(not that) stupid question
Question. What is the relationship between lowest (non-zero?) amplitude of a linear signal at certain bit depth (16bit = 96dB, 24bit = 144dB) - and lowest value that can be listed on FFT graph (across the spectra) at certain windowing type? Can this be estimated somehow, to provide a reference levels?
Question 2. With what max bit depths are working windows (XP-8.1) audio surfaces? (wdm, directsound, mme, wasapi). I don't mean that you can internally use different resolutions in your app, I mean situations when either you use one of these as a recording gate or playback gate. Do they (which ones) create limits to 16bits no matter what/where you set (...in the system?) to get more?
Question 2. With what max bit depths are working windows (XP-8.1) audio surfaces? (wdm, directsound, mme, wasapi). I don't mean that you can internally use different resolutions in your app, I mean situations when either you use one of these as a recording gate or playback gate. Do they (which ones) create limits to 16bits no matter what/where you set (...in the system?) to get more?
Need to take a break? I have something right for you.
Feel free to donate. Thank you for your contribution.
Feel free to donate. Thank you for your contribution.
- tester
- Posts: 1786
- Joined: Wed Jan 18, 2012 10:52 pm
- Location: Poland, internet
Re: (not that) stupid question
tester wrote:Question. What is the relationship between lowest (non-zero?) amplitude of a linear signal at certain bit depth (16bit = 96dB, 24bit = 144dB) - and lowest value that can be listed on FFT graph (across the spectra) at certain windowing type? Can this be estimated somehow, to provide a reference levels?
The cool thing about FFT is, that it's a statistic tool. If the input is dithered with a white noise (with perfectly even distribution) then even frequencies below the bit depth can be measured. When you average several FFT windows, the amplitude of the noise in the frequencies will converge to straight line, while any present frequencies in the signal will create a peak in that straight line, which easily may be even below 96db (when input was @16bit).
This naturally works only if the input was converted and processed in higher bit depth format (float or double float).
I do not know how windowing affects this though.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: (not that) stupid question
I ask this question, because 16bit, digitally made files are showing about 137dB depth on FFT (depends on windowing), so it makes me wonder how to approach this.
Need to take a break? I have something right for you.
Feel free to donate. Thank you for your contribution.
Feel free to donate. Thank you for your contribution.
- tester
- Posts: 1786
- Joined: Wed Jan 18, 2012 10:52 pm
- Location: Poland, internet
Re: (not that) stupid question
tester wrote:I ask this question, because 16bit, digitally made files are showing about 137dB depth on FFT (depends on windowing), so it makes me wonder how to approach this.
What you see is dithering noise. Try to create a sine wave with -120dB amplitude @16bit (or amplify 0dB sine wave to -120dB). If your Tone generator uses dithering, then you will still see a small peak peaking out to -120dB from the -130dB noise floor at that frequency. This all happens despite your audio is 16bit. If your generator does not use dithering, all you will see is complete silence, because such quiet sound is rounded to zero.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: (not that) stupid question
But the question remains. Even if we have dithering noise - is there a way to say, what is the minimal "floor" level (for non-zero signals) to expect at (certain/various) windowing types? It rides to something like - "at 16bit, FFT representation at windowing X - shows depth at 7bits higher, which is 23bit". Needed in education.
Second step would be to say - how much of that additional 7bits is effective (can be helpful with something), and which is truly random stuff.
Second step would be to say - how much of that additional 7bits is effective (can be helpful with something), and which is truly random stuff.
Need to take a break? I have something right for you.
Feel free to donate. Thank you for your contribution.
Feel free to donate. Thank you for your contribution.
- tester
- Posts: 1786
- Joined: Wed Jan 18, 2012 10:52 pm
- Location: Poland, internet
Re: (not that) stupid question
tester wrote:But the question remains. Even if we have dithering noise - is there a way to say, what is the minimal "floor" level (for non-zero signals) to expect at (certain/various) windowing types? It rides to something like - "at 16bit, FFT representation at windowing X - shows depth at 7bits higher, which is 23bit". Needed in education.
Second step would be to say - how much of that additional 7bits is effective (can be helpful with something), and which is truly random stuff.
Dither effectively makes the value randomly fluctuate. If you dither silence you have 25% smallest positive value 25% smallest negative value and 50% zero randomly distributed over infinite period of time. When you put any small signal into the dither noise, it will make the dithering fluctuate - for short period of times, positive values are more likely and then negatives are more likely at periodic rate. If you would analyze infinite section of time(either by having infinite FFT window, or average infinite number of finite-sized windows), the noise would create perfectly flat FFT response and the present signal would create small peaks from that flat line. You are only limited by the precision of the calculations.
For a single FFT window the thing goes like this. The amplitudes of frequencies in white noise fluctuate (the line that would be flat for infinite period of time is fuzzy for discrete time). Whenever your signal peaks higher than those fluctuations you are 100%sure it is there, otherwise you are unable to tell if it's a signal or random instantaneous "peak" in the noise. Different dithers fluctuate differently - that's why some dithers are better than others.
So here is the rule -
if the dither noise fluctuates +-x dB around average value, then anything that peaks more than x dB form the average value is definitely a frequency of a signal.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: (not that) stupid question
I did a small experiment. Created and saved 2 audio files at 16bits. One is digital silence. Second one - is digital silence + dithering/noiseshaping. The results are... ambiguous. After reopening - some DAWs (and FFT apps) see these files as equal, and they pick the (I guess) built-in min level as top max (which is different for each app, varies between -300 to -470dB). But not all. Steinberg's Wavelab for example - sees the dithered file as around -132dB, while digital silence is detected as minus infinity (which is correct in dB). Flowstone sees the files identically (null). It appears that wavelab stores some additional information. Anyway for FFT, both of these files are useless due to lack of content.
Regular white noise (created in audution), decreased with WL to -100dB is detected as zero in audition, but is detected as non-zero in WL. Regular noise decreased to any value (below the threshold) in audition - ends up at the -90dB or so (1 bit free space).
Regular white noise 16bit file at c.a. -90dB (audition processing), shown in FFT apps at high resolution - indicates average FFT levels at -130/-136dB no matter in which windowing. So this - answers part my question. There seems to be a relationship between bit depths and expected minima on FFT graph.
Regular white noise (created in audution), decreased with WL to -100dB is detected as zero in audition, but is detected as non-zero in WL. Regular noise decreased to any value (below the threshold) in audition - ends up at the -90dB or so (1 bit free space).
Regular white noise 16bit file at c.a. -90dB (audition processing), shown in FFT apps at high resolution - indicates average FFT levels at -130/-136dB no matter in which windowing. So this - answers part my question. There seems to be a relationship between bit depths and expected minima on FFT graph.
Need to take a break? I have something right for you.
Feel free to donate. Thank you for your contribution.
Feel free to donate. Thank you for your contribution.
- tester
- Posts: 1786
- Joined: Wed Jan 18, 2012 10:52 pm
- Location: Poland, internet
7 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 55 guests