Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > d2c3cd0736fcf741288cdfea8c6ba8c2 > files > 3303

gnuradio-doc-3.6.4.1-1.mga3.noarch.rpm

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>GNU Radio 3.6.4.1 C++ API: gr_pfb_interpolator_ccf Class Reference</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 href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<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 style="padding-left: 0.5em;">
   <div id="projectname">GNU Radio 3.6.4.1 C++ API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classgr__pfb__interpolator__ccf.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classgr__pfb__interpolator__ccf-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">gr_pfb_interpolator_ccf Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Polyphase filterbank interpolator with gr_complex input, gr_complex output and float taps.  
 <a href="classgr__pfb__interpolator__ccf.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="pfb__interpolator__ccf_8h_source.html">pfb_interpolator_ccf.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gr_pfb_interpolator_ccf:</div>
<div class="dyncontent">
<div class="center"><img src="classgr__pfb__interpolator__ccf__inherit__graph.png" border="0" usemap="#gr__pfb__interpolator__ccf_inherit__map" alt="Inheritance graph"/></div>
<map name="gr__pfb__interpolator__ccf_inherit__map" id="gr__pfb__interpolator__ccf_inherit__map">
<area shape="rect" id="node2" href="classgr__sync__interpolator.html" title="synchronous 1:N input to output with historyOverride work to provide the signal processing implementa..." alt="" coords="84,408,223,435"/><area shape="rect" id="node4" href="classgr__sync__block.html" title="synchronous 1:1 input to output with historyOverride work to provide the signal processing implementa..." alt="" coords="100,333,207,360"/><area shape="rect" id="node6" href="classgr__block.html" title="The abstract base class for all &#39;terminal&#39; processing blocks.A signal processing flow is constructed ..." alt="" coords="118,259,188,285"/><area shape="rect" id="node8" href="classgr__basic__block.html" title="The abstract base class for all signal processing blocks.Basic blocks are the bare abstraction of an ..." alt="" coords="99,184,208,211"/><area shape="rect" id="node10" href="classgr__msg__accepter.html" title="Accepts messages and inserts them into a message queue, then notifies subclass gr_basic_block there i..." alt="" coords="13,95,136,121"/><area shape="rect" id="node12" href="classgruel_1_1msg__accepter.html" title="Virtual base class that accepts messages." alt="" coords="5,5,144,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2eaf438a9cd2790dc7d124756d845887"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__pfb__interpolator__ccf.html#a2eaf438a9cd2790dc7d124756d845887">~gr_pfb_interpolator_ccf</a> ()</td></tr>
<tr class="separator:a2eaf438a9cd2790dc7d124756d845887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a892dd61b67931a1b46fddeb078af82dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__pfb__interpolator__ccf.html#a892dd61b67931a1b46fddeb078af82dd">set_taps</a> (const std::vector&lt; float &gt; &amp;<a class="el" href="gr-filter_2include_2filter_2interpolator__taps_8h.html#a30bf032e13c2a9fc4a98e14e390cd65a">taps</a>)</td></tr>
<tr class="separator:a892dd61b67931a1b46fddeb078af82dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13f6b31430b26996bfa9d057746adf0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__pfb__interpolator__ccf.html#a13f6b31430b26996bfa9d057746adf0c">print_taps</a> ()</td></tr>
<tr class="separator:a13f6b31430b26996bfa9d057746adf0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc835f4e97638fd6d495832fd457932d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__pfb__interpolator__ccf.html#afc835f4e97638fd6d495832fd457932d">work</a> (int noutput_items, <a class="el" href="gr__types_8h.html#a9852a3d906d823cb70eb9c29e7f2a43d">gr_vector_const_void_star</a> &amp;input_items, <a class="el" href="gr__types_8h.html#acd3f499576e769966ea44554b359d949">gr_vector_void_star</a> &amp;output_items)</td></tr>
<tr class="memdesc:afc835f4e97638fd6d495832fd457932d"><td class="mdescLeft">&#160;</td><td class="mdescRight">just like <a class="el" href="classgr__block.html#adf59080d10f322e3816b7ac8f7cb2a7c" title="compute output items from input items">gr_block::general_work</a>, only this arranges to call consume_each for you  <a href="#afc835f4e97638fd6d495832fd457932d"></a><br/></td></tr>
<tr class="separator:afc835f4e97638fd6d495832fd457932d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgr__sync__interpolator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgr__sync__interpolator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgr__sync__interpolator.html">gr_sync_interpolator</a></td></tr>
<tr class="memitem:a39beb8a7754295afcc0ff4e5240ceaaf inherit pub_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a39beb8a7754295afcc0ff4e5240ceaaf">interpolation</a> () const </td></tr>
<tr class="separator:a39beb8a7754295afcc0ff4e5240ceaaf inherit pub_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25bb02d6ac26404780bdd217355107ad inherit pub_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top"><a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a25bb02d6ac26404780bdd217355107ad">set_interpolation</a> (unsigned <a class="el" href="classgr__sync__interpolator.html#a39beb8a7754295afcc0ff4e5240ceaaf">interpolation</a>)</td></tr>
<tr class="separator:a25bb02d6ac26404780bdd217355107ad inherit pub_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81ef017ef4ec17d0808cd1c0e2ceb803 inherit pub_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top"><a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a81ef017ef4ec17d0808cd1c0e2ceb803">forecast</a> (int noutput_items, <a class="el" href="gr__types_8h.html#ab02d0a829d67d39e3ac3163016d3a8be">gr_vector_int</a> &amp;ninput_items_required)</td></tr>
<tr class="memdesc:a81ef017ef4ec17d0808cd1c0e2ceb803 inherit pub_methods_classgr__sync__interpolator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate input requirements given output request.  <a href="#a81ef017ef4ec17d0808cd1c0e2ceb803"></a><br/></td></tr>
<tr class="separator:a81ef017ef4ec17d0808cd1c0e2ceb803 inherit pub_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49cd2967b214ead14270d97dab932301 inherit pub_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a49cd2967b214ead14270d97dab932301">general_work</a> (int noutput_items, <a class="el" href="gr__types_8h.html#ab02d0a829d67d39e3ac3163016d3a8be">gr_vector_int</a> &amp;ninput_items, <a class="el" href="gr__types_8h.html#a9852a3d906d823cb70eb9c29e7f2a43d">gr_vector_const_void_star</a> &amp;input_items, <a class="el" href="gr__types_8h.html#acd3f499576e769966ea44554b359d949">gr_vector_void_star</a> &amp;output_items)</td></tr>
<tr class="memdesc:a49cd2967b214ead14270d97dab932301 inherit pub_methods_classgr__sync__interpolator"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute output items from input items  <a href="#a49cd2967b214ead14270d97dab932301"></a><br/></td></tr>
<tr class="separator:a49cd2967b214ead14270d97dab932301 inherit pub_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a943227c6134e71a7867a66977b414533 inherit pub_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a943227c6134e71a7867a66977b414533">fixed_rate_ninput_to_noutput</a> (int ninput)</td></tr>
<tr class="memdesc:a943227c6134e71a7867a66977b414533 inherit pub_methods_classgr__sync__interpolator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given ninput samples, return number of output samples that will be produced. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.  <a href="#a943227c6134e71a7867a66977b414533"></a><br/></td></tr>
<tr class="separator:a943227c6134e71a7867a66977b414533 inherit pub_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03961e37cf520668a87f53762e638b9f inherit pub_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a03961e37cf520668a87f53762e638b9f">fixed_rate_noutput_to_ninput</a> (int noutput)</td></tr>
<tr class="memdesc:a03961e37cf520668a87f53762e638b9f inherit pub_methods_classgr__sync__interpolator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given noutput samples, return number of input samples required to produce noutput. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.  <a href="#a03961e37cf520668a87f53762e638b9f"></a><br/></td></tr>
<tr class="separator:a03961e37cf520668a87f53762e638b9f inherit pub_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a290d9edfb106407c38022ca2905c5a5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="gr__core__api_8h.html#a8b8937b0c61edd85ab57ce8203543248">GR_CORE_API</a> <br class="typebreak"/>
<a class="el" href="classboost_1_1shared__ptr.html">gr_pfb_interpolator_ccf_sptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__pfb__interpolator__ccf.html#a290d9edfb106407c38022ca2905c5a5d">gr_make_pfb_interpolator_ccf</a> (unsigned int interp, const std::vector&lt; float &gt; &amp;<a class="el" href="gr-filter_2include_2filter_2interpolator__taps_8h.html#a30bf032e13c2a9fc4a98e14e390cd65a">taps</a>)</td></tr>
<tr class="separator:a290d9edfb106407c38022ca2905c5a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classgr__block"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classgr__block')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classgr__block.html">gr_block</a></td></tr>
<tr class="memitem:af026aa236701757fd5f71129daad883c inherit pub_types_classgr__block"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classgr__block.html#af026aa236701757fd5f71129daad883ca248a1e0554813ce26007ff5ec1530392">WORK_CALLED_PRODUCE</a> = -2, 
<a class="el" href="classgr__block.html#af026aa236701757fd5f71129daad883ca221c2211857dcee81fb2bbb97fe6b223">WORK_DONE</a> = -1
 }</td></tr>
