Clarification of Sigma Delta DAC operation wanted

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Marcel, the tiny pulse you showed actually took several samples. I don't know if your pascal program has some kind of oversampling/interpolation or if it's only just S/D operation.

I'm sure I wrote that my latest program contains a chain consisting of a simple linear interpolator, a sigma-delta and a decimator with sixth-order CIC filter. It also has a second signal chain with just the filtering and no quantization, so you can see what is due to the filtering and what due to the sigma-delta modulation. The smearing out of the pulse is due to the filtering, the sigma-delta adds a bit of noise. Without filtering the output of the sigma-delta would just jump up and down between two levels.

If it's no OS involved, then it's clearly inferior to a multi bit DAC, that one would just give an output of exactly one sample. That is, with no output filter - digital or analog - a pure NOS, so to speak.

So I gather you dislike low-pass filters. That's unfortunate because all throughout any audio signal chain, there are things with bandwidth limitations that act as low-pass filters.

In any case, a DAC with no output filter gives you lots of images, the audio spectrum will be repeated above and below every multiple of the sample rate. Why would anyone want that?

If you also prefer recordings made without filtering, ultrasonic sounds will alias into the audio band.

I said this before, but the true challenge would be to feed your SD algorithm with the following signal: ( at fs/2 )

0.0001
-0.0001
0.0001
-0.0001

etc...
A multibit DAC would give exactly that output in NOS mode.

Actually a properly designed multibit DAC would suppress this signal in its output filter. Anyway, I'll run the test when I have the time.

By the way, I don't think you specified a test signal before.

If the algoritm can handle that( which I serioulsly doubt ) feed it with the following:

0.0001
-0.0001
0.0001
-0.0001
( lets say 20 samples )

then 20 zero's

repeat the pattern....

This is more like natural sound.

If you can show that it will come up with something that look remotely like a NOS multi bit DAC, yes then I will truly be a Sigma Delta fan.

Btw, I'm actually in the process of building a PCM1794 DAC in mono mode and with optional NOS operation.

OK, I'll try that.
 
The response to your first test signal is:

filteredxin, filteredsdout, filteredsdout-filteredxin
1.7464703828089682E-0009, 1.3871975923507307E-0006, 1.3854511219679217E-0006
7.2931490249413825E-0007, 1.1365989232103857E-0004, 1.1293057741854443E-0004
1.2466080307652718E-0005, 5.4705263589482911E-0004, 5.3458655558717639E-0004
3.0505051042129620E-0005, 4.2501899801550280E-0004, 3.9451394697337318E-0004
3.5412919835702336E-0006, 4.0451723009482521E-0005, 3.6910431025912287E-0005
2.6725126713711564E-0006, 4.1721457151311370E-0006, 1.4996330437599805E-0006
-2.5156334646631315E-0006, -3.1509192197631819E-0006, -6.3528575510005044E-0007
2.5156461695703634E-0006, 1.5689809416130629E-0006, -9.4666522795730051E-0007
-2.5156461542155090E-0006, -9.4263896954771553E-0007, 1.5730071846677935E-0006
2.5156461541612640E-0006, 1.7493251789346687E-0006, -7.6632097522659538E-0007
-2.5156461541610873E-0006, -1.5046301626853165E-0006, 1.0110159914757708E-0006
2.5156461541610091E-0006, 1.7479078451287933E-0007, -2.3408553696481298E-0006
-2.5156461541610892E-0006, 3.5308033830006025E-0008, 2.5509541879910952E-0006
2.5156461541614331E-0006, 8.3694204278117468E-0007, -1.6787041113802584E-0006
-2.5156461541616575E-0006, -1.2428494429173043E-0006, 1.2727967112443533E-0006
2.5156461541616050E-0006, 1.3079138483362840E-0006, -1.2077323058253210E-0006
-2.5156461541616829E-0006, -1.0692570242554211E-0006, 1.4463891299062618E-0006
2.5156461541620353E-0006, 9.1625321374522173E-0007, -1.5993929404168136E-0006
-2.5156461541626452E-0006, -1.0199872377825159E-0006, 1.4956589163801293E-0006
2.5156461541632415E-0006, 1.6136166678393238E-0006, -9.0202948632391771E-0007
-2.5156461541633093E-0006, -2.4946872088094096E-0006, 2.0958945353899612E-0008
2.5156461541629704E-0006, 2.6833719317664873E-0006, 1.6772577760351681E-0007
-2.5156461541622386E-0006, -2.8693092417597654E-0006, -3.5366308759752683E-0007
2.5156461541609647E-0006, 4.1502895555822761E-0006, 1.6346434014213114E-0006
-2.5156461541596636E-0006, -4.5097186500697717E-0006, -1.9940724959101081E-0006
2.5156461541595552E-0006, 3.1594834268844352E-0006, 6.4383727272487997E-0007
-2.5156461541617778E-0006, -2.8282748516517131E-0006, -3.1262869748993529E-0007
2.5156461541654641E-0006, 4.8361647699834975E-0006, 2.3205186158180334E-0006
-2.5156461541686083E-0006, -5.7360062371003551E-0006, -3.2203600829317468E-0006
2.5156461541696925E-0006, 4.7524169417556550E-0006, 2.2367707875859625E-0006
-2.5156461541685270E-0006, -3.0825741248463601E-0006, -5.6692797067783309E-0007
2.5156461541664534E-0006, 2.8751909155744215E-0006, 3.5954476140796809E-0007
-2.5156461541635261E-0006, -3.8980934107257781E-0006, -1.3824472565622520E-0006
2.5156461541593113E-0006, 3.5710387535914379E-0006, 1.0553925994321266E-0006
-2.5156461541550829E-0006, -3.3075660468284696E-0006, -7.9191989267338669E-0007
2.5156461541533888E-0006, 4.8432724497615709E-0006, 2.3276262956081821E-0006
-2.5156461541576172E-0006, -5.7236714283703805E-0006, -3.2080252742127633E-0006
2.5156461541645967E-0006, 4.4227032489629892E-0006, 1.9070570947983924E-0006
-2.5156461541664670E-0006, -2.8089120220897712E-0006, -2.9326586792330421E-0007
2.5156461541651931E-0006, 3.2274024874823226E-0006, 7.1175633331712956E-0007
-2.5156461541661146E-0006, -4.0552766833457099E-0006, -1.5396305291795953E-0006
2.5156461541674699E-0006, 4.2387480334582506E-0006, 1.7231018792907807E-0006
-2.5156461541684999E-0006, -4.5159947177353388E-0006, -2.0003485635668389E-0006
2.5156461541697467E-0006, 4.7718419935449674E-0006, 2.2561958393752207E-0006
-2.5156461541692588E-0006, -3.8026403856861180E-0006, -1.2869942315168591E-0006
2.5156461541681204E-0006, 2.1812548212096772E-0006, -3.3439133295844322E-0007

