M. Nagahara and Y. Yamamoto,

Frequency-Domain Min-Max Optimization of Noise-Shaping Delta-Sigma Modulators,

*IEEE Transactions on Signal Processing*, 2012.
(Download PDF)

See also our related paper:

M. Nagahara,

Min-max design of FIR digital filters by semidefinite programming,

*Applications of Digital Signal Processing*, pp. 193-210,
InTech, Nov. 2011. (Download PDF)

NTF_MINMAX.m

NTF_MINMAX_MB.m

YALMIP and SeDuMi are free softwares which can be downloaded via

YALMIP

SeDuMi

We have made sure that the codes run with no errors on MATLAB

On older versions of MATLAB, the codes might have unexpected errors.

**[ntf,R]=NTF_MINMAX(order,OSR,Hinf,f0,zf)**

**order**

:The order of NTF which is an FIR filter. The default value is

**order=32**

.**OSR**

:The over sampling ratio. The default value is

**OSR=32**

.**Hinf**

:The maximum out-of-band gain of NTF. The default value is

**Hinf=1.5**

.**f0**

:The normalized center frequency of the modulator.

**f0**

must be in [0,1/2).
The center frequency will be **2*pi*f0**

(rad/sec). The default value is **f0=0**

.**zf**

:The flag for assigning NTF zeros. If

**zf**

is **0**

, then
the design is executed without zero assignment.
Otherwise, zeros of the NTF to be optimized is assigned at the center frequency.
The default value is **zf=0**

.**ntf**

:The optimized NTF given as a zpk object.

**R**

:FIR filter coefficients of the optimized loop filter R(z).

**[ntf,R]=NTF_MINMAX_MB(order,OSR,Hinf,f,zf)**

**Arguments**

:**order**

The order of NTF which is an FIR filter. The default value is

.**order=32**

:**OSR**

The over sampling ratio. The default value is

.**OSR=32**

:**Hinf**

The maximum out-of-band gain of NTF. The default value is

.**Hinf=1.5**

:**f**

The vector of normalized center frequencies of the modulator.
The elements of

must be in [0,1/2).
The length of **f**

must be less than 4.
The center frequencies will be **f**

(rad/sec).
The default vector is **2*pi*f(i)**

.**f=[0,1/4]**

:**zf**

The flag for assigning NTF zeros. If

is **zf**

, then
the design is executed without zero assignment.
Otherwise, zeros of the NTF to be optimized is assigned at the center frequencies.
The default value is **0**

.**zf=0**

**Outputs**

:**ntf**

The optimized NTF given as a zpk object.

:**R**

FIR filter coefficients of the optimized loop filter R(z).

```
m=2; % The number of cascades
```

order=32;

OSR=32;

Hinf=1.5^(1/m);

f0=0;

zf=0;

[ntfm,R]=NTF_MINMAX(order,OSR,Hinf,f0,zf);

ntf=ntfm^m;

figure;bode(ntf); %Bode plot of NTF

```
order=32;
```

OSR=16;

Hinf=1.5;

f0=1/4;

zf=1;

[ntf,R]=NTF_MINMAX(order,OSR,Hinf,f0,zf);

figure;bode(ntf); %Bode plot of NTF

```
order=32;
```

OSR=64;

Hinf=1.5;

f=[1/8,1/4,3/8];

zf=1;

[ntf,R]=NTF_MINMAX(order,OSR,Hinf,f,zf);

figure;bode(ntf); %Bode plot of NTF