<tr class="memdesc:af026aa236701757fd5f71129daad883c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Magic return values from general_work.  <a href="classgr__block.html#af026aa236701757fd5f71129daad883c">More...</a><br/></td></tr>
<tr class="separator:af026aa236701757fd5f71129daad883c inherit pub_types_classgr__block"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32561c88f124ea07881879fe79840f61 inherit pub_types_classgr__block"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__block.html#a32561c88f124ea07881879fe79840f61">tag_propagation_policy_t</a> { <a class="el" href="classgr__block.html#a32561c88f124ea07881879fe79840f61ad472255a4873399940aec9d614d82287">TPP_DONT</a> = 0, 
<a class="el" href="classgr__block.html#a32561c88f124ea07881879fe79840f61ac59dabb0af9fac19958d18378f3cfbfb">TPP_ALL_TO_ALL</a> = 1, 
<a class="el" href="classgr__block.html#a32561c88f124ea07881879fe79840f61a98228946b0f3b3887230269c9ba5a60f">TPP_ONE_TO_ONE</a> = 2
 }</td></tr>
<tr class="separator:a32561c88f124ea07881879fe79840f61 inherit pub_types_classgr__block"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_types_classgr__basic__block"><td colspan="2" onclick="javascript:toggleInherit('pro_types_classgr__basic__block')"><img src="closed.png" alt="-"/>&#160;Protected Types inherited from <a class="el" href="classgr__basic__block.html">gr_basic_block</a></td></tr>
<tr class="memitem:a5c90b7c003ddd61f8df6bef2aceeab3d inherit pro_types_classgr__basic__block"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__basic__block.html#a5c90b7c003ddd61f8df6bef2aceeab3d">vcolor</a> { <a class="el" href="classgr__basic__block.html#a5c90b7c003ddd61f8df6bef2aceeab3da476d594a077e729bad0f2cfa2008c899">WHITE</a>, 
<a class="el" href="classgr__basic__block.html#a5c90b7c003ddd61f8df6bef2aceeab3daa6cce7ec34a3f9cf917e545a743dc89f">GREY</a>, 
<a class="el" href="classgr__basic__block.html#a5c90b7c003ddd61f8df6bef2aceeab3da0abd1c82699481ffa502e5bb8d7bdaec">BLACK</a>
 }</td></tr>
