**2. Preliminaries**

In this chapter, we frequently use notations in control systems. For readers who are not familiar to these, we here recall basic notations and facts of control systems used throughout the chapter. We also show MATLAB codes for better understanding.

On the other hand, suppose that we have a transfer function at first:

The first command defines the variable *z* of *Z*-transform with sampling time 1, and the second

Min-Max Design of FIR Digital Filters by Semidefinite Programming 195

*G*(*z*) = *z*2 + 2*z* + 1

To convert this to state-space matrices *A*, *B*, *C*, and *D*, use the command ss as follows:

*z*2 + 0.5*z* + 1

.

>> z=tf('z',1);

>> ss(Gz)

a =

b =

c =

d =

>> Gz=(z^2+2\*z+1)/(z^2+0.5\*z+1);

x1 x2

x1 -0.5 -1 x2 1 0

x1 x2 y1 1.5 0

Sampling time (seconds): 1

These outputs shows that the state-space matrices are given by

−0.5 −1 1 0 , *B* = 1 0

*G*(*z*) = *C*(*zI* − *A*)−1*B* + *D* =:

with sampling time 1. Note that the state-space representation in **Example 1** is *minimal* in that the state-space model describes the same input/output behavior with the minimum number of states. Such a system

We then introduce a useful notation, called *packed notation* (Vidyasagar, 1988), describing the

, *C* =

1.5 0

 *A B C D* (*z*).

, *D* = 1,

*A* =

is called *minimal realization* (Rugh, 1996).

transfer function from state-space matrices as

Discrete-time model.

u1 x1 1 x2 0

u1 y1 1

command defines the following transfer function:

Let us begin with a linear system G represented in the following *state-space equation* or *state-space representation* (Rugh, 1996):

$$\mathcal{G}: \begin{cases} \, \, \mathbf{x}[k+1] = A\mathbf{x}[k] + Bu[k], \\ \, \, \, y[k] = \mathbf{C}\mathbf{x}[k] + Du[k], \, \, k = 0, 1, 2, \dots \end{cases} \tag{1}$$

The nonnegative number *k* denotes the time index. The vector *x*[*k*] ∈ **R***n* is called the state vector, *u*[*k*] ∈ **R** is the input and *y*[*k*] ∈ **R** is the output of the system G. The matrices *A* ∈ **R***n*×*n*, *B* ∈ **R***n*×1, *C* ∈ **R**1×*n*, and *D* ∈ **R** are assumed to be static, that is, independent of the time index *k*. Then the *transfer function G*(*z*) of the system G is defined by

$$\mathcal{G}(z) := \mathcal{C}(zI - A)^{-1}B + D, \quad z \in \mathbb{C}.$$

The transfer function *G*(*z*) is a rational function of *z* of the form

$$G(z) = \frac{b\_n z^n + b\_{n-1} z^{n-1} + \dots + b\_1 z + b\_0}{z^n + a\_{n-1} z^{n-1} + \dots + a\_1 z + a\_0}.$$

Note that *G*(*z*) is the *Z*-transform of the impulse response {*g*[*k*]}∞ *k*=0 of the system G with the initial state *x*[0] = 0, that is,

$$G(z) = \sum\_{k=0}^{\infty} g[k]z^{-k} = D + \sum\_{k=1}^{\infty} CA^{k-1}Bz^{-k}.$$

To convert a state-space equation to its transfer function, one can use the above equations or the MATLAB command tf. On the other hand, to convert a transfer function to a state-space equation, one can use realization theory which provides a method to derive the state space matrices from a given transfer function (Rugh, 1996). An easy way to obtain the matrices is to use MATLAB or Scilab with the command ss.

**Example 1.** *We here show an example of MATLAB commands. First, we define state-space matrices:*

```
>A=[0,1;-1,-2]; B=[0;1]; C=[1,1]; D=0;
>G=ss(A,B,C,D,1);
```
*This defines a state-space (ss) representation of* G *with the state-space matrices*

$$A = \begin{bmatrix} 0 & 1 \\ -1 & -2 \end{bmatrix} \text{ , } B = \begin{bmatrix} 0 \\ 1 \end{bmatrix} \text{ , } \mathbf{C} = \begin{bmatrix} 1 \ 1 \end{bmatrix} \text{ , } D = 0.$$

