Continuous Time Delta Sigma Modulator

Libraries:
Mixed-Signal Blockset /
ADC /
Building Blocks
Description
The Continuous Time Delta Sigma Modulator block models an ADC based on continuous-time delta-sigma modulator using two different sets of architectures.
Cascade of integrators with feedback (CIFB)
Cascade of integrators with feed-forward (CIFF)
You can model a continuous-time DSM of orders from one to four. You can also use the block to design cascaded structures such as multistage noise shaping (MASH) and sturdy MASH (S-MASH).
Examples
This example shows how to model a Continuous Time Delta Sigma Modulator (CT DSM) based ADC using the Continuous Time Delta Sigma Modulator block from Mixed-Signal Blockset™.
CT DSMs are well suited for high bandwidth applications since they employ continuous time integrators. CT DSMs also possess inherent anti-aliasing property which can reduce system cost since such a system can do away with an anti-aliasing filter or use a less complicated anti-aliasing filter. Open the model thirdOrderCTDSM
which consists of the CT DSM block, FIR filter and the ADC AC Measurement block. The input sinusoid source is set to a frequency of 1 kHz.
open_system('thirdOrderCTDSM.slx')
The CT DSM block is configured as a third order Cascade of Integrators with FeedBack (CIFB) DSM. The system bandwidth is set to 10
kHz with an OSR of 64 and the number of quantizer levels is set to 16
. In the "Impairment" tab, you can set a finite gain for the integrator opamp and enable noise impairment. "Advanced" tab has parameters to set optimization settings for NTF synthesis as per Schreier's Delta-Sigma Toolbox, passband options i.e., lowpass and bandpass. There is also an option to set infinity norm H_inf
which is set to 1.9
. Run simulation and verify that the SNR is 116
dB with Effective Number Of Bits (ENOB) of 19
bits. You can increase infinity norm H_inf
to increase SNR and ENOB.
The simulation result below shows the input signal (Sine Wave) and the ADC output (FIR Decimation). The ADC output has the same amplitude as the input and is delayed due to the presence of Decimation filter.
Ports
Input
Analog input signal, specified as a scalar.
Data Types: double
Reset signal for Delta Sigma Modulator block, specified as a scalar.
Data Types: double
Output from the next stage. Use this port to feed the output back into the block when modeling a multistage DSM. If there is no feedback from the next stage, connect this port to the ground.
Use this port to build cascaded DSM structures such as MASH and S-MASH.
Data Types: double
Output
Digital output signal, returned as a scalar.
Data Types: fixed point
| single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
The output of the loop filter inside the delta-sigma modulator, returned as a scalar.
Data Types: fixed point
| single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
The output of the quantizer inside the delta-sigma modulator, returned as a scalar. If you do not use this port, connect it to a terminator.
If you do not use the feedback port, quantOut and dsmOut ports have the same values.
Use this port to build cascaded DSM structures such as MASH and S-MASH.
Data Types: fixed point
| single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
Parameters
Architecture of the delta-sigma modulator, specified as:
CIFB
— Cascade of feedback integratorsCIFF
— Cascade of feed-forward integrators
Programmatic Use
Block parameter:
dsmArchitecture |
Type: character vector |
Values:
CIFB | CIFF |
Default:
CIFB |
Order of the delta-sigma modulator. You can choose between orders one to four.
Programmatic Use
Block parameter:
dsmOrder |
Type: character vector |
Values:
1st order | 2nd order |
3rd order | 4th
order |
Default:
2nd order |
Input Parameters
Bandwidth of the delta-sigma modulator system, specified as a nonnegative real scalar.
Programmatic Use
Block parameter:
BandWidth |
Type: character vector |
Values: nonnegative real scalar |
Default:
1000 |
Ratio of the delta-sigma modulator sampling rate to the Nyquist rate, specified as a nonnegative real scalar. A high oversampling ratio results in a relaxed anti-aliasing filter and reduced in-band quantization noise.
Programmatic Use
Block parameter:
OSR |
Type: character vector |
Values: nonnegative real scalar |
Default:
64 |
Sampling frequency of the delta-sigma modulator. This read-only parameter is calculated from the System bandwidth and OSR parameters.
Programmatic Use
Block parameter:
SamplingFrequency |
Type: character vector |
Values: positive real scalar |
Default:
128e3 |
Number of quantizer levels in the delta-sigma modulator, specified as a positive real integer.
Programmatic Use
Block parameter:
NumberLevels |
Type: character vector |
Values: positive real scalar |
Default:
2 |
Range of the quantizer output in the delta-sigma modulator architecture, returned as a vector with real elements. This parameter is read-only.
Programmatic Use
Block parameter:
QuantizerOutput |
Type: character vector |
Values: real valued vector |
Default:
[-1;1] |
Use custom values for coefficients 'a', 'g', 'b', and 'c'.
Feedback coefficients from the quantizer or feed-forward coefficients to the quantizer, specified as a vector with real elements.
Dependencies
To enable this parameter, select the Use custom coefficient values parameter.
Programmatic Use
Block parameter:
a |
Type: character vector |
Values: real valued vector |
Default:
[0.5714 0.1601] |
Resonator coefficients, specified as a vector with real elements.
Dependencies
To enable this parameter, select the Use custom coefficient values parameter.
Programmatic Use
Block parameter:
g |
Type: character vector |
Values: real valued vector |
Default:
[0.0000] |
Feed-in coefficients from the modulator input to each integrator, specified as a vector with real elements.
Dependencies
To enable this parameter, select the Use custom coefficient values parameter.
Programmatic Use
Block parameter:
b |
Type: character vector |
Values: real valued vector |
Default:
[1.000 0.5714 0.1601] |
Integrator inter-stage coefficients, specified as a vector with real elements.
Dependencies
To enable this parameter, select the Use custom coefficient values parameter.
Programmatic Use
Block parameter:
c |
Type: character vector |
Values: real valued vector |
Default:
[1.0000 1.0000] |
Impairment
Open loop gain of the internal op-amp, specified as a positive real scalar. This parameter is used in the analysis of the noise transfer function (NTF). Ideal NTF assumes that the op-amp gain is infinite.
Programmatic Use
Block parameter:
OLgain |
Type: character vector |
Values: positive real scalar |
Default:
Inf |
Enable noise calculations in the delta-sigma modulator ADC.
Thermal noise density, specified in units of Vrms or dB/Hz.
When you specify the thermal noise in units of Vrms, the value of this parameter must be a nonnegative real scalar.
Dependencies
To enable this parameter, select the Enable Noise Impairment parameter.
Programmatic Use
Block parameter:
thermalNoiseValue |
Type: character vector |
Values: real scalar |
Default:
0.125 |
Reference noise to use for power calculations, specified as a positive real scalar in ohms.
Dependencies
To enable this parameter, select the Enable Noise Impairment parameter.
Programmatic Use
Block parameter:
refResistance |
Type: character vector |
Values: positive real scalar |
Default:
50 |
Corner frequency for flicker (1/f) noise, specified as a positive real scalar in Hz. At this frequency, the 1/f noise approximately equals the thermal noise.
Dependencies
To enable this parameter, select the Enable Noise Impairment parameter.
Programmatic Use
Block parameter:
fcorner |
Type: character vector |
Values: positive real scalar |
Default:
1000 |
Advanced
Method that the block uses to optimize the zeros in the NTF:
0
— Not optimized1
— Optimized2
— Optimized with at least one zero at the center of the band
Programmatic Use
Block parameter:
ntfOptim |
Type: character vector |
Values:
0 | 1 |
2 |
Default:
2 |
Type of passband of the delta-sigma modulator.
Programmatic Use
Block parameter:
passbandType |
Type: character vector |
Values:
Lowpass | Bandpass |
Default:
Lowpass |
Center frequency of the modulator, specified as a scalar in the range [0 0.5]. For a lowpass filter, the center frequency is zero.
Dependencies
To enable this parameter, set the Modulator passband
parameter to Bandpass
.
Programmatic Use
Block parameter:
centerFrequency |
Type: character vector |
Values: scalar in the range [0 0.5] |
Default:
0 |
Select this parameter to use custom values for H_inf. By default, this option is cleared.
Maximum out-of-band gain of the NTF.
Lee’s rule states that H_inf < 2 yields a stable modulator with a binary quantizer. Reducing H_inf increases the likelihood of success, but reduces the magnitude of the attenuation provided by the NTF and the theoretical resolution of the modulator.
Dependencies
To enable this parameter, select the Use custom value of H_inf parameter.
Programmatic Use
Block parameter:
Hinf |
Type: character vector |
Values: positive real scalar |
Default:
1.4 |
Note
You need a Control System Toolbox™ license to use the parameters in the Advanced tab.
More About
The block calculates the noise transfer function using the equation:
where L1 is the feedback path of the internal loop filter inside the DSM.
Ideal NTF assumes an infinite gain of the internal op-amp. Finite gain affects the NTF.
To synthesize continuous-time NTF, the block first synthesizes discrete-time NTF using [1]. It then calculates the continuous-time filter coefficients using the impulse invariance transformation of the loop filter.
The block calculates the signal transfer function using the equation:
where:
L0 is the feed forward path of the internal loop filter inside the DSM.
L1 is the feedback path of the internal loop filter inside the DSM.
References
[1] Delta Sigma Toolbox, Richard Schreier.
[2] Shanthi Pavan; Richard Schreier; Gabor C. Temes, Understanding Delta-Sigma Data Converters, second edition, IEEE Press, 2017.
Version History
Introduced in R2024b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)