<tr class="separator:a5c90b7c003ddd61f8df6bef2aceeab3d inherit pro_types_classgr__basic__block"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classgr__sync__interpolator"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classgr__sync__interpolator')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classgr__sync__interpolator.html">gr_sync_interpolator</a></td></tr>
<tr class="memitem:a6500688a4733d87b823c15ae944b73ea inherit pro_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a6500688a4733d87b823c15ae944b73ea">gr_sync_interpolator</a> (<a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a>)</td></tr>
<tr class="separator:a6500688a4733d87b823c15ae944b73ea inherit pro_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0038ee6e80dc446b02ff1caf2556780b inherit pro_methods_classgr__sync__interpolator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__sync__interpolator.html#a0038ee6e80dc446b02ff1caf2556780b">gr_sync_interpolator</a> (const std::string &amp;<a class="el" href="classgr__basic__block.html#aa12a20d8b8eab341da935530d29299d2">name</a>, <a class="el" href="classboost_1_1shared__ptr.html">gr_io_signature_sptr</a> <a class="el" href="classgr__basic__block.html#a58f6d05e85931200f3771d3e50741281">input_signature</a>, <a class="el" href="classboost_1_1shared__ptr.html">gr_io_signature_sptr</a> <a class="el" href="classgr__basic__block.html#add68b96f012dfe352700b4fd1c3a184a">output_signature</a>, unsigned <a class="el" href="classgr__sync__interpolator.html#a39beb8a7754295afcc0ff4e5240ceaaf">interpolation</a>)</td></tr>
<tr class="separator:a0038ee6e80dc446b02ff1caf2556780b inherit pro_methods_classgr__sync__interpolator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classgr__block"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classgr__block')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classgr__block.html">gr_block</a></td></tr>
<tr class="memitem:ab467fa14adf6b63148588ffbbe266d82 inherit pro_attribs_classgr__block"><td class="memItemLeft" align="right" valign="top">std::vector&lt; long &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__block.html#ab467fa14adf6b63148588ffbbe266d82">d_max_output_buffer</a></td></tr>
<tr class="separator:ab467fa14adf6b63148588ffbbe266d82 inherit pro_attribs_classgr__block"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c331f7d38508c9955ef01f483c573d6 inherit pro_attribs_classgr__block"><td class="memItemLeft" align="right" valign="top">std::vector&lt; long &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__block.html#a9c331f7d38508c9955ef01f483c573d6">d_min_output_buffer</a></td></tr>
<tr class="separator:a9c331f7d38508c9955ef01f483c573d6 inherit pro_attribs_classgr__block"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace960ec997da0fff8fc44168983b1a55 inherit pro_attribs_classgr__block"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegruel.html#a16a913898c1d7f7a8ee459eb7ace413d">gruel::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__block.html#ace960ec997da0fff8fc44168983b1a55">d_setlock</a></td></tr>
<tr class="separator:ace960ec997da0fff8fc44168983b1a55 inherit pro_attribs_classgr__block"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Polyphase filterbank interpolator with gr_complex input, gr_complex output and float taps. </p>
<p>This block takes in a signal stream and performs interger up- sampling (interpolation) with a polyphase filterbank. The first input is the integer specifying how much to interpolate by. The second input is a vector (Python list) of floating-point taps of the prototype filter.</p>
<p>The filter's taps should be based on the interpolation rate specified. That is, the bandwidth specified is relative to the bandwidth after interpolation.</p>
<p>For example, using the GNU Radio's firdes utility to building filters, we build a low-pass filter with a sampling rate of <em>fs</em>, a 3-dB bandwidth of <em>BW</em> and a transition bandwidth of <em>TB</em>. We can also specify the out-of-band attenuation to use, ATT, and the filter window function (a Blackman-harris window in this case). The first input is the gain, which is also specified as the interpolation rate so that the output levels are the same as the input (this creates an overall increase in power).</p>
<p><b><em>self._taps = filter.firdes.low_pass_2(interp, interp*fs, BW, TB, attenuation_dB=ATT, window=filter.firdes.WIN_BLACKMAN_hARRIS)</em></b></p>
<p>The PFB interpolator code takes the taps generated above and builds a set of filters. The set contains <em>interp</em> number of filters and each filter contains ceil(taps.size()/interp) number of taps. Each tap from the filter prototype is sequentially inserted into the next filter. When all of the input taps are used, the remaining filters in the filterbank are filled out with 0's to make sure each filter has the same number of taps.</p>
<p>The theory behind this block can be found in Chapter 7.1 of the following book.</p>
<p><b><em>f. harris, "Multirate Signal Processing for Communication
      Systems&lt;/EM&gt;," Upper Saddle River, NJ: Prentice Hall, Inc. 2004.</em></b> </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2eaf438a9cd2790dc7d124756d845887"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gr_pfb_interpolator_ccf::~gr_pfb_interpolator_ccf </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a13f6b31430b26996bfa9d057746adf0c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a> gr_pfb_interpolator_ccf::print_taps </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Print all of the filterbank taps to screen. </p>

