kopia lustrzana https://github.com/Dsplib/libdspl-2.0
108 wiersze
15 KiB
HTML
108 wiersze
15 KiB
HTML
<!-- 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/filter_iir_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">filter_iir_test.c</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#include <stdio.h></span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#include <stdlib.h></span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor">#include <string.h></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "dspl.h"</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#define ORD 6</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#define N 2000</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>* argv[])</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  <span class="keywordtype">void</span>* handle; <span class="comment">/* DSPL handle */</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  <span class="keywordtype">double</span> b[ORD+1], a[ORD+1];</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  <span class="keywordtype">double</span> t[N], s[N], n[N], sf[N];</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <a class="code" href="structrandom__t.html">random_t</a> rnd;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  <span class="keywordtype">int</span> k;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keywordtype">int</span> err;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="comment">/* Load DSPL function */</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  handle = dspl_load();</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="comment">/* random generator init */</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  random_init(&rnd, RAND_TYPE_MT19937, NULL);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="comment">/* fill time vector */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <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#ga1ba7e0e9f5194114592abaa49a146def">linspace</a>(0, N, N, DSPL_PERIODIC, t);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="comment">/* generate noise */</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  randn(n, N, 0, 1.0, &rnd);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="comment">/* input signal s = sin(2*pi*t) + n(t) */</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">for</span>(k = 0; k < N; k++)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  s[k] = sin(M_2PI*0.02*t[k]) + n[k];</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="comment">/* IIR filter coefficients calculation */</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  iir(1.0, 70.0, ORD, 0.06, 0.0, DSPL_FILTER_ELLIP | DSPL_FILTER_LPF, b, a);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="comment">/* input signal filtration */</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="group___f_i_l_t_e_r___c_o_n_v___g_r_o_u_p.html#ga0705c95a8edec62c9f57d007d2a53836">filter_iir</a>(b, a, ORD, s, N, sf);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">/* save input signal and filter output to the txt-files */</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="group___i_n___o_u_t___g_r_o_u_p.html#gae30c87757d5bf57584904e543fb1efd2">writetxt</a>(t,s, N, <span class="stringliteral">"dat/s.txt"</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="group___i_n___o_u_t___g_r_o_u_p.html#gae30c87757d5bf57584904e543fb1efd2">writetxt</a>(t,sf,N, <span class="stringliteral">"dat/sf.txt"</span>);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">/* run GNUPLOT script */</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  err = <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">"gnuplot/filter_iir.plt"</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">/* free DSPL handle */</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  dspl_free(handle);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">return</span> err;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> }</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___f_i_l_t_e_r___c_o_n_v___g_r_o_u_p_html_ga0705c95a8edec62c9f57d007d2a53836"><div class="ttname"><a href="group___f_i_l_t_e_r___c_o_n_v___g_r_o_u_p.html#ga0705c95a8edec62c9f57d007d2a53836">filter_iir</a></div><div class="ttdeci">int filter_iir(double *b, double *a, int ord, double *x, int n, double *y)</div><div class="ttdoc">Фильтрация вещественного сигнала вещественным БИХ-фильтром</div><div class="ttdef"><b>Definition:</b> <a href="conv_8c_source.html#l00577">conv.c:577</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="structrandom__t_html"><div class="ttname"><a href="structrandom__t.html">random_t</a></div><div class="ttdef"><b>Definition:</b> <a href="dspl_8h_source.html#l00059">dspl.h:59</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_ga1ba7e0e9f5194114592abaa49a146def"><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#ga1ba7e0e9f5194114592abaa49a146def">linspace</a></div><div class="ttdeci">int linspace(double x0, double x1, int n, int type, double *x)</div><div class="ttdoc">Функция заполняет массив линейно-нарастающими, равноотстоящими значениями от x0 до x1</div><div class="ttdef"><b>Definition:</b> <a href="fillarray_8c_source.html#l00031">fillarray.c:31</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. Создано системой  <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> |