*The last argument* 1 *of* ss *sets the sampling time to be 1.*

To obtain the transfer function *G*(*z*) = *C*(*zI* − *A*)−1*B* + *D*, we can use the command tf

```
>> tf(G)
Transfer function:
    z+1
z^2 + 2 z + 1
Sampling time (seconds): 1
```
On the other hand, suppose that we have a transfer function at first:

>> z=tf('z',1); >> Gz=(z^2+2\*z+1)/(z^2+0.5\*z+1);

2 Digital Signal Processing

Let us begin with a linear system G represented in the following *state-space equation* or

The nonnegative number *k* denotes the time index. The vector *x*[*k*] ∈ **R***n* is called the state vector, *u*[*k*] ∈ **R** is the input and *y*[*k*] ∈ **R** is the output of the system G. The matrices *A* ∈ **R***n*×*n*, *B* ∈ **R***n*×1, *C* ∈ **R**1×*n*, and *D* ∈ **R** are assumed to be static, that is, independent of the

*G*(*z*) := *C*(*zI* − *A*)−1*B* + *D*, *z* ∈ **C**.

*G*(*z*) = *bnzn* + *bn*−1*zn*−1 + ··· + *b*1*z* + *b*0

*g*[*k*]*z*−*k* = *D* +

To convert a state-space equation to its transfer function, one can use the above equations or the MATLAB command tf. On the other hand, to convert a transfer function to a state-space equation, one can use realization theory which provides a method to derive the state space matrices from a given transfer function (Rugh, 1996). An easy way to obtain the matrices is to

**Example 1.** *We here show an example of MATLAB commands. First, we define state-space matrices:*

To obtain the transfer function *G*(*z*) = *C*(*zI* − *A*)−1*B* + *D*, we can use the command tf

*zn* + *an*−1*zn*−1 + ··· + *a*1*z* + *a*0

∞ ∑ *k*=1

, *C* =

1 1

, *D* = 0.

*CAk*−1*Bz*−*k*

*y*[*k*] = *Cx*[*k*] + *Du*[*k*], *k* = 0, 1, 2, . . . . (1)

.

.

*k*=0 of the system G with the

*x*[*k* + 1] = *Ax*[*k*] + *Bu*[*k*],

time index *k*. Then the *transfer function G*(*z*) of the system G is defined by

The transfer function *G*(*z*) is a rational function of *z* of the form

Note that *G*(*z*) is the *Z*-transform of the impulse response {*g*[*k*]}∞

∞ ∑ *k*=0

*This defines a state-space (ss) representation of* G *with the state-space matrices*

 , *B* = 0 1

 0 1 −1 −2

*G*(*z*) =

use MATLAB or Scilab with the command ss.

>A=[0,1;-1,-2]; B=[0;1]; C=[1,1]; D=0;

*A* =

*The last argument* 1 *of* ss *sets the sampling time to be 1.*

*state-space representation* (Rugh, 1996):

initial state *x*[0] = 0, that is,

>G=ss(A,B,C,D,1);

Transfer function: z+1 ------------ z^2 + 2 z + 1

Sampling time (seconds): 1

>> tf(G)

G :

The first command defines the variable *z* of *Z*-transform with sampling time 1, and the second command defines the following transfer function:

$$G(z) = \frac{z^2 + 2z + 1}{z^2 + 0.5z + 1}.$$

To convert this to state-space matrices *A*, *B*, *C*, and *D*, use the command ss as follows:

```
>> ss(Gz)
a =
        x1 x2
  x1 -0.5 -1
  x2 1 0
b =
      u1
  x1 1
  x2 0
c =
       x1 x2
  y1 1.5 0
d =
      u1
  y1 1
Sampling time (seconds): 1
Discrete-time model.
```
These outputs shows that the state-space matrices are given by

$$A = \begin{bmatrix} -0.5 \ -1 \\ 1 \ \ 0 \end{bmatrix}, B = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \text{ C} = \begin{bmatrix} 1.5 \ 0 \end{bmatrix}, \text{ D} = 1.$$

with sampling time 1.

Note that the state-space representation in **Example 1** is *minimal* in that the state-space model describes the same input/output behavior with the minimum number of states. Such a system is called *minimal realization* (Rugh, 1996).

