<!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"/> <title>GNU Radio 3.2.2 C++ API: gr_firdes Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">GNU Radio 3.2.2 C++ API</div> </td> </tr> </tbody> </table> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('classgr__firdes.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-static-methods">Static Public Member Functions</a> </div> <div class="headertitle"> <h1>gr_firdes Class Reference<div class="ingroups"><a class="el" href="group__filter__design.html">Digital Filter Design</a></div></h1> </div> </div> <div class="contents"> <!-- doxytag: class="gr_firdes" --> <p>Finite Impulse Response (FIR) filter design functions. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="gr__firdes_8h_source.html">gr_firdes.h</a>></code></p> <p><a href="classgr__firdes-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> { <br/>   <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456ca9ecf16aac5495bd054e124d073e23bfa">WIN_HAMMING</a> = 0, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456ca0283f236f2f1614bcb1534375d0a4d5c">WIN_HANN</a> = 1, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456ca1c72b129266703afdcc486aebd763fe8">WIN_BLACKMAN</a> = 2, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456ca93358f88cb8ea7cc99ba5b1a45878290">WIN_RECTANGULAR</a> = 3, <br/>   <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456cacf24e696ceb7054a0f48ded24940106e">WIN_KAISER</a> = 4, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456ca6bc60911da96133b31392c35cb4f797b">WIN_BLACKMAN_hARRIS</a> = 5 <br/> }</td></tr> <tr><td colspan="2"><h2><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a0cf14cf1cab23b635081d0ff8bf6140a">low_pass</a> (double gain, double sampling_freq, double cutoff_freq, double transition_width, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a low-pass FIR filter <a href="#a0cf14cf1cab23b635081d0ff8bf6140a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a7347642df3e2f5090db468750da56d56">low_pass_2</a> (double gain, double sampling_freq, double cutoff_freq, double transition_width, double attenuation_dB, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a low-pass FIR filter <a href="#a7347642df3e2f5090db468750da56d56"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#acf767ad8eccf3c5c283d578599a63691">high_pass</a> (double gain, double sampling_freq, double cutoff_freq, double transition_width, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a high-pass FIR filter <a href="#acf767ad8eccf3c5c283d578599a63691"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a06bb3ea1c1bfeefe8ed860d23285c040">high_pass_2</a> (double gain, double sampling_freq, double cutoff_freq, double transition_width, double attenuation_dB, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a high-pass FIR filter <a href="#a06bb3ea1c1bfeefe8ed860d23285c040"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a074fc918cbcd8408898f2660a2d6bbf6">band_pass</a> (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a band-pass FIR filter <a href="#a074fc918cbcd8408898f2660a2d6bbf6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a1101286ed88565ed9b273670701cd07b">band_pass_2</a> (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a band-pass FIR filter <a href="#a1101286ed88565ed9b273670701cd07b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< <a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a2d35be73189d6763a00b5585159ee500">complex_band_pass</a> (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a complex band-pass FIR filter <a href="#a2d35be73189d6763a00b5585159ee500"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< <a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a7771ca6a6e9d430c2828573651eead19">complex_band_pass_2</a> (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a complex band-pass FIR filter <a href="#a7771ca6a6e9d430c2828573651eead19"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#aed7654868c14219e4a9bd75aa5b2c39e">band_reject</a> (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a band-reject FIR filter <a href="#aed7654868c14219e4a9bd75aa5b2c39e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a96177c53698f5d443a294358e8122674">band_reject_2</a> (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> window=WIN_HAMMING, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">use "window method" to design a band-reject FIR filter <a href="#a96177c53698f5d443a294358e8122674"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#ae885fbaeb36e33125affcfa7a908be5a">hilbert</a> (unsigned int ntaps=19, <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> windowtype=WIN_RECTANGULAR, double beta=6.76)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">design a Hilbert Transform Filter <a href="#ae885fbaeb36e33125affcfa7a908be5a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a06ddce94f6ea7477d9a2f4d165f0bb1c">root_raised_cosine</a> (double gain, double sampling_freq, double symbol_rate, double alpha, int ntaps)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">design a Root Cosine FIR Filter (do we need a window?) <a href="#a06ddce94f6ea7477d9a2f4d165f0bb1c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#abc309da910b6570a38f800093ebd12b1">gaussian</a> (double gain, double spb, double bt, int ntaps)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">design a Gaussian filter <a href="#abc309da910b6570a38f800093ebd12b1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__firdes.html#a5d1296e7e53019564a8a146fa3a9caaf">window</a> (<a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> type, int ntaps, double beta)</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Finite Impulse Response (FIR) filter design functions. </p> </div><hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a49ec223781ec35f82b52d3f51ab5456c"></a><!-- doxytag: member="gr_firdes::win_type" ref="a49ec223781ec35f82b52d3f51ab5456c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">gr_firdes::win_type</a></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a49ec223781ec35f82b52d3f51ab5456ca9ecf16aac5495bd054e124d073e23bfa"></a><!-- doxytag: member="WIN_HAMMING" ref="a49ec223781ec35f82b52d3f51ab5456ca9ecf16aac5495bd054e124d073e23bfa" args="" -->WIN_HAMMING</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a49ec223781ec35f82b52d3f51ab5456ca0283f236f2f1614bcb1534375d0a4d5c"></a><!-- doxytag: member="WIN_HANN" ref="a49ec223781ec35f82b52d3f51ab5456ca0283f236f2f1614bcb1534375d0a4d5c" args="" -->WIN_HANN</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a49ec223781ec35f82b52d3f51ab5456ca1c72b129266703afdcc486aebd763fe8"></a><!-- doxytag: member="WIN_BLACKMAN" ref="a49ec223781ec35f82b52d3f51ab5456ca1c72b129266703afdcc486aebd763fe8" args="" -->WIN_BLACKMAN</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a49ec223781ec35f82b52d3f51ab5456ca93358f88cb8ea7cc99ba5b1a45878290"></a><!-- doxytag: member="WIN_RECTANGULAR" ref="a49ec223781ec35f82b52d3f51ab5456ca93358f88cb8ea7cc99ba5b1a45878290" args="" -->WIN_RECTANGULAR</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a49ec223781ec35f82b52d3f51ab5456cacf24e696ceb7054a0f48ded24940106e"></a><!-- doxytag: member="WIN_KAISER" ref="a49ec223781ec35f82b52d3f51ab5456cacf24e696ceb7054a0f48ded24940106e" args="" -->WIN_KAISER</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a49ec223781ec35f82b52d3f51ab5456ca6bc60911da96133b31392c35cb4f797b"></a><!-- doxytag: member="WIN_BLACKMAN_hARRIS" ref="a49ec223781ec35f82b52d3f51ab5456ca6bc60911da96133b31392c35cb4f797b" args="" -->WIN_BLACKMAN_hARRIS</em> </td><td> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a074fc918cbcd8408898f2660a2d6bbf6"></a><!-- doxytag: member="gr_firdes::band_pass" ref="a074fc918cbcd8408898f2660a2d6bbf6" args="(double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::band_pass </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>low_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>high_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a band-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>low_cutoff_freq:</code> center of transition band (Hz) <code>high_cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="a1101286ed88565ed9b273670701cd07b"></a><!-- doxytag: member="gr_firdes::band_pass_2" ref="a1101286ed88565ed9b273670701cd07b" args="(double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::band_pass_2 </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>low_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>high_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>attenuation_dB</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a band-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>low_cutoff_freq:</code> center of transition band (Hz) <code>high_cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). <code>attenuation_dB</code> out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow --> more taps More attenuation --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="aed7654868c14219e4a9bd75aa5b2c39e"></a><!-- doxytag: member="gr_firdes::band_reject" ref="aed7654868c14219e4a9bd75aa5b2c39e" args="(double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::band_reject </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>low_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>high_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a band-reject FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>low_cutoff_freq:</code> center of transition band (Hz) <code>high_cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="a96177c53698f5d443a294358e8122674"></a><!-- doxytag: member="gr_firdes::band_reject_2" ref="a96177c53698f5d443a294358e8122674" args="(double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::band_reject_2 </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>low_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>high_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>attenuation_dB</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a band-reject FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>low_cutoff_freq:</code> center of transition band (Hz) <code>high_cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). <code>attenuation_dB</code> out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow --> more taps More attenuation --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="a2d35be73189d6763a00b5585159ee500"></a><!-- doxytag: member="gr_firdes::complex_band_pass" ref="a2d35be73189d6763a00b5585159ee500" args="(double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>> gr_firdes::complex_band_pass </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>low_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>high_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a complex band-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>low_cutoff_freq:</code> center of transition band (Hz) <code>high_cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="a7771ca6a6e9d430c2828573651eead19"></a><!-- doxytag: member="gr_firdes::complex_band_pass_2" ref="a7771ca6a6e9d430c2828573651eead19" args="(double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>> gr_firdes::complex_band_pass_2 </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>low_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>high_cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>attenuation_dB</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a complex band-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>low_cutoff_freq:</code> center of transition band (Hz) <code>high_cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). <code>attenuation_dB</code> out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow --> more taps More attenuation --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="abc309da910b6570a38f800093ebd12b1"></a><!-- doxytag: member="gr_firdes::gaussian" ref="abc309da910b6570a38f800093ebd12b1" args="(double gain, double spb, double bt, int ntaps)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::gaussian </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>spb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>bt</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>ntaps</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>design a Gaussian filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>symbols</code> per bit: symbol rate, must be a factor of sample rate <code>ntaps:</code> number of taps </p> </div> </div> <a class="anchor" id="acf767ad8eccf3c5c283d578599a63691"></a><!-- doxytag: member="gr_firdes::high_pass" ref="acf767ad8eccf3c5c283d578599a63691" args="(double gain, double sampling_freq, double cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::high_pass </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a high-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="a06bb3ea1c1bfeefe8ed860d23285c040"></a><!-- doxytag: member="gr_firdes::high_pass_2" ref="a06bb3ea1c1bfeefe8ed860d23285c040" args="(double gain, double sampling_freq, double cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::high_pass_2 </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>attenuation_dB</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a high-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). <code>attenuation_dB</code> out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow --> more taps More attenuation --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="ae885fbaeb36e33125affcfa7a908be5a"></a><!-- doxytag: member="gr_firdes::hilbert" ref="ae885fbaeb36e33125affcfa7a908be5a" args="(unsigned int ntaps=19, win_type windowtype=WIN_RECTANGULAR, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::hilbert </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>ntaps</em> = <code>19</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>windowtype</em> = <code>WIN_RECTANGULAR</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>design a Hilbert Transform Filter </p> <p><code>ntaps:</code> Number of taps, must be odd <code>window_type:</code> What kind of window to use <code>beta:</code> Only used for Kaiser </p> </div> </div> <a class="anchor" id="a0cf14cf1cab23b635081d0ff8bf6140a"></a><!-- doxytag: member="gr_firdes::low_pass" ref="a0cf14cf1cab23b635081d0ff8bf6140a" args="(double gain, double sampling_freq, double cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::low_pass </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a low-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="a7347642df3e2f5090db468750da56d56"></a><!-- doxytag: member="gr_firdes::low_pass_2" ref="a7347642df3e2f5090db468750da56d56" args="(double gain, double sampling_freq, double cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::low_pass_2 </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>cutoff_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>transition_width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>attenuation_dB</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>window</em> = <code>WIN_HAMMING</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> = <code>6.76</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>use "window method" to design a low-pass FIR filter </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>cutoff_freq:</code> center of transition band (Hz) <code>transition_width:</code> width of transition band (Hz). <code>attenuation_dB</code> required stopband attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow --> more taps More attenuatin --> more taps <code>window_type:</code> What kind of window to use. Determines maximum attenuation and passband ripple. <code>beta:</code> parameter for Kaiser window </p> </div> </div> <a class="anchor" id="a06ddce94f6ea7477d9a2f4d165f0bb1c"></a><!-- doxytag: member="gr_firdes::root_raised_cosine" ref="a06ddce94f6ea7477d9a2f4d165f0bb1c" args="(double gain, double sampling_freq, double symbol_rate, double alpha, int ntaps)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::root_raised_cosine </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>gain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sampling_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>symbol_rate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>alpha</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>ntaps</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>design a Root Cosine FIR Filter (do we need a window?) </p> <p><code>gain:</code> overall gain of filter (typically 1.0) <code>sampling_freq:</code> sampling freq (Hz) <code>symbol</code> rate: symbol rate, must be a factor of sample rate <code>alpha:</code> excess bandwidth factor <code>ntaps:</code> number of taps </p> </div> </div> <a class="anchor" id="a5d1296e7e53019564a8a146fa3a9caaf"></a><!-- doxytag: member="gr_firdes::window" ref="a5d1296e7e53019564a8a146fa3a9caaf" args="(win_type type, int ntaps, double beta)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classstd_1_1vector.html">std::vector</a><float> gr_firdes::window </td> <td>(</td> <td class="paramtype"><a class="el" href="classgr__firdes.html#a49ec223781ec35f82b52d3f51ab5456c">win_type</a> </td> <td class="paramname"><em>type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>ntaps</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>beta</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="gr__firdes_8h_source.html">gr_firdes.h</a></li> </ul> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="classgr__firdes.html">gr_firdes</a> </li> <li class="footer">Generated on Thu Feb 17 2011 for GNU Radio 3.2.2 C++ API by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>