diyAudio

diyAudio (https://www.diyaudio.com/forums/index.php)
-   Vendor's Bazaar (https://www.diyaudio.com/forums/vendor-s-bazaar/)
-   -   Hi-end DSP based multi-channel integrated Preamp/Crossover/DAC project (https://www.diyaudio.com/forums/vendor-s-bazaar/264743-hi-dsp-based-multi-channel-integrated-preamp-crossover-dac-project.html)

torgeirs 15th February 2017 01:52 PM

Is't it just a tradeoff to get sharp filters with low latency. Then ringing must be accepted. And the ringing is far above hearing frequencies. If this sounds bad, all metal domes (resonance above 20k Hz) sound bad.
An the ringing starts in the 0.1 ms region before the square wave. Human threshold is in the 1 ms region. Google Haas effect. (And that is signals in the audible spectrum)

cogeniac 15th February 2017 01:59 PM

I am not so sure it is deceptive.

The ringing may be caused by a number of things.

Fist, there is an analog filter after the DAC (one would assume), and this presumably has a cutoff around 96 KHz. That might cause the trailing edge ringing (since it is causal), but it would presumably cause the same ringing for every filter type.

Second is ringing caused by an incomplete waveform composition. If you create a square wave with a Fourier series you can see that it starts out as a sine wave and as you add components (additional sine waves of different amplitudes and frequencies) the ringing (sometimes called "ears" ) appear at the transitions. Here is an example.



As the number of components increase to infinity, the frequency of these ears increases, eventually becoming infinitely high. As noted by Kindhornman, if the system is band limited (which we know it is, since it is sampled at 192 KHz, resulting in a max frequency of 96 KHz), then you will be stuck with some amount of ringing.

It would be very interesting to see how this looks with a 20 KHz square wave.

cogeniac 15th February 2017 02:20 PM

Quote:

Originally Posted by torgeirs (https://www.diyaudio.com/forums/vendor-s-bazaar/264743-hi-dsp-based-multi-channel-integrated-preamp-crossover-dac-project-post4989063.html#post4989063)
Is't it just a tradeoff to get sharp filters with low latency. Then ringing must be accepted. And the ringing is far above hearing frequencies. If this sounds bad, all metal domes (resonance above 20k Hz) sound bad.
An the ringing starts in the 0.1 ms region before the square wave. Human threshold is in the 1 ms region. Google Haas effect. (And that is signals in the audible spectrum)

When you say "the human threshold is in the 1 msec" region are you suggesting that this is the limit of signal period we can hear (seems unlikely) or its it the limit of our ability to differentiate delay? (more likely).

I'm not sure how relevant the latter would be, since we are questioning if one might be able to perceive the existence of the ringing, and the former seems unlikely since we can (ideally) hear sounds up to 20 KHz. A 20 KHz signal would have a period of 50 usec (0.05 sec)..

This also points out why a system with a frequency response to only 20 KHz will produce perceptibly worse sound quality than one with, say 48 KHz for 96 KHz bandwidth. A 20 KHz system simply cannot reproduce the frequency components required to provide a sharp leading edge on an already high frequency signal (think about reproducing a percussive high frequency sound - for example a triangle which has a sharp rise and then rings at a very high frequency). You need that higher bandwidth to reproduce the rise of the sound...and without it the sound will be flat and muddy, as opposed to transparent and real.

In practice, as the frequency of the ringing ears grows higher, the total energy trends to zero, so even in the limit, there will be ears showing, but they will contain effectively zero energy.

I would, however, be concerned with a filter that rang over long portions of the signal period, as some of the above do.

Your statement about low latency and sharp filters relates to my question about the number of taps. If the tap count is high, then the resulting waveform includes many components, and this ringing effect will decrease (i.e the period will trend toward infinity, and the energy will trend toward zero), however, each tap will add delay, so the filters get long and the delay gets long, and at some point the DSP will be maxed out (an argument for fewer channels, or parallel DSPs).

Scott

pos 18th February 2017 03:47 PM

Tranquility Bass, I have two questions that might already have been answered in the thread. Sorry if that it the case, but here goes:

What is the output voltage and impendance of the balanced output?
What is the data path between the DSP and DAC ? (32 bits floats? Integers?...)

Tranquility Bass 18th February 2017 11:13 PM

Quote:

Originally Posted by pos (https://www.diyaudio.com/forums/vendor-s-bazaar/264743-hi-dsp-based-multi-channel-integrated-preamp-crossover-dac-project-post4993120.html#post4993120)
Tranquility Bass, I have two questions that might already have been answered in the thread. Sorry if that it the case, but here goes:

What is the output voltage and impendance of the balanced output?
What is the data path between the DSP and DAC ? (32 bits floats? Integers?...)

On the balanced output board there are three gain settings that can be individually set for each channel. These are 0dB, +3dB and +6dB. Here are the maximum outputs based on the jumper settings on the balanced output board.

No jumper 0dB gain, max output = 4.8 VRMS
+3dB jumper, gain=1.414 jumper, max output = 6.8 VRMS
+6dB jumper, gain=2, max output = 9.6 VRMS

Maximum unbalanced output = 1.4 VRMS

The processing by the DSP is usually done in floats so incoming fractional values are first converted to floats and then converted back to fracts when writing out to the DACs. There may be some instances where it is prudent to do some processing using fracts rather than floats.

Regards
David

Tranquility Bass 19th February 2017 03:49 AM

Forgot to add that the output impedance is 300 ohms balanced and 150 ohms unbalanced.

cheers

pos 19th February 2017 11:14 AM

Quote:

Originally Posted by Tranquility Bass (https://www.diyaudio.com/forums/vendor-s-bazaar/264743-hi-dsp-based-multi-channel-integrated-preamp-crossover-dac-project-post4993510.html#post4993510)
No jumper 0dB gain, max output = 4.8 VRMS
+3dB jumper, gain=1.414 jumper, max output = 6.8 VRMS
+6dB jumper, gain=2, max output = 9.6 VRMS

So that translates to roughly +16dBu, +19dBu and +22dBu
Nice!
If you manage to keep most of the dynamic range of the ESS (ie low residual noise) this will be a killer output stage.

Quote:

The processing by the DSP is usually done in floats so incoming fractional values are first converted to floats and then converted back to fracts when writing out to the DACs. There may be some instances where it is prudent to do some processing using fracts rather than floats.
Not sure what you call fracts in this context, but I am most interested in knowing if there is float to integer conversions happening throughout the process.
I don't mind for conversion between floating point formats and resolutions (like 40bit to 32bit or 64bit, etc.), but conversions to integer before the final stage (which is the volume control in the ESS DAC) that can imply saturation.

Here is a scenario: imagine you have a 0dBfs 1kHz signal on the (digital) input, and you apply a +6dB 1kHz EQ in the DSP, will saturation happen in the volume control in the ESS is set to -6dB or below?

If the signal is converted from integers to floats in the DSP, and then remains floats (possibly with different resolutions) up to the DAC volume control then no saturation will happen, but if the data is converted to integers before going to the DAC (and then back to float inside the DAC) then saturation will happen during that conversion.

Tranquility Bass 20th February 2017 12:09 AM

Quote:

Originally Posted by pos (https://www.diyaudio.com/forums/vendor-s-bazaar/264743-hi-dsp-based-multi-channel-integrated-preamp-crossover-dac-project-post4993936.html#post4993936)
So that translates to roughly +16dBu, +19dBu and +22dBu
Nice!
If you manage to keep most of the dynamic range of the ESS (ie low residual noise) this will be a killer output stage.


Not sure what you call fracts in this context, but I am most interested in knowing if there is float to integer conversions happening throughout the process.
I don't mind for conversion between floating point formats and resolutions (like 40bit to 32bit or 64bit, etc.), but conversions to integer before the final stage (which is the volume control in the ESS DAC) that can imply saturation.

Here is a scenario: imagine you have a 0dBfs 1kHz signal on the (digital) input, and you apply a +6dB 1kHz EQ in the DSP, will saturation happen in the volume control in the ESS is set to -6dB or below?

If the signal is converted from integers to floats in the DSP, and then remains floats (possibly with different resolutions) up to the DAC volume control then no saturation will happen, but if the data is converted to integers before going to the DAC (and then back to float inside the DAC) then saturation will happen during that conversion.

The DSP can interpret the binary values from an ADC or DAC as either integer or fractional.

fracts are fractional values which are a special case of the fixed point number format where the least 31 bits represent the fractional value and the msb represents the sign. As such it can represent values from -1 to +0.9999........

Floating point data will always be converted back to fracts before it is piped to the DAC so this means that any float less than -1 or greater and equal to +1 will always be clipped.

Sure you can have large intermediary floating point values but they will always be clipped if they are outside the range of the fractional values expected by the DAC so to answer your question yes it will be clipped for a +6dB FSD signal before it reaches the DAC.

Regards

pos 20th February 2017 04:43 AM

Thank you for your answer.
I though the ESS could take floating point values in excess of +/- 1

That will require special care when designing filters, like keeping a few dB of margin to prevent clipping on real world signals.
Can you identify clipping during that conversion, maybe with a led on the interface?

Tranquility Bass 20th February 2017 05:46 AM

Quote:

Originally Posted by pos (https://www.diyaudio.com/forums/vendor-s-bazaar/264743-hi-dsp-based-multi-channel-integrated-preamp-crossover-dac-project-post4994658.html#post4994658)
Thank you for your answer.
I though the ESS could take floating point values in excess of +/- 1

That will require special care when designing filters, like keeping a few dB of margin to prevent clipping on real world signals.
Can you identify clipping during that conversion, maybe with a led on the interface?

No DAC that I know of accepts raw floating point values.

Probably something that detects 1 dB below fsd would act as a good overload or clipping indicator. The LED is already available. Just need to write the code to turn it on ;)

cheers


All times are GMT. The time now is 11:21 AM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 17.65%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Copyright ©1999-2020 diyAudio

Wiki