We then introduce a useful notation, called *packed notation* (Vidyasagar, 1988), describing the transfer function from state-space matrices as

$$G(z) = \mathbb{C}(zI - A)^{-1}B + D =: \left[\frac{A \mid B}{\mathbb{C} \mid D}\right](z).$$

*H*∞ optimization is thus minimization of the maximum value of a transfer function. This leads to robustness against uncertainty in the frequency domain. Moreover, it is known that the *H*∞

Min-Max Design of FIR Digital Filters by Semidefinite Programming 197

*u*∈2 *u* 0

G*u*2 *u*2 ,

norm of a transfer function *G*(*z*) is equivalent to the 2*-induced norm* of G, that is,

*u*2 :=

where *u*2 is the 2 norm of *u*:

**3.** *H*∞ **Design problems of FIR digital filters**

using the *H*∞ norm defined in the previous section.

(Yamamoto et al., 2003). The problem is formulated as follows:

(*P* − *Q*)*W*∞ = max

The procedure to solve this problem is shown in Section 4.

**3.1 FIR approximation of IIR filters**

*response) filter Q*(*z*) *which minimizes*

*where W is a given stable weighting function.*

signals.

*G*∞ = G := sup

 ∞ ∑ *n*=0

The *H*∞ optimization is minimization of the system gain when the worst case input is applied. This fact implies that the *H*∞ optimization leads to robustness against uncertainty in input

In this section, we consider two fundamental problems in signal processing: filter approximation and inverse filtering. The problems are formulated as *H*∞ optimization by

The first problem we consider is *approximation*. In signal processing, there are a number of design methods for IIR (infinite impulse response) filters, e.g., Butterworth, Chebyshev, Elliptic, and so on (Oppenheim & Schafer, 2009). In general, to achieve a given characteristic, IIR filters require fewer memory elements, i.e., *z*−1, than FIR (finite impulse response) filters. However, IIR filters may have a problem of instability since they have feedbacks in their circuits, and hence, we prefer an FIR filter to an IIR one in implementation. For this reason, we employ FIR approximation of a given IIR filter. This problem has been widely studied (Oppenheim & Schafer, 2009). Many of them are formulated by *H*2 optimization; they aim at minimizing the average error between a given IIR filter and the FIR filter to be designed. This optimal filter works well *averagely*, but in the worst case, the filter may lead a large error. To guarantee the worst case performance, *H*∞ optimization is applied to this problem

