libdspl-2.0/dspl/doc/html/butter__ap__test_8c_source....

109 wiersze
15 KiB
HTML
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!-- HTML header for doxygen 1.8.13
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libdspl-2.0: Исходный файл F:/dsplib.org/libdspl-2.0/examples/src/butter_ap_test.c</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="doxy_stylesheet.css" rel="stylesheet" type="text/css" />
<link href="http://dsplib.org/dsplib-stylesheet.css".css" rel="stylesheet" type="text/css">
</head>
<body>
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter32971694 = new Ya.Metrika({
id:32971694,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true
});
} catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = "https://mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/32971694" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<div class = "header-bar">
<div class = "menu-bar">
<nav>
<ul>
<div class = "dsplib-logo"><img src="http://dsplib.org/logo.png" /> </div>
<li><a href="http://ru.dsplib.org">Содержание</a></li>
<li><a href="http://ru.dsplib.org/dspl">DSPL</a></li>
<li><a href="http://ru.dsplib.org/forum">Форум</a></li>
<li>
<div class="search-bar">
<div class="ya-site-form ya-site-form_inited_no" onclick="return {'action':'http://ru.dsplib.org/search_results.html','arrow':false,'bg':'transparent','fontsize':12,'fg':'#000000','language':'ru','logo':'rb','publicname':'ru.dsplib.org поиск','suggest':true,'target':'_self','tld':'ru','type':2,'usebigdictionary':true,'searchid':2332185,'input_fg':'#000000','input_bg':'#ffffff','input_fontStyle':'normal','input_fontWeight':'normal','input_placeholder':'поиск','input_placeholderColor':'#000000','input_borderColor':'#7f9db9'}"><form action="https://yandex.ru/search/site/" method="get" target="_self" accept-charset="utf-8"><input type="hidden" name="searchid" value="2332185"/><input type="hidden" name="l10n" value="ru"/><input type="hidden" name="reqenc" value=""/><input type="search" name="text" value="" style = "height: 24px; font-family: verdana,arial; font-size: 12px"/><input type="submit" value="Найти" style = "display: none;"/></form></div><style type="text/css">.ya-page_js_yes .ya-site-form_inited_no { display: none; }</style><script type="text/javascript">(function(w,d,c){var s=d.createElement('script'),h=d.getElementsByTagName('script')[0],e=d.documentElement;if((' '+e.className+' ').indexOf(' ya-page_js_yes ')===-1){e.className+=' ya-page_js_yes';}s.type='text/javascript';s.async=true;s.charset='utf-8';s.src=(d.location.protocol==='https:'?'https:':'http:')+'//site.yandex.net/v2.0/js/all.js';h.parentNode.insertBefore(s,h);(w[c]||(w[c]=[])).push(function(){Ya.Site.Form.init()})})(window,document,'yandex_site_callbacks');</script>
</div>
</li>
</ul>
</nav>
</div>
</div>
<div class="main-dsplib">
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libdspl-2.0
</div>
<div id="projectbrief">Библиотека алгоритмов цифровой обработки сигналов</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Создано системой Doxygen 1.8.15 -->
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_95b57effb8038f90624a8a5b60361b2e.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">butter_ap_test.c</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;dspl.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define ORD 3</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define N 1000</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>* argv[])</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">void</span>* handle; <span class="comment">// DSPL handle</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; handle = dspl_load(); <span class="comment">// Load DSPL function</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">double</span> a[ORD+1], b[ORD+1];</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">double</span> Rp = 1.0;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">double</span> w[N], mag[N], phi[N], tau[N];</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">int</span> k;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">int</span> res = <a class="code" href="group___i_i_r___f_i_l_t_e_r___d_e_s_i_g_n___g_r_o_u_p.html#ga65df99359f211937e4dc1141f57ef571">butter_ap</a>(Rp, ORD, b, a);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">if</span>(res != <a class="code" href="group___e_r_r_o_r___c_o_d_e___g_r_o_u_p.html#ga312c04ce416e0afdbd653394e36a117d">RES_OK</a>)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; printf(<span class="stringliteral">&quot;error code = 0x%8x\n&quot;</span>, res);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">for</span>(k = 0; k &lt; ORD+1; k++)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; printf(<span class="stringliteral">&quot;b[%2d] = %9.3f a[%2d] = %9.3f\n&quot;</span>, k, b[k], k, a[k]);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="group___s_p_e_c___m_a_t_h___c_o_m_m_o_n___g_r_o_u_p.html#gad18821174e4a11f75c5d381732249122">logspace</a>(-2.0, 2.0, N , DSPL_SYMMETRIC, w);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="group___f_i_l_t_e_r___a_n_a_l_y_s_i_s___g_r_o_u_p.html#gaf560a289e243876971cd4a9af6ce855b">filter_freq_resp</a>(b, a, ORD, w, N, </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; DSPL_FLAG_LOGMAG|DSPL_FLAG_UNWRAP|DSPL_FLAG_ANALOG, </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; mag, phi, tau);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="group___i_n___o_u_t___g_r_o_u_p.html#gae30c87757d5bf57584904e543fb1efd2">writetxt</a>(w, mag, N, <span class="stringliteral">&quot;dat/butter_ap_test_mag.txt&quot;</span>);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="group___i_n___o_u_t___g_r_o_u_p.html#gae30c87757d5bf57584904e543fb1efd2">writetxt</a>(w, phi, N, <span class="stringliteral">&quot;dat/butter_ap_test_phi.txt&quot;</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="group___i_n___o_u_t___g_r_o_u_p.html#gae30c87757d5bf57584904e543fb1efd2">writetxt</a>(w, tau, N, <span class="stringliteral">&quot;dat/butter_ap_test_tau.txt&quot;</span>);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">/* run GNUPLOT script */</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; res = <a class="code" href="group___i_n___o_u_t___g_r_o_u_p.html#ga8dbaffeb9039ba3eee17c9371d5d7a4c">gnuplot_script</a>(argc, argv, <span class="stringliteral">&quot;gnuplot/butter_ap_test.plt&quot;</span>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; dspl_free(handle); <span class="comment">// free dspl handle</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="ttc" id="group___i_i_r___f_i_l_t_e_r___d_e_s_i_g_n___g_r_o_u_p_html_ga65df99359f211937e4dc1141f57ef571"><div class="ttname"><a href="group___i_i_r___f_i_l_t_e_r___d_e_s_i_g_n___g_r_o_u_p.html#ga65df99359f211937e4dc1141f57ef571">butter_ap</a></div><div class="ttdeci">int butter_ap(double rp, int ord, double *b, double *a)</div><div class="ttdoc">Расчет передаточной характеристики аналогового нормированного ФНЧ Баттерворта.</div><div class="ttdef"><b>Definition:</b> <a href="filter__ap_8c_source.html#l00033">filter_ap.c:33</a></div></div>
<div class="ttc" id="group___f_i_l_t_e_r___a_n_a_l_y_s_i_s___g_r_o_u_p_html_gaf560a289e243876971cd4a9af6ce855b"><div class="ttname"><a href="group___f_i_l_t_e_r___a_n_a_l_y_s_i_s___g_r_o_u_p.html#gaf560a289e243876971cd4a9af6ce855b">filter_freq_resp</a></div><div class="ttdeci">int filter_freq_resp(double *b, double *a, int ord, double *w, int n, int flag, double *mag, double *phi, double *tau)</div><div class="ttdoc">Расчет амплитудно-частотной (АЧХ), фазочастотной характеристик (ФЧХ), а также группового времени запа...</div><div class="ttdef"><b>Definition:</b> <a href="filter__an_8c_source.html#l00035">filter_an.c:35</a></div></div>
<div class="ttc" id="group___i_n___o_u_t___g_r_o_u_p_html_gae30c87757d5bf57584904e543fb1efd2"><div class="ttname"><a href="group___i_n___o_u_t___g_r_o_u_p.html#gae30c87757d5bf57584904e543fb1efd2">writetxt</a></div><div class="ttdeci">int writetxt(double *x, double *y, int n, char *fn)</div><div class="ttdoc">Сохранить вещественные данные в текстовый файл</div><div class="ttdef"><b>Definition:</b> <a href="inout_8c_source.html#l00236">inout.c:236</a></div></div>
<div class="ttc" id="group___s_p_e_c___m_a_t_h___c_o_m_m_o_n___g_r_o_u_p_html_gad18821174e4a11f75c5d381732249122"><div class="ttname"><a href="group___s_p_e_c___m_a_t_h___c_o_m_m_o_n___g_r_o_u_p.html#gad18821174e4a11f75c5d381732249122">logspace</a></div><div class="ttdeci">int logspace(double x0, double x1, int n, int type, double *x)</div><div class="ttdoc">Функция заполняет массив значениями логарифмической шкале</div><div class="ttdef"><b>Definition:</b> <a href="fillarray_8c_source.html#l00068">fillarray.c:68</a></div></div>
<div class="ttc" id="group___i_n___o_u_t___g_r_o_u_p_html_ga8dbaffeb9039ba3eee17c9371d5d7a4c"><div class="ttname"><a href="group___i_n___o_u_t___g_r_o_u_p.html#ga8dbaffeb9039ba3eee17c9371d5d7a4c">gnuplot_script</a></div><div class="ttdeci">int gnuplot_script(int argc, char *argv[], char *fn)</div><div class="ttdoc">Функция вызова скрипта пакета GNUPLOT для построения графика.</div><div class="ttdef"><b>Definition:</b> <a href="inout_8c_source.html#l00048">inout.c:48</a></div></div>
<div class="ttc" id="group___e_r_r_o_r___c_o_d_e___g_r_o_u_p_html_ga312c04ce416e0afdbd653394e36a117d"><div class="ttname"><a href="group___e_r_r_o_r___c_o_d_e___g_r_o_u_p.html#ga312c04ce416e0afdbd653394e36a117d">RES_OK</a></div><div class="ttdeci">#define RES_OK</div><div class="ttdoc">Функция завершилась корректно. Ошибки отсутствуют.</div><div class="ttdef"><b>Definition:</b> <a href="dspl_8h_source.html#l00094">dspl.h:94</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.13-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Документация по libdspl-2.0. Последние изменения: Пн 4 Ноя 2019 16:56:52. Создано системой &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</div>
</body>
</html>