The first column is only filtered by the chain without quantization, the second column includes the sigma-delta modulator and the third is the difference. Ignoring the sigma-delta's start-up transient (first five or six rows), you see that the test signal is attenuated by the filter, as it ought to be. A better filter would suppress it much more, of course.

The response to

0
0
0
0
0
0
0
0
0
0
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0.0001
-0.0001
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

is

filteredxin, filteredsdout, filteredsdout-filteredxin
0.0000000000000000E+0000, 1.3871975923507307E-0006, 1.3871975923507307E-0006
0.0000000000000000E+0000, 1.1302344156405297E-0004, 1.1302344156405297E-0004
0.0000000000000000E+0000, 5.3509708818211266E-0004, 5.3509708818211266E-0004
0.0000000000000000E+0000, 3.9354213710396380E-0004, 3.9354213710396380E-0004
0.0000000000000000E+0000, 3.7598075842026901E-0005, 3.7598075842026901E-0005
0.0000000000000000E+0000, 1.1662588903504911E-0006, 1.1662588903504911E-0006
0.0000000000000000E+0000, -8.5223717860571924E-0008, -8.5223717860571924E-0008
0.0000000000000000E+0000, -1.3655982655791377E-0006, -1.3655982655791377E-0006
0.0000000000000000E+0000, 1.1397454073858171E-0006, 1.1397454073858171E-0006
0.0000000000000000E+0000, 3.4720716968195120E-0007, 3.4720716968195120E-0007
1.7464703828089682E-0009, 3.5426019451278989E-0007, 3.5251372412998093E-0007
7.2931490249413825E-0007, -2.0171010106651011E-0006, -2.7464159131592393E-0006
1.2466080307652718E-0005, 1.6048922468314686E-0005, 3.5828421606619680E-0006
3.0505051042129620E-0005, 2.8378557672681382E-0005, -2.1264933694482385E-0006
3.5412919835702336E-0006, 4.6261141761760882E-0006, 1.0848221926058547E-0006
2.6725126713711564E-0006, 2.1618001895262751E-0006, -5.1071248184488136E-0007
-2.5156334646631315E-0006, -1.7940171943564565E-0006, 7.2161627030667500E-0007
2.5156461695703634E-0006, 1.0826830916244035E-0006, -1.4329630779459599E-0006
-2.5156461542155090E-0006, -9.9007559128949652E-0007, 1.5255705629260125E-0006
2.5156461541612640E-0006, 1.6917725318421617E-0006, -8.2387362231910234E-0007
-2.5156461541610873E-0006, -2.0153661210997598E-0006, 5.0028003306132751E-0007
2.5156461541610091E-0006, 1.0361042797057962E-0006, -1.4795418744552129E-0006
-2.5156461541610892E-0006, -2.2631956397844988E-0006, 2.5245051437659040E-0007
2.5156461541614331E-0006, 4.8025963934605898E-0006, 2.2869502392991567E-0006
-2.5156461541616575E-0006, -4.4919644395235991E-0006, -1.9763182853619416E-0006
2.5156461541616050E-0006, 2.4108672889155969E-0006, -1.0477886524600815E-0007
-2.5156461541616829E-0006, -2.9304071844649116E-0006, -4.1476103030322860E-0007
2.5156461541620353E-0006, 5.2436538737765659E-0006, 2.7280077196145306E-0006
-2.5156461541626452E-0006, -5.5433708254781777E-0006, -3.0277246713155325E-0006
2.5156461541632415E-0006, 4.3617894789349521E-0006, 1.8461433247717106E-0006
-2.5173926245461729E-0006, -2.6516463904613374E-0006, -1.3425376591516449E-0007
1.7863312516692010E-0006, 2.0721603561923985E-0006, 2.8582910452319742E-0007
-1.4981726461815980E-0005, -1.6965983654415595E-0005, -1.9842571925996150E-0006
-2.7989404887966761E-0005, -2.6448192535610815E-0005, 1.5412123523559458E-0006
-6.0569381377326972E-0006, -6.7165306845140549E-0006, -6.5959254678135768E-0007
-1.5686651720923971E-0007, 1.6686470232230022E-0006, 1.8255135404322419E-0006
-1.2689497673121219E-0011, -2.4904427675664920E-0006, -2.4904300780688188E-0006
-1.5410144948296844E-0014, 3.5349306415355386E-0007, 3.5349307956369881E-0007
5.3939058081153846E-0017, 1.1522728939894478E-0006, 1.1522728939355087E-0006
1.5720931501039814E-0018, 3.5370767648146284E-0007, 3.5370767647989075E-0007
-6.5052130349130266E-0019, -1.2111728153740842E-0006, -1.2111728153734336E-0006
-1.0299920638612292E-0018, 3.3185143166747366E-0007, 3.3185143166850365E-0007
2.1141942363467336E-0018, -5.1899193209692385E-0007, -5.1899193209903804E-0007
-4.1470733097570545E-0018, 7.7077105942180424E-0007, 7.7077105942595131E-0007
6.0444271116066872E-0018, 4.1425494856639489E-0007, 4.1425494856035046E-0007
-5.2041704279304213E-0018, -1.5953335577023608E-0006, -1.5953335576971567E-0006
4.8246996675604947E-0018, 8.2459855121896908E-0007, 8.2459855121414438E-0007
-8.1586213479534209E-0018, -6.9668162439029402E-0007, -6.9668162438213540E-0007
1.1546753136970622E-0017, 4.9184291839310390E-0007, 4.9184291838155715E-0007
-1.1058862159352145E-0017, -2.2171351332644917E-0007, -2.2171351331539031E-0007
1.7464703894502168E-0009, -9.2504834015016968E-0008, -9.4251304404467185E-0008
7.2931490249252256E-0007, 2.1810948567235755E-0006, 1.4517799542310529E-0006
1.2466080307658404E-0005, 9.8743441654391972E-0006, -2.5917361422192063E-0006
3.0505051042114227E-0005, 3.3050266388556793E-0005, 2.5452153464425656E-0006
3.5412919835794033E-0006, 2.2152668606167936E-0006, -1.3260251229626097E-0006
2.6725126713793117E-0006, 3.0318116301941700E-0006, 3.5929895881485832E-0007
-2.5156334646765459E-0006, -1.7057005337051123E-0006, 8.0993293097143359E-0007
2.5156461695888905E-0006, 1.3777925573776884E-0006, -1.1378536122112022E-0006
-2.5156461542580550E-0006, -3.5872558541427679E-0006, -1.0716096998847130E-0006
2.5156461542207584E-0006, 5.4283504695717966E-0006, 2.9127043153510382E-0006
-2.5156461542046038E-0006, -4.6131852116104710E-0006, -2.0975390574058672E-0006
2.5156461541734872E-0006, 4.2129080313202394E-0006, 1.6972618771467522E-0006
-2.5156461541554352E-0006, -5.3392474015367952E-0006, -2.8236012473813600E-0006
2.5156461541570073E-0006, 5.0054282425548990E-0006, 2.4897820883978917E-0006
-2.5156461541533210E-0006, -3.0201875560464941E-0006, -5.0454140189317310E-0007
2.5156461541361906E-0006, 2.0734166810143506E-0006, -4.4222947312184003E-0007
-2.5156461541344017E-0006, -2.4631522492768454E-0006, 5.2493904857556315E-0008
2.5156461541427501E-0006, 2.9235717349251900E-0006, 4.0792558078243989E-0007
-2.5156461541351607E-0006, -3.1391325663321368E-0006, -6.2348641219697612E-0007
2.5156461541255655E-0006, 3.8098038146472391E-0006, 1.2941576605216736E-0006
-2.5173926245223611E-0006, -5.3736033720497289E-0006, -2.8562107475273678E-0006
1.7863312516795552E-0006, 4.1942786026538670E-0006, 2.4079473509743118E-0006
-1.4981726461848967E-0005, -1.5971336623010757E-0005, -9.8961016116178979E-0007
-2.7989404887947625E-0005, -2.7579858681292535E-0005, 4.0954620665508952E-0007
-6.0569381377373593E-0006, -5.2463889730347546E-0006, 8.1054916470260467E-0007
-1.5686651719969873E-0007, -2.4801101758953337E-0006, -2.3232436586956349E-0006
-1.2689486072157974E-0011, 2.6338618965837668E-0006, 2.6338745860698390E-0006
-1.5443755215643895E-0014, -2.2029148496471862E-0006, -2.2029148342034310E-0006
9.0422461185291070E-0017, 2.1993336645209638E-0006, 2.1993336644305413E-0006
-4.5753331678888287E-0017, -9.3229539999128974E-0007, -9.3229539994553641E-0007
2.1358782797964437E-0017, 4.7215019094437594E-0007, 4.7215019092301715E-0007
5.8546917314217239E-0018, -9.3739368622891561E-0007, -9.3739368623477030E-0007
3.2634485391813683E-0017, -4.6175407675264069E-0007, -4.6175407678527517E-0007
-6.6786853825107073E-0017, 1.6801122271203894E-0006, 1.6801122271871763E-0006
1.9298798670241979E-0017, -7.9225917914982347E-0007, -7.9225917916912227E-0007
4.9548039282587553E-0017, 9.1496867327123255E-0007, 9.1496867322168451E-0007
-2.8839777788114418E-0017, -2.1147628359585724E-0006, -2.1147628359297326E-0006
-4.6078592330633938E-0018, 9.0872223523774665E-0007, 9.0872223524235450E-0007
-7.4484689249754155E-0017, -4.5514109103805822E-0007, -4.5514109096357353E-0007
1.6431083924017820E-0016, 3.1000294598015898E-0006, 3.1000294596372790E-0006