**Problem 1** (FIR approximation of IIR filters)**.** *Given an IIR filter P*(*z*)*, find an FIR (finite impulse*

*P*(*ejω*) − *Q*(*ejω*)

*W*(*ejω*) ,

*ω*∈[0,*π*]

Fig. 1. The *H*∞ norm *G*∞ is the maximum gain of the frequency response *G*(*ejω*).

By the packed notation, the following formulae are often used in this chapter:

$$
\begin{aligned}
\left[\frac{A\_1 \mid B\_1}{C\_1 \mid D\_1}\right] \times \left[\frac{A\_2 \mid B\_2}{C\_2 \mid D\_2}\right] &= \left[\frac{A\_2 \mid 0}{D\_1 C\_2 \mid A\_1} \frac{B\_2}{B\_1 D\_2}\right] \\
\left[\frac{A\_1 \mid B\_1}{C\_1 \mid D\_1}\right] \pm \left[\frac{A\_2 \mid B\_2}{C\_2 \mid D\_2}\right] &= \left[\frac{A\_1 \mid 0}{0 \mid A\_2} \frac{B\_1}{\pm B\_2}\right] \\
\left[\frac{A\_1 \mid B\_1}{C\_1 \mid C\_2}\right] \pm \left[\frac{B\_2}{C\_1 \mid C\_2}\right] &= \left[\frac{A\_1 \mid B\_1}{C\_1 \mid C\_2}\right] \\
\end{aligned}
$$

Next, we define *stability* of linear systems. The state-space system G in (1) is said to be *stable* if the eigenvalues *λ*1,..., *λn* of the matrix *A* lie in the open unit circle **D** = {*z* ∈ **C** : |*z*| < 1}. Assume that the transfer function *G*(*z*) is irreducible. Then G is stable if and only if the poles of the transfer function *G*(*z*) lie in **D**. To compute the eigenvalues of *A* in MATLAB, use the command eig(A), and for the poles of *G*(*z*) use pole(Gz). The *H*∞ *norm* of a stable transfer function *G*(*z*) is defined by

$$\|G\|\_{\infty} := \max\_{\omega \in [0,\pi]} \left| G(e^{j\omega}) \right|.$$

This is the maximum gain of the frequency response *G*(*ejω*) of G as shown in Fig. 1. The MATLAB code to compute the *H*∞ norm of a transfer function is given as follows:

```
>> z=tf('z',1);
>> Gz=(z-1)/(z^2-0.5*z);
>> norm(Gz,inf)
ans =
    1.3333
```
This result shows that for the stable transfer function

$$G(z) = \frac{z - 1}{z^2 - 0.5z},$$

the *H*∞ norm is given by *G*∞ ≈ 1.3333.

*H*∞ optimization is thus minimization of the maximum value of a transfer function. This leads to robustness against uncertainty in the frequency domain. Moreover, it is known that the *H*∞ norm of a transfer function *G*(*z*) is equivalent to the 2*-induced norm* of G, that is,

$$\|\|G\|\|\_{\infty} = \|\|\mathcal{G}\|\| := \sup\_{\substack{\boldsymbol{\mu} \in \ell^2 \\ \boldsymbol{\mu} \neq \boldsymbol{0}}} \frac{\|\|\mathcal{G}\boldsymbol{\mu}\|\_2}{\|\boldsymbol{\mu}\|\_2} \boldsymbol{\mu}$$

where *u*2 is the 2 norm of *u*:

4 Digital Signal Processing

0 *π*

 =

 =

Next, we define *stability* of linear systems. The state-space system G in (1) is said to be *stable* if the eigenvalues *λ*1,..., *λn* of the matrix *A* lie in the open unit circle **D** = {*z* ∈ **C** : |*z*| < 1}. Assume that the transfer function *G*(*z*) is irreducible. Then G is stable if and only if the poles of the transfer function *G*(*z*) lie in **D**. To compute the eigenvalues of *A* in MATLAB, use the

*ω*∈[0,*π*]

This is the maximum gain of the frequency response *G*(*ejω*) of G as shown in Fig. 1. The

*G*(*z*) = *z* − 1

*z*2 − 0.5*z*

,

 *G*(*ejω*) .

Fig. 1. The *H*∞ norm *G*∞ is the maximum gain of the frequency response *G*(*ejω*).

By the packed notation, the following formulae are often used in this chapter:

 *A*2 *B*2 *C*2 *D*2

 *A*2 *B*2 *C*2 *D*2

*G*∞ := max

MATLAB code to compute the *H*∞ norm of a transfer function is given as follows:

*ω*

 ,

 .

*A*2 0 *B*2 *B*1*C*2 *A*1 *B*1*D*2 *D*1*C*2 *C*1 *D*1*D*2

*A*1 0 *B*1 0 *A*2 ±*B*2 *C*1 *C*2 *D*1 ± *D*2

*G*∞

 *G*(*ejω*)

 *A*1 *B*1 *C*1 *D*1

 *A*1 *B*1 *C*1 *D*1  ×

 ±

command eig(A), and for the poles of *G*(*z*) use pole(Gz). The *H*∞ *norm* of a stable transfer function *G*(*z*) is defined by

This result shows that for the stable transfer function

the *H*∞ norm is given by *G*∞ ≈ 1.3333.

>> z=tf('z',1);

>> norm(Gz,inf)

1.3333

ans =

>> Gz=(z-1)/(z^2-0.5\*z);

$$\|\|u\|\|\_{2} := \left(\sum\_{n=0}^{\infty} \left|\mu[k]\right|^{2}\right)^{1/2}.$$

The *H*∞ optimization is minimization of the system gain when the worst case input is applied. This fact implies that the *H*∞ optimization leads to robustness against uncertainty in input signals.


**Acknowledgements**

The authors thank the Research Unit of Noxious Chemistry and Environment Engineering (RUNOCHEE) and the Yaoundé-Bielefeld Graduate School Natural Products with Antiparasite and Antibacterial Activity (YaBiNaPA) project for all their support and facilities.


**4. Traditional uses**

Extensive use of *A. marmelos* has been found in Ayurveda and traditional medicine system. In Ayurveda, the ripe fruit, which is acrid, bitter, and sweet, removes vatha and kapha, and it is good for the heart. Unani said that the ripe fruit is hot and dry; tonic, restorative, astringent, laxative; good for the heart and the brain; bad for the liver and chest [16, 18]. The unripe fruit is oily bitter, acrid, sour, tasty but difficult to digest, appetizer, binding cures dysentery, removes pain. The oil is hot and cures vatha. According to Siddha, *A. marmelos* has bitter, astringent taste, hot potency, pungent, bioavailability and reduces Vatha, Pitha, and Kapha dosha. The plant leaves can be used as an analgesic and antifungal agent [19]. Bael leaves are very useful for the treatment of asthma, hepatitis, hypogllcemia, and febrifuge. It has been also traditionally utilized for preparing medicinal mixes for numerous diseases or disorders. *A. marmelos* leaf powder may be used in the treatment of bowel syndrome [20]. It is used as a remedial measure in the treatment of beriberi [21]. *A. marmelos* leaf essential oil is reported to show various therapeutic actions [22]. The flower of *A. marmelos* has antiseptic properties and can be used as an astringent. In Thailand, the immature leaves and shoots of *A. marmelos* plant are consumed, whereas young leaves and shoots are consumed in Indonesia [23]. Flower is also used in epilepsy [24]. Marmala water, made from flower, is found helpful in catering conjunctivitis [25]. *A. marmelos* flower extract has been tested for wound-healing properties [24]. It is reported that mRNA expression has been

*Medicinal Uses with Immense Economic Potential and Nutritional Properties… DOI: http://dx.doi.org/10.5772/intechopen.102876*

increased by inhibition of nitric oxide, the release of prostaglandin E2 (PGE2), thus increasing wound healing in rats [26]. The roots of *A. marmelos* have been used to cure dysentery, colitis, flatulence, and fever. So, in Chyavanprash, its roots are widely used [27]. In melancholia, heart palpitation, and intermittent fever, the decoction of root and bark is used [28–30]. Root bark may be used as a fish poison and fever treatment [31]. *A. marmelos* fruit extract is very helpful in thte treatment of thyroid. During pregnancy to prevent vomiting, it is found very helpful when it is taken with rice water in boiling conditions. In abscess curing, pulp powder of unripe fruit is very helpful to cure abscess [27]. On heating, sugar is produced from starch present in unripe fruit, then the fruit extract is added with hot water and anesi and strained, the extract found is useful in dysentery. Fruit pulp in milk mixed with sugar is very helpful in the treatment of urinogenital disorders [7, 21]. *A. marmelos* fruits may be used as an antiscorbutic and stomatic agent, and it may cure diseases such as intestinal ulcer, gonorrhea, chronic constipation, and indigestion [21]. Mustard oil and powdered fruit in the ratio 2:1 are used in southern Chattisgarh in burn treatment [1]. Ripe fruit juice extract helps to cure chronic gastrointestinal disorder, piles treatment, and rectum inflammation, alongwith it reduces blood sugar levels owing to its bitter flavor [32, 33]. There is a great advantage of *A. marmelos* and its various parts that it can be preserved only by drying means; there are no chemicals are used alongwith and no costs are there to preserve for long time; really this advantage is profitable for the production of its processed food and medicines. In Thailand, it has been observed that dried *A. marmelos* leaf and fruit pulp are packed in tea bags and preserved in syrup for the further use in traditional preparation of desserts such as cake, juice, squash, nectar, jam, syrup, etc. [34]. *A. marmelos* plant acts as air purifier by absorbing harmful poisonous gas from atmosphere, making it inert/neutral and thus removing poisonous property. This is not only helps to reduce pollution, but also it clears the toxic effects and provides a fresh and healthy environment. As compared with other plants, *A. marmelos* can release higher amount of O2 in the presence of sunlight, and plant is included in a category of "Fragrant" species because it can neutralize bad odors in air by deodorization process [32]. The unripe fruit yields yellow dye and is used for tanning calico and silk fabrics by textile industry [35]. This advantage is makes it more important and profitable for industry.