</div>
</div>
<a class="anchor" id="a892dd61b67931a1b46fddeb078af82dd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a> gr_pfb_interpolator_ccf::set_taps </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>taps</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Resets the filterbank's filter taps with the new prototype filter </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">taps</td><td>(vector/list of floats) The prototype filter to populate the filterbank. The taps should be generated at the interpolated sampling rate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afc835f4e97638fd6d495832fd457932d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int gr_pfb_interpolator_ccf::work </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>noutput_items</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="gr__types_8h.html#a9852a3d906d823cb70eb9c29e7f2a43d">gr_vector_const_void_star</a> &amp;&#160;</td>
          <td class="paramname"><em>input_items</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="gr__types_8h.html#acd3f499576e769966ea44554b359d949">gr_vector_void_star</a> &amp;&#160;</td>
          <td class="paramname"><em>output_items</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>just like <a class="el" href="classgr__block.html#adf59080d10f322e3816b7ac8f7cb2a7c" title="compute output items from input items">gr_block::general_work</a>, only this arranges to call consume_each for you </p>
<p>The user must override work to define the signal processing code </p>

<p>Implements <a class="el" href="classgr__sync__block.html#a0c523f4285a6eb690f677ee6295ab117">gr_sync_block</a>.</p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a290d9edfb106407c38022ca2905c5a5d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="gr__core__api_8h.html#a8b8937b0c61edd85ab57ce8203543248">GR_CORE_API</a> <a class="el" href="classboost_1_1shared__ptr.html">gr_pfb_interpolator_ccf_sptr</a> gr_make_pfb_interpolator_ccf </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>interp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>taps</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Build the polyphase filterbank interpolator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">interp</td><td>(unsigned integer) Specifies the interpolation rate to use </td></tr>
    <tr><td class="paramname">taps</td><td>(vector/list of floats) The prototype filter to populate the filterbank. The taps should be generated at the interpolated sampling rate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="pfb__interpolator__ccf_8h_source.html">pfb_interpolator_ccf.h</a></li>
<li><a class="el" href="gr__pfb__interpolator__ccf_8h_source.html">gr_pfb_interpolator_ccf.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classgr__pfb__interpolator__ccf.html">gr_pfb_interpolator_ccf</a></li>
    <li class="footer">Generated on Fri Apr 19 2013 16:20:38 for GNU Radio 3.6.4.1 C++ API by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3 </li>
  </ul>
</div>
</body>
</html>