I've taken the liberty to add ten leading zeroes because of the start-up transient of the sigma-delta.
 
Graphically the response to your second signal looks like this. Red curve: path with only filtering, green: path that includes the sigma-delta.
 

Attachments

  • responsetoSvitjod2.png
    responsetoSvitjod2.png
    32.5 KB · Views: 194
Sigma Delta haters, come to my rescue!!

(...)

If it's no OS involved, then it's clearly inferior to a multi bit DAC, that one would just give an output of exactly one sample. That is, with no output filter - digital or analog - a pure NOS, so to speak.

(...)

If you can show that it will come up with something that look remotely like a NOS multi bit DAC, yes then I will truly be a Sigma Delta fan.

Btw, I'm actually in the process of building a PCM1794 DAC in mono mode and with optional NOS operation.

I was under the impression that this thread was about testing one specific hypothesis of yours, namely that an N times oversampled M-bits sigma-delta doesn't respond to signals smaller than (2^-M)/N times full scale. I believe that this hypothesis has already been proven wrong. For all test signals, the sigma-delta behaved the same as the linear filter except for some noise.

If you just want a list of disadvantages of sigma-delta modulators, I can easily give you some, as I'm sure xx3stksm can. Of course there are also advantages, namely reduced matching requirements and larger transition band of the analogue post filter compared to a NOS DAC.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.