Add analysis about pure zeros/poles
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2020-11-12 jeu. 10:44 -->
|
||||
<!-- 2020-12-11 ven. 14:05 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Complementary Filters Shaping Using \(\mathcal{H}_\infty\) Synthesis - Matlab Computation</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
@@ -30,29 +30,42 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org8213c74">1. H-Infinity synthesis of complementary filters</a>
|
||||
<li><a href="#orga86008b">1. H-Infinity synthesis of complementary filters</a>
|
||||
<ul>
|
||||
<li><a href="#org106a9c7">1.1. Synthesis Architecture</a></li>
|
||||
<li><a href="#org986f54a">1.2. Design of Weighting Function</a></li>
|
||||
<li><a href="#orge3bcbcd">1.3. H-Infinity Synthesis</a></li>
|
||||
<li><a href="#org93a0167">1.4. Obtained Complementary Filters</a></li>
|
||||
<li><a href="#orga8d0882">1.1. Synthesis Architecture</a></li>
|
||||
<li><a href="#orgf309349">1.2. Design of Weighting Function</a></li>
|
||||
<li><a href="#org3d519e3">1.3. H-Infinity Synthesis</a></li>
|
||||
<li><a href="#org42911cd">1.4. Obtained Complementary Filters</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org2f5413b">2. Generating 3 complementary filters</a>
|
||||
<li><a href="#org1cd882b">2. Generating 3 complementary filters</a>
|
||||
<ul>
|
||||
<li><a href="#org180c831">2.1. Theory</a></li>
|
||||
<li><a href="#orgb4c7909">2.2. Weights</a></li>
|
||||
<li><a href="#org5a36c59">2.3. H-Infinity Synthesis</a></li>
|
||||
<li><a href="#orgf8d8907">2.4. Obtained Complementary Filters</a></li>
|
||||
<li><a href="#org201b962">2.1. Theory</a></li>
|
||||
<li><a href="#orgbb81a3a">2.2. Weights</a></li>
|
||||
<li><a href="#orgc782a41">2.3. H-Infinity Synthesis</a></li>
|
||||
<li><a href="#orgbe6c26a">2.4. Obtained Complementary Filters</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org1236499">3. Implement complementary filters for LIGO</a>
|
||||
<li><a href="#orgfb4a473">3. Implement complementary filters for LIGO</a>
|
||||
<ul>
|
||||
<li><a href="#org2d8dbcc">3.1. Specifications</a></li>
|
||||
<li><a href="#orga974b40">3.2. FIR Filter</a></li>
|
||||
<li><a href="#org33657ff">3.3. Weights</a></li>
|
||||
<li><a href="#orgb74a3c5">3.4. H-Infinity Synthesis</a></li>
|
||||
<li><a href="#org8b29f2c">3.5. Compare FIR and H-Infinity Filters</a></li>
|
||||
<li><a href="#org0a64590">3.1. Specifications</a></li>
|
||||
<li><a href="#org5187f2d">3.2. FIR Filter</a></li>
|
||||
<li><a href="#org6e83a71">3.3. Weights</a></li>
|
||||
<li><a href="#org56349cf">3.4. H-Infinity Synthesis</a></li>
|
||||
<li><a href="#org3ef818f">3.5. Compare FIR and H-Infinity Filters</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org6fa1123">4. Alternative Synthesis</a>
|
||||
<ul>
|
||||
<li><a href="#org1bb8ee7">4.1. Two generalized plants</a></li>
|
||||
<li><a href="#orga117463">4.2. Shaping the Low pass filter or the high pass filter?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgf082879">5. Impose a positive slope at DC or a negative slope at infinite frequency</a>
|
||||
<ul>
|
||||
<li><a href="#org96df1d1">5.1. Manually shift zeros to the origin after synthesis</a></li>
|
||||
<li><a href="#org6b92ce0">5.2. Imposing a positive slope at DC during the synthesis phase</a></li>
|
||||
<li><a href="#org71e3235">5.3. Imposing a negative slope at infinity frequency during the synthesis phase</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -77,25 +90,25 @@ To achieve this, the sensors included in the filter should complement one anothe
|
||||
This document is divided into several sections:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>in section <a href="#org181592e">1</a>, the \(\mathcal{H}_\infty\) synthesis is used for generating two complementary filters</li>
|
||||
<li>in section <a href="#org670207e">2</a>, a method using the \(\mathcal{H}_\infty\) synthesis is proposed to shape three of more complementary filters</li>
|
||||
<li>in section <a href="#org3725bd2">3</a>, the \(\mathcal{H}_\infty\) synthesis is used and compared with FIR complementary filters used for LIGO</li>
|
||||
<li>in section <a href="#orge265c61">1</a>, the \(\mathcal{H}_\infty\) synthesis is used for generating two complementary filters</li>
|
||||
<li>in section <a href="#org0f5d922">2</a>, a method using the \(\mathcal{H}_\infty\) synthesis is proposed to shape three of more complementary filters</li>
|
||||
<li>in section <a href="#org2c84916">3</a>, the \(\mathcal{H}_\infty\) synthesis is used and compared with FIR complementary filters used for LIGO</li>
|
||||
</ul>
|
||||
|
||||
<div class="note" id="orgf9dc18e">
|
||||
<div class="note" id="org9abbfdc">
|
||||
<p>
|
||||
Add the Matlab code use to obtain the results presented in the paper are accessible <a href="matlab.zip">here</a> and presented below.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8213c74" class="outline-2">
|
||||
<h2 id="org8213c74"><span class="section-number-2">1</span> H-Infinity synthesis of complementary filters</h2>
|
||||
<div id="outline-container-orga86008b" class="outline-2">
|
||||
<h2 id="orga86008b"><span class="section-number-2">1</span> H-Infinity synthesis of complementary filters</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
<a id="org181592e"></a>
|
||||
<a id="orge265c61"></a>
|
||||
</p>
|
||||
<div class="note" id="orgfba238b">
|
||||
<div class="note" id="org7b6c965">
|
||||
<p>
|
||||
The Matlab file corresponding to this section is accessible <a href="matlab/h_inf_synthesis_complementary_filters.m">here</a>.
|
||||
</p>
|
||||
@@ -103,8 +116,8 @@ The Matlab file corresponding to this section is accessible <a href="matlab/h_in
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org106a9c7" class="outline-3">
|
||||
<h3 id="org106a9c7"><span class="section-number-3">1.1</span> Synthesis Architecture</h3>
|
||||
<div id="outline-container-orga8d0882" class="outline-3">
|
||||
<h3 id="orga8d0882"><span class="section-number-3">1.1</span> Synthesis Architecture</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
We here synthesize two complementary filters using the \(\mathcal{H}_\infty\) synthesis.
|
||||
@@ -112,18 +125,18 @@ The goal is to specify upper bounds on the norms of the two complementary filter
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In order to do so, we use the generalized plant shown on figure <a href="#orgb57e788">1</a> where \(W_1(s)\) and \(W_2(s)\) are weighting transfer functions that will be used to shape \(H_1(s)\) and \(H_2(s)\) respectively.
|
||||
In order to do so, we use the generalized plant shown on figure <a href="#orge741156">1</a> where \(W_1(s)\) and \(W_2(s)\) are weighting transfer functions that will be used to shape \(H_1(s)\) and \(H_2(s)\) respectively.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgb57e788" class="figure">
|
||||
<div id="orge741156" class="figure">
|
||||
<p><img src="figs-tikz/h_infinity_robust_fusion.png" alt="h_infinity_robust_fusion.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>\(\mathcal{H}_\infty\) synthesis of the complementary filters</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The \(\mathcal{H}_\infty\) synthesis applied on this generalized plant will give a transfer function \(H_2\) (figure <a href="#orgb57e788">1</a>) such that the \(\mathcal{H}_\infty\) norm of the transfer function from \(w\) to \([z_1,\ z_2]\) is less than one:
|
||||
The \(\mathcal{H}_\infty\) synthesis applied on this generalized plant will give a transfer function \(H_2\) (figure <a href="#orge741156">1</a>) such that the \(\mathcal{H}_\infty\) norm of the transfer function from \(w\) to \([z_1,\ z_2]\) is less than one:
|
||||
\[ \left\| \begin{array}{c} (1 - H_2(s)) W_1(s) \\ H_2(s) W_2(s) \end{array} \right\|_\infty < 1 \]
|
||||
</p>
|
||||
|
||||
@@ -143,8 +156,8 @@ We then see that \(W_1(s)\) and \(W_2(s)\) can be used to shape both \(H_1(s)\)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org986f54a" class="outline-3">
|
||||
<h3 id="org986f54a"><span class="section-number-3">1.2</span> Design of Weighting Function</h3>
|
||||
<div id="outline-container-orgf309349" class="outline-3">
|
||||
<h3 id="orgf309349"><span class="section-number-3">1.2</span> Design of Weighting Function</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
A formula is proposed to help the design of the weighting functions:
|
||||
@@ -168,14 +181,14 @@ The parameters permits to specify:
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The general shape of a weighting function generated using the formula is shown in figure <a href="#org5840815">2</a>.
|
||||
The general shape of a weighting function generated using the formula is shown in figure <a href="#org18f93a4">2</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org5840815" class="figure">
|
||||
<p><img src="figs-tikz/weight_formula.png" alt="weight_formula.png" />
|
||||
<div id="org18f93a4" class="figure">
|
||||
<p><img src="figs/weight_formula.png" alt="weight_formula.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Amplitude of the proposed formula for the weighting functions</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Gain of the Weighting Function formula</p>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
@@ -188,7 +201,7 @@ W2 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org518a313" class="figure">
|
||||
<div id="org54a46b0" class="figure">
|
||||
<p><img src="figs/weights_W1_W2.png" alt="weights_W1_W2.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Weights on the complementary filters \(W_1\) and \(W_2\) and the associated performance weights</p>
|
||||
@@ -196,8 +209,8 @@ W2 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge3bcbcd" class="outline-3">
|
||||
<h3 id="orge3bcbcd"><span class="section-number-3">1.3</span> H-Infinity Synthesis</h3>
|
||||
<div id="outline-container-org3d519e3" class="outline-3">
|
||||
<h3 id="org3d519e3"><span class="section-number-3">1.3</span> H-Infinity Synthesis</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<p>
|
||||
We define the generalized plant \(P\) on matlab.
|
||||
@@ -217,7 +230,7 @@ And we do the \(\mathcal{H}_\infty\) synthesis using the <code>hinfsyn</code> co
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="org819e288">
|
||||
<pre class="example" id="orgb213b31">
|
||||
[H2, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
Resetting value of Gamma min based on D_11, D_12, D_21 terms
|
||||
|
||||
@@ -251,7 +264,7 @@ Test bounds: 0.1000 < gamma <= 1050.0000
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
We then define the high pass filter \(H_1 = 1 - H_2\). The bode plot of both \(H_1\) and \(H_2\) is shown on figure <a href="#orgf63dab4">4</a>.
|
||||
We then define the high pass filter \(H_1 = 1 - H_2\). The bode plot of both \(H_1\) and \(H_2\) is shown on figure <a href="#orgc79ce80">4</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@@ -261,15 +274,15 @@ We then define the high pass filter \(H_1 = 1 - H_2\). The bode plot of both \(H
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org93a0167" class="outline-3">
|
||||
<h3 id="org93a0167"><span class="section-number-3">1.4</span> Obtained Complementary Filters</h3>
|
||||
<div id="outline-container-org42911cd" class="outline-3">
|
||||
<h3 id="org42911cd"><span class="section-number-3">1.4</span> Obtained Complementary Filters</h3>
|
||||
<div class="outline-text-3" id="text-1-4">
|
||||
<p>
|
||||
The obtained complementary filters are shown on figure <a href="#orgf63dab4">4</a>.
|
||||
The obtained complementary filters are shown on figure <a href="#orgc79ce80">4</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgf63dab4" class="figure">
|
||||
<div id="orgc79ce80" class="figure">
|
||||
<p><img src="figs/hinf_filters_results.png" alt="hinf_filters_results.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Obtained complementary filters using \(\mathcal{H}_\infty\) synthesis</p>
|
||||
@@ -278,13 +291,13 @@ The obtained complementary filters are shown on figure <a href="#orgf63dab4">4</
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2f5413b" class="outline-2">
|
||||
<h2 id="org2f5413b"><span class="section-number-2">2</span> Generating 3 complementary filters</h2>
|
||||
<div id="outline-container-org1cd882b" class="outline-2">
|
||||
<h2 id="org1cd882b"><span class="section-number-2">2</span> Generating 3 complementary filters</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
<a id="org670207e"></a>
|
||||
<a id="org0f5d922"></a>
|
||||
</p>
|
||||
<div class="note" id="org9dc9516">
|
||||
<div class="note" id="org7c35287">
|
||||
<p>
|
||||
The Matlab file corresponding to this section is accessible <a href="matlab/three_comp_filters.m">here</a>.
|
||||
</p>
|
||||
@@ -292,8 +305,8 @@ The Matlab file corresponding to this section is accessible <a href="matlab/thre
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org180c831" class="outline-3">
|
||||
<h3 id="org180c831"><span class="section-number-3">2.1</span> Theory</h3>
|
||||
<div id="outline-container-org201b962" class="outline-3">
|
||||
<h3 id="org201b962"><span class="section-number-3">2.1</span> Theory</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
We want:
|
||||
@@ -306,11 +319,11 @@ We want:
|
||||
\end{align*}
|
||||
|
||||
<p>
|
||||
For that, we use the \(\mathcal{H}_\infty\) synthesis with the architecture shown on figure <a href="#orga622494">5</a>.
|
||||
For that, we use the \(\mathcal{H}_\infty\) synthesis with the architecture shown on figure <a href="#org86ebebf">5</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orga622494" class="figure">
|
||||
<div id="org86ebebf" class="figure">
|
||||
<p><img src="figs-tikz/comp_filter_three_hinf.png" alt="comp_filter_three_hinf.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>Generalized architecture for generating 3 complementary filters</p>
|
||||
@@ -331,8 +344,8 @@ And thus if we choose \(H_1 = 1 - H_2 - H_3\) we have solved the problem.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb4c7909" class="outline-3">
|
||||
<h3 id="orgb4c7909"><span class="section-number-3">2.2</span> Weights</h3>
|
||||
<div id="outline-container-orgbb81a3a" class="outline-3">
|
||||
<h3 id="orgbb81a3a"><span class="section-number-3">2.2</span> Weights</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
First we define the weights.
|
||||
@@ -349,7 +362,7 @@ W3 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org9526a8b" class="figure">
|
||||
<div id="org6ef9224" class="figure">
|
||||
<p><img src="figs/three_weighting_functions.png" alt="three_weighting_functions.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Three weighting functions used for the \(\mathcal{H}_\infty\) synthesis of the complementary filters</p>
|
||||
@@ -357,8 +370,8 @@ W3 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5a36c59" class="outline-3">
|
||||
<h3 id="org5a36c59"><span class="section-number-3">2.3</span> H-Infinity Synthesis</h3>
|
||||
<div id="outline-container-orgc782a41" class="outline-3">
|
||||
<h3 id="orgc782a41"><span class="section-number-3">2.3</span> H-Infinity Synthesis</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
Then we create the generalized plant <code>P</code>.
|
||||
@@ -379,7 +392,7 @@ And we do the \(\mathcal{H}_\infty\) synthesis.
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="orgd289daa">
|
||||
<pre class="example" id="orga35c0a2">
|
||||
[H, ~, gamma, ~] = hinfsyn(P, 1, 2,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
Resetting value of Gamma min based on D_11, D_12, D_21 terms
|
||||
|
||||
@@ -414,8 +427,8 @@ Test bounds: 0.1000 < gamma <= 1050.0000
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf8d8907" class="outline-3">
|
||||
<h3 id="orgf8d8907"><span class="section-number-3">2.4</span> Obtained Complementary Filters</h3>
|
||||
<div id="outline-container-orgbe6c26a" class="outline-3">
|
||||
<h3 id="orgbe6c26a"><span class="section-number-3">2.4</span> Obtained Complementary Filters</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<p>
|
||||
The obtained filters are:
|
||||
@@ -428,7 +441,7 @@ H1 = 1 <span class="org-type">-</span> H2 <span class="org-type">-</span> H3;
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgf8995ee" class="figure">
|
||||
<div id="orga85736d" class="figure">
|
||||
<p><img src="figs/three_complementary_filters_results.png" alt="three_complementary_filters_results.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>The three complementary filters obtained after \(\mathcal{H}_\infty\) synthesis</p>
|
||||
@@ -437,13 +450,13 @@ H1 = 1 <span class="org-type">-</span> H2 <span class="org-type">-</span> H3;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1236499" class="outline-2">
|
||||
<h2 id="org1236499"><span class="section-number-2">3</span> Implement complementary filters for LIGO</h2>
|
||||
<div id="outline-container-orgfb4a473" class="outline-2">
|
||||
<h2 id="orgfb4a473"><span class="section-number-2">3</span> Implement complementary filters for LIGO</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<p>
|
||||
<a id="org3725bd2"></a>
|
||||
<a id="org2c84916"></a>
|
||||
</p>
|
||||
<div class="note" id="orgef062eb">
|
||||
<div class="note" id="org4890f37">
|
||||
<p>
|
||||
The Matlab file corresponding to this section is accessible <a href="matlab/comp_filters_ligo.m">here</a>.
|
||||
</p>
|
||||
@@ -459,8 +472,8 @@ The FIR complementary filters designed in (<a href="#citeproc_bib_item_1">Hua 20
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2d8dbcc" class="outline-3">
|
||||
<h3 id="org2d8dbcc"><span class="section-number-3">3.1</span> Specifications</h3>
|
||||
<div id="outline-container-org0a64590" class="outline-3">
|
||||
<h3 id="org0a64590"><span class="section-number-3">3.1</span> Specifications</h3>
|
||||
<div class="outline-text-3" id="text-3-1">
|
||||
<p>
|
||||
The specifications for the filters are:
|
||||
@@ -473,11 +486,11 @@ The specifications for the filters are:
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
The specifications are translated in upper bounds of the complementary filters are shown on figure <a href="#orge86890c">8</a>.
|
||||
The specifications are translated in upper bounds of the complementary filters are shown on figure <a href="#org40b6368">8</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orge86890c" class="figure">
|
||||
<div id="org40b6368" class="figure">
|
||||
<p><img src="figs/ligo_specifications.png" alt="ligo_specifications.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Specification for the LIGO complementary filters</p>
|
||||
@@ -485,8 +498,8 @@ The specifications are translated in upper bounds of the complementary filters a
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga974b40" class="outline-3">
|
||||
<h3 id="orga974b40"><span class="section-number-3">3.2</span> FIR Filter</h3>
|
||||
<div id="outline-container-org5187f2d" class="outline-3">
|
||||
<h3 id="org5187f2d"><span class="section-number-3">3.2</span> FIR Filter</h3>
|
||||
<div class="outline-text-3" id="text-3-2">
|
||||
<p>
|
||||
We here try to implement the FIR complementary filter synthesis as explained in (<a href="#citeproc_bib_item_1">Hua 2005</a>).
|
||||
@@ -567,7 +580,7 @@ h = y(2<span class="org-type">:</span>end);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="orgbf29758">
|
||||
<pre class="example" id="org199d33a">
|
||||
cvx_begin
|
||||
variable y(n+1,1)
|
||||
% t
|
||||
@@ -644,7 +657,7 @@ h = y(2:end);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Finally, we compute the filter response over the frequency vector defined and the result is shown on figure <a href="#org6095ba3">9</a> which is very close to the filters obtain in (<a href="#citeproc_bib_item_1">Hua 2005</a>).
|
||||
Finally, we compute the filter response over the frequency vector defined and the result is shown on figure <a href="#org1807c4b">9</a> which is very close to the filters obtain in (<a href="#citeproc_bib_item_1">Hua 2005</a>).
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@@ -654,7 +667,7 @@ H = [exp(<span class="org-type">-</span><span class="org-constant">j</span><span
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org6095ba3" class="figure">
|
||||
<div id="org1807c4b" class="figure">
|
||||
<p><img src="figs/fir_filter_ligo.png" alt="fir_filter_ligo.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 9: </span>FIR Complementary filters obtain after convex optimization</p>
|
||||
@@ -662,8 +675,8 @@ H = [exp(<span class="org-type">-</span><span class="org-constant">j</span><span
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org33657ff" class="outline-3">
|
||||
<h3 id="org33657ff"><span class="section-number-3">3.3</span> Weights</h3>
|
||||
<div id="outline-container-org6e83a71" class="outline-3">
|
||||
<h3 id="org6e83a71"><span class="section-number-3">3.3</span> Weights</h3>
|
||||
<div class="outline-text-3" id="text-3-3">
|
||||
<p>
|
||||
We design weights that will be used for the \(\mathcal{H}_\infty\) synthesis of the complementary filters.
|
||||
@@ -677,11 +690,11 @@ Here are the requirements on the filters:
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The bode plot of the weights is shown on figure <a href="#org9b70f72">10</a>.
|
||||
The bode plot of the weights is shown on figure <a href="#org8999a4f">10</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org9b70f72" class="figure">
|
||||
<div id="org8999a4f" class="figure">
|
||||
<p><img src="figs/ligo_weights.png" alt="ligo_weights.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 10: </span>Weights for the \(\mathcal{H}_\infty\) synthesis</p>
|
||||
@@ -689,11 +702,11 @@ The bode plot of the weights is shown on figure <a href="#org9b70f72">10</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb74a3c5" class="outline-3">
|
||||
<h3 id="orgb74a3c5"><span class="section-number-3">3.4</span> H-Infinity Synthesis</h3>
|
||||
<div id="outline-container-org56349cf" class="outline-3">
|
||||
<h3 id="org56349cf"><span class="section-number-3">3.4</span> H-Infinity Synthesis</h3>
|
||||
<div class="outline-text-3" id="text-3-4">
|
||||
<p>
|
||||
We define the generalized plant as shown on figure <a href="#orgb57e788">1</a>.
|
||||
We define the generalized plant as shown on figure <a href="#orge741156">1</a>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P = [0 wL;
|
||||
@@ -710,7 +723,7 @@ And we do the \(\mathcal{H}_\infty\) synthesis using the <code>hinfsyn</code> co
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="orgc616ee9">
|
||||
<pre class="example" id="orgd8777e8">
|
||||
[Hl, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
Resetting value of Gamma min based on D_11, D_12, D_21 terms
|
||||
|
||||
@@ -745,18 +758,18 @@ The high pass filter is defined as \(H_H = 1 - H_L\).
|
||||
The size of the filters is shown below.
|
||||
</p>
|
||||
|
||||
<pre class="example" id="org2166bb4">
|
||||
<pre class="example" id="orgc30176a">
|
||||
size(Hh), size(Hl)
|
||||
State-space model with 1 outputs, 1 inputs, and 27 states.
|
||||
State-space model with 1 outputs, 1 inputs, and 27 states.
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The bode plot of the obtained filters as shown on figure <a href="#org637c959">11</a>.
|
||||
The bode plot of the obtained filters as shown on figure <a href="#orgf3626bd">11</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org637c959" class="figure">
|
||||
<div id="orgf3626bd" class="figure">
|
||||
<p><img src="figs/hinf_synthesis_ligo_results.png" alt="hinf_synthesis_ligo_results.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 11: </span>Obtained complementary filters using the \(\mathcal{H}_\infty\) synthesis</p>
|
||||
@@ -764,15 +777,15 @@ The bode plot of the obtained filters as shown on figure <a href="#org637c959">1
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8b29f2c" class="outline-3">
|
||||
<h3 id="org8b29f2c"><span class="section-number-3">3.5</span> Compare FIR and H-Infinity Filters</h3>
|
||||
<div id="outline-container-org3ef818f" class="outline-3">
|
||||
<h3 id="org3ef818f"><span class="section-number-3">3.5</span> Compare FIR and H-Infinity Filters</h3>
|
||||
<div class="outline-text-3" id="text-3-5">
|
||||
<p>
|
||||
Let’s now compare the FIR filters designed in (<a href="#citeproc_bib_item_1">Hua 2005</a>) and the one obtained with the \(\mathcal{H}_\infty\) synthesis on figure <a href="#orgf4bf8ca">12</a>.
|
||||
Let’s now compare the FIR filters designed in (<a href="#citeproc_bib_item_1">Hua 2005</a>) and the one obtained with the \(\mathcal{H}_\infty\) synthesis on figure <a href="#orga60b7f8">12</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgf4bf8ca" class="figure">
|
||||
<div id="orga60b7f8" class="figure">
|
||||
<p><img src="figs/comp_fir_ligo_hinf.png" alt="comp_fir_ligo_hinf.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 12: </span>Comparison between the FIR filters developped for LIGO and the \(\mathcal{H}_\infty\) complementary filters</p>
|
||||
@@ -781,6 +794,522 @@ Let’s now compare the FIR filters designed in (<a href="#citeproc_bib_item
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6fa1123" class="outline-2">
|
||||
<h2 id="org6fa1123"><span class="section-number-2">4</span> Alternative Synthesis</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
</div>
|
||||
<div id="outline-container-org1bb8ee7" class="outline-3">
|
||||
<h3 id="org1bb8ee7"><span class="section-number-3">4.1</span> Two generalized plants</h3>
|
||||
<div class="outline-text-3" id="text-4-1">
|
||||
<p>
|
||||
In order to synthesize the complementary filter using the proposed method, we can use two alternative generalized plant as shown in Figures <a href="#orgdfb88a5">13</a> and <a href="#orgb41d84e">14</a>.
|
||||
</p>
|
||||
|
||||
\begin{equation}
|
||||
P_1 = \begin{bmatrix} W_1 & -W_1 \\ 0 & W_2 \\ 1 & 0 \end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
|
||||
|
||||
<div id="orgdfb88a5" class="figure">
|
||||
<p><img src="figs/h_infinity_arch_1.png" alt="h_infinity_arch_1.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 13: </span>Complementary Filter Synthesis - Conf 1</p>
|
||||
</div>
|
||||
|
||||
\begin{equation}
|
||||
P_2 = \begin{bmatrix} 0 & W_1 & 1 \\ W_2 & -W_1 & 0 \end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
|
||||
<div id="orgb41d84e" class="figure">
|
||||
<p><img src="figs/h_infinity_arch_2.png" alt="h_infinity_arch_2.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 14: </span>Complementary Filter Synthesis - Conf 2</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Let’s run the \(\mathcal{H}_\infty\) synthesis for both generalized plant using the same weights and see if the obtained filters are the same:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">n = 2; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>11; G0 = 1<span class="org-type">/</span>10; G1 = 1000; Gc = 1<span class="org-type">/</span>2;
|
||||
W1 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
|
||||
n = 3; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>10; G0 = 1000; G1 = 0.1; Gc = 1<span class="org-type">/</span>2;
|
||||
W2 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P1 = [W1 <span class="org-type">-</span>W1;
|
||||
0 W2;
|
||||
1 0];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[H2, <span class="org-type">~</span>, gamma, <span class="org-type">~</span>] = hinfsyn(P1, 1, 1,<span class="org-string">'TOLGAM'</span>, 0.001, <span class="org-string">'METHOD'</span>, <span class="org-string">'ric'</span>, <span class="org-string">'DISPLAY'</span>, <span class="org-string">'on'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="org80f6d17">
|
||||
[H2, ~, gamma, ~] = hinfsyn(P1, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
|
||||
Test bounds: 0.3263 <= gamma <= 1000
|
||||
|
||||
gamma X>=0 Y>=0 rho(XY)<1 p/f
|
||||
1.807e+01 1.4e-07 0.0e+00 1.185e-18 p
|
||||
2.428e+00 1.5e-07 0.0e+00 1.285e-18 p
|
||||
8.902e-01 -2.9e+02 # -7.1e-17 5.168e-19 f
|
||||
1.470e+00 1.5e-07 0.0e+00 1.462e-14 p
|
||||
1.144e+00 1.5e-07 0.0e+00 1.260e-14 p
|
||||
1.009e+00 1.5e-07 0.0e+00 4.120e-13 p
|
||||
9.478e-01 -6.8e+02 # -2.4e-17 1.449e-14 f
|
||||
9.780e-01 -1.6e+03 # -7.3e-17 6.791e-14 f
|
||||
9.934e-01 -4.2e+03 # -1.2e-16 3.524e-14 f
|
||||
1.001e+00 -2.0e+04 # -2.3e-17 5.717e-20 f
|
||||
1.005e+00 1.5e-07 0.0e+00 8.953e-18 p
|
||||
1.003e+00 -2.2e+05 # -1.8e-17 3.225e-12 f
|
||||
1.004e+00 1.5e-07 0.0e+00 2.445e-12 p
|
||||
Limiting gains...
|
||||
1.004e+00 1.6e-07 0.0e+00 5.811e-18 p
|
||||
|
||||
Best performance (actual): 1.004
|
||||
</pre>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P2 = [0 W1 1;
|
||||
W2 <span class="org-type">-</span>W1 0];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[H2b, <span class="org-type">~</span>, gamma, <span class="org-type">~</span>] = hinfsyn(P2, 1, 1,<span class="org-string">'TOLGAM'</span>, 0.001, <span class="org-string">'METHOD'</span>, <span class="org-string">'ric'</span>, <span class="org-string">'DISPLAY'</span>, <span class="org-string">'on'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="org7155dd4">
|
||||
[H2b, ~, gamma, ~] = hinfsyn(P2, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
|
||||
Test bounds: 0.3263 <= gamma <= 1000
|
||||
|
||||
gamma X>=0 Y>=0 rho(XY)<1 p/f
|
||||
1.807e+01 0.0e+00 1.4e-07 2.055e-16 p
|
||||
2.428e+00 0.0e+00 1.4e-07 1.894e-18 p
|
||||
8.902e-01 -2.1e-16 -2.7e+02 # 1.466e-16 f
|
||||
1.470e+00 0.0e+00 1.4e-07 4.118e-16 p
|
||||
1.144e+00 0.0e+00 1.5e-07 2.105e-18 p
|
||||
1.009e+00 0.0e+00 1.5e-07 2.590e-13 p
|
||||
9.478e-01 -9.5e-17 -6.3e+02 # 1.663e-19 f
|
||||
9.780e-01 -1.1e-16 -1.5e+03 # 1.546e-14 f
|
||||
9.934e-01 -2.8e-17 -4.0e+03 # 3.934e-14 f
|
||||
1.001e+00 -3.1e-17 -1.9e+04 # 1.191e-19 f
|
||||
1.005e+00 0.0e+00 1.5e-07 1.443e-12 p
|
||||
1.003e+00 -8.3e-17 -2.1e+05 # 8.807e-13 f
|
||||
1.004e+00 0.0e+00 1.5e-07 1.459e-15 p
|
||||
Limiting gains...
|
||||
1.004e+00 0.0e+00 1.5e-07 9.086e-19 p
|
||||
|
||||
Best performance (actual): 1.004
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
And indeed, we can see that the exact same filters are obtained (Figure <a href="#org4ff7339">15</a>).
|
||||
</p>
|
||||
|
||||
<div id="org4ff7339" class="figure">
|
||||
<p><img src="figs/hinf_comp_P1_P2_syn.png" alt="hinf_comp_P1_P2_syn.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 15: </span>Comparison of \(H_2(s)\) when using \(P_1(s)\) or \(P_2(s)\)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga117463" class="outline-3">
|
||||
<h3 id="orga117463"><span class="section-number-3">4.2</span> Shaping the Low pass filter or the high pass filter?</h3>
|
||||
<div class="outline-text-3" id="text-4-2">
|
||||
<p>
|
||||
Let’s see if there is a difference by explicitly shaping \(H_1(s)\) or \(H_2(s)\).
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">n = 2; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>11; G0 = 1<span class="org-type">/</span>10; G1 = 1000; Gc = 1<span class="org-type">/</span>2;
|
||||
W1 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
|
||||
n = 3; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>10; G0 = 1000; G1 = 0.1; Gc = 1<span class="org-type">/</span>2;
|
||||
W2 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Let’s first synthesize \(H_1(s)\):
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P1 = [W2 <span class="org-type">-</span>W2;
|
||||
0 W1;
|
||||
1 0];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[H1, <span class="org-type">~</span>, gamma, <span class="org-type">~</span>] = hinfsyn(P1, 1, 1,<span class="org-string">'TOLGAM'</span>, 0.001, <span class="org-string">'METHOD'</span>, <span class="org-string">'ric'</span>, <span class="org-string">'DISPLAY'</span>, <span class="org-string">'on'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="org45692a7">
|
||||
[H1, ~, gamma, ~] = hinfsyn(P1, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
|
||||
Test bounds: 0.3263 <= gamma <= 1.712
|
||||
|
||||
gamma X>=0 Y>=0 rho(XY)<1 p/f
|
||||
7.476e-01 -2.5e+01 # -8.3e-18 4.938e-20 f
|
||||
1.131e+00 1.9e-07 0.0e+00 1.566e-16 p
|
||||
9.197e-01 -1.4e+02 # -7.9e-17 4.241e-17 f
|
||||
1.020e+00 1.9e-07 0.0e+00 2.095e-16 p
|
||||
9.686e-01 -3.8e+02 # -7.0e-17 1.463e-23 f
|
||||
9.940e-01 -1.5e+03 # -1.3e-17 3.168e-19 f
|
||||
1.007e+00 1.9e-07 0.0e+00 1.696e-15 p
|
||||
1.000e+00 -4.8e+03 # -7.1e-18 7.203e-20 f
|
||||
1.004e+00 1.9e-07 0.0e+00 1.491e-14 p
|
||||
1.002e+00 -1.1e+04 # -2.6e-16 2.579e-14 f
|
||||
1.003e+00 -2.8e+04 # -6.0e-18 8.558e-20 f
|
||||
Limiting gains...
|
||||
1.004e+00 2.0e-07 0.0e+00 5.647e-18 p
|
||||
1.004e+00 1.0e-06 0.0e+00 5.648e-18 p
|
||||
|
||||
Best performance (actual): 1.004
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
And now \(H_2(s)\):
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P2 = [W1 <span class="org-type">-</span>W1;
|
||||
0 W2;
|
||||
1 0];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[H2, <span class="org-type">~</span>, gamma, <span class="org-type">~</span>] = hinfsyn(P2, 1, 1,<span class="org-string">'TOLGAM'</span>, 0.001, <span class="org-string">'METHOD'</span>, <span class="org-string">'ric'</span>, <span class="org-string">'DISPLAY'</span>, <span class="org-string">'on'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="org6543cab">
|
||||
[H2b, ~, gamma, ~] = hinfsyn(P2, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
|
||||
Test bounds: 0.3263 <= gamma <= 1000
|
||||
|
||||
gamma X>=0 Y>=0 rho(XY)<1 p/f
|
||||
1.807e+01 1.4e-07 0.0e+00 1.185e-18 p
|
||||
2.428e+00 1.5e-07 0.0e+00 1.285e-18 p
|
||||
8.902e-01 -2.9e+02 # -7.1e-17 5.168e-19 f
|
||||
1.470e+00 1.5e-07 0.0e+00 1.462e-14 p
|
||||
1.144e+00 1.5e-07 0.0e+00 1.260e-14 p
|
||||
1.009e+00 1.5e-07 0.0e+00 4.120e-13 p
|
||||
9.478e-01 -6.8e+02 # -2.4e-17 1.449e-14 f
|
||||
9.780e-01 -1.6e+03 # -7.3e-17 6.791e-14 f
|
||||
9.934e-01 -4.2e+03 # -1.2e-16 3.524e-14 f
|
||||
1.001e+00 -2.0e+04 # -2.3e-17 5.717e-20 f
|
||||
1.005e+00 1.5e-07 0.0e+00 8.953e-18 p
|
||||
1.003e+00 -2.2e+05 # -1.8e-17 3.225e-12 f
|
||||
1.004e+00 1.5e-07 0.0e+00 2.445e-12 p
|
||||
Limiting gains...
|
||||
1.004e+00 1.6e-07 0.0e+00 5.811e-18 p
|
||||
|
||||
Best performance (actual): 1.004
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
And compare \(H_1(s)\) with \(1 - H_2(s)\) and \(H_2(s)\) with \(1 - H_1(s)\) in Figure <a href="#org4a9724c">16</a>.
|
||||
</p>
|
||||
|
||||
<div id="org4a9724c" class="figure">
|
||||
<p><img src="figs/hinf_comp_H1_H2_syn.png" alt="hinf_comp_H1_H2_syn.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 16: </span>Comparison of \(H_1(s)\) with \(1-H_2(s)\), and \(H_2(s)\) with \(1-H_1(s)\)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf082879" class="outline-2">
|
||||
<h2 id="orgf082879"><span class="section-number-2">5</span> Impose a positive slope at DC or a negative slope at infinite frequency</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
</div>
|
||||
<div id="outline-container-org96df1d1" class="outline-3">
|
||||
<h3 id="org96df1d1"><span class="section-number-3">5.1</span> Manually shift zeros to the origin after synthesis</h3>
|
||||
<div class="outline-text-3" id="text-5-1">
|
||||
<p>
|
||||
Suppose we want \(H_2(s)\) to be an high pass filter with a slope of +2 at low frequency (from 0Hz).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We cannot impose that using the weight \(W_2(s)\) as it would be improper.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
However, we may manually shift 2 of the low frequency zeros to the origin.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">n = 2; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>11; G0 = 1<span class="org-type">/</span>10; G1 = 1000; Gc = 1<span class="org-type">/</span>2;
|
||||
W1 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
|
||||
n = 3; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>10; G0 = 1e4; G1 = 0.1; Gc = 1<span class="org-type">/</span>2;
|
||||
W2 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P = [W1 <span class="org-type">-</span>W1;
|
||||
0 W2;
|
||||
1 0];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And we do the \(\mathcal{H}_\infty\) synthesis using the <code>hinfsyn</code> command:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[H2, <span class="org-type">~</span>, gamma, <span class="org-type">~</span>] = hinfsyn(P, 1, 1,<span class="org-string">'TOLGAM'</span>, 0.001, <span class="org-string">'METHOD'</span>, <span class="org-string">'lmi'</span>, <span class="org-string">'DISPLAY'</span>, <span class="org-string">'on'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[z,p,k] = zpkdata(H2)
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Looking at the zeros, we see two low frequency complex conjugate zeros.
|
||||
</p>
|
||||
<pre class="example" id="orge6a4f22">
|
||||
z{1}
|
||||
ans =
|
||||
-4690930.24283199 + 0i
|
||||
-163.420524657426 + 0i
|
||||
-0.853192261081498 + 0.713416012479897i
|
||||
-0.853192261081498 - 0.713416012479897i
|
||||
-3.15812268762265 + 0i
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
We manually put these zeros at the origin:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">z{1}([3,4]) = 0;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And we create a modified filter \(H_{2z}(s)\):
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">H2z = zpk(z,p,k);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And as usual, \(H_{1z}(s)\) is defined as the complementary of \(H_{2z}(s)\):
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">H1z = 1 <span class="org-type">-</span> H2z;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The bode plots of \(H_1(s)\), \(H_2(s)\), \(H_{1z}(s)\) and \(H_{2z}(s)\) are shown in Figure <a href="#org4631977">17</a>.
|
||||
And we see that \(H_{1z}(s)\) is slightly modified when setting the zeros at the origin for \(H_{2z}(s)\).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org4631977" class="figure">
|
||||
<p><img src="figs/comp_filters_shift_zero.png" alt="comp_filters_shift_zero.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 17: </span>Bode plots of \(H_1(s)\), \(H_2(s)\), \(H_{1z}(s)\) and \(H_{2z}(s)\)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6b92ce0" class="outline-3">
|
||||
<h3 id="org6b92ce0"><span class="section-number-3">5.2</span> Imposing a positive slope at DC during the synthesis phase</h3>
|
||||
<div class="outline-text-3" id="text-5-2">
|
||||
<p>
|
||||
Suppose we want to synthesize \(H_2(s)\) such that it has a slope of +2 from DC.
|
||||
We can include this “feature” in the generalized plant as shown in Figure <a href="#org00fe83c">18</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org00fe83c" class="figure">
|
||||
<p><img src="figs/h_infinity_arch_H2_feature.png" alt="h_infinity_arch_H2_feature.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 18: </span>Generalized plant with included wanted feature represented by \(H_{2w}(s)\)</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
After synthesis, the obtained filter will be:
|
||||
</p>
|
||||
\begin{equation}
|
||||
H_2(s) = H_2^\prime(s) H_{2w}(s)
|
||||
\end{equation}
|
||||
<p>
|
||||
and therefore the “feature” will be included in the filter.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For \(H_1(s)\) nothing is changed: \(H_1(s) = 1 - H_2(s)\).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The weighting functions are defined as usual:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">n = 2; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>11; G0 = 1<span class="org-type">/</span>10; G1 = 1000; Gc = 1<span class="org-type">/</span>2;
|
||||
W1 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
|
||||
n = 3; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>10; G0 = 1e4; G1 = 0.1; Gc = 1<span class="org-type">/</span>2;
|
||||
W2 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The wanted feature here is a +2 slope at low frequency.
|
||||
For that, we use an high pass filter with a slope of +2 at low frequency.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>50;
|
||||
H2w = (s<span class="org-type">/</span>w0<span class="org-type">/</span>(s<span class="org-type">/</span>w0<span class="org-type">+</span>1))<span class="org-type">^</span>2;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
We define the generalized plant as shown in Figure <a href="#org00fe83c">18</a>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P = [W1 <span class="org-type">-</span>W1;
|
||||
0 W2;
|
||||
H2w 0];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And we do the \(\mathcal{H}_\infty\) synthesis using the <code>hinfsyn</code> command.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[H2p, <span class="org-type">~</span>, gamma, <span class="org-type">~</span>] = hinfsyn(P, 1, 1,<span class="org-string">'TOLGAM'</span>, 0.001, <span class="org-string">'METHOD'</span>, <span class="org-string">'lmi'</span>, <span class="org-string">'DISPLAY'</span>, <span class="org-string">'on'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Finally, we define \(H_2(s)\) as the product of the synthesized filter and the wanted “feature”:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">H2 = H2p<span class="org-type">*</span>H2w;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And we define \(H_1(s)\) to be the complementary of \(H_2(s)\):
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">H1 = 1 <span class="org-type">-</span> H2;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The obtained complementary filters are shown in Figure <a href="#org551ae15">19</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org551ae15" class="figure">
|
||||
<p><img src="figs/comp_filters_H2_feature.png" alt="comp_filters_H2_feature.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 19: </span>Obtained complementary fitlers</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org71e3235" class="outline-3">
|
||||
<h3 id="org71e3235"><span class="section-number-3">5.3</span> Imposing a negative slope at infinity frequency during the synthesis phase</h3>
|
||||
<div class="outline-text-3" id="text-5-3">
|
||||
<p>
|
||||
Let’s suppose we now want to shape a low pass filter that as a negative slope until infinite frequency.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The used technique is the same as in the previous section, and the generalized plant is shown in Figure <a href="#org00fe83c">18</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The weights are defined as usual.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">n = 3; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>10; G0 = 1000; G1 = 0.1; Gc = 1<span class="org-type">/</span>2;
|
||||
W1 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
|
||||
n = 2; w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>11; G0 = 1<span class="org-type">/</span>10; G1 = 1000; Gc = 1<span class="org-type">/</span>2;
|
||||
W2 = (((1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n))<span class="org-type">/</span>((1<span class="org-type">/</span>G1)<span class="org-type">^</span>(1<span class="org-type">/</span>n)<span class="org-type">*</span>(1<span class="org-type">/</span>w0)<span class="org-type">*</span>sqrt((1<span class="org-type">-</span>(G0<span class="org-type">/</span>Gc)<span class="org-type">^</span>(2<span class="org-type">/</span>n))<span class="org-type">/</span>(1<span class="org-type">-</span>(Gc<span class="org-type">/</span>G1)<span class="org-type">^</span>(2<span class="org-type">/</span>n)))<span class="org-type">*</span>s <span class="org-type">+</span> (1<span class="org-type">/</span>Gc)<span class="org-type">^</span>(1<span class="org-type">/</span>n)))<span class="org-type">^</span>n;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
This time, the feature is a low pass filter with a slope of -2 at high frequency.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">H2w = 1<span class="org-type">/</span>(s<span class="org-type">/</span>(2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>10) <span class="org-type">+</span> 1)<span class="org-type">^</span>2;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The generalized plant is defined:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">P = [W1 <span class="org-type">-</span>W1;
|
||||
0 W2;
|
||||
H2w 0];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And we do the \(\mathcal{H}_\infty\) synthesis using the <code>hinfsyn</code> command.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[H2p, <span class="org-type">~</span>, gamma, <span class="org-type">~</span>] = hinfsyn(P, 1, 1,<span class="org-string">'TOLGAM'</span>, 0.001, <span class="org-string">'METHOD'</span>, <span class="org-string">'lmi'</span>, <span class="org-string">'DISPLAY'</span>, <span class="org-string">'on'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The feature is added to the synthesized filter:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">H2 = H2p<span class="org-type">*</span>H2w;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And \(H_1(s)\) is defined as follows:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">H1 = 1 <span class="org-type">-</span> H2;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The obtained complementary filters are shown in Figure <a href="#org7f33e5d">20</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org7f33e5d" class="figure">
|
||||
<p><img src="figs/comp_filters_H2_feature_neg_slope.png" alt="comp_filters_H2_feature_neg_slope.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 20: </span>Obtained complementary fitlers</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
|
||||
</p>
|
||||
@@ -792,7 +1321,7 @@ Let’s now compare the FIR filters designed in (<a href="#citeproc_bib_item
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Thomas Dehaeze</p>
|
||||
<p class="date">Created: 2020-11-12 jeu. 10:44</p>
|
||||
<p class="date">Created: 2020-12-11 ven. 14:05</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user