Difference between revisions of "Interpolating FIR Filter"

From GNU Radio
Jump to: navigation, search
(Created page with "Category:Block Docs Category:Stub Docs This is the template for the "Page-per-block Docs". This first section should describe what the block...")
 
Line 1: Line 1:
 
[[Category:Block Docs]]
 
[[Category:Block Docs]]
[[Category:Stub Docs]]
+
Interpolating FIR filter with various I/O and taps types.
This is the template for the [[:Category:Block_Docs|"Page-per-block Docs"]].  This first section should describe what the block does and how to use it, using however many paragraphs necessary.  Note that the title of the wiki page should match the block's name in GRC, i.e. the one defined in the block's .grc file.  Look at the [[FFT]] Block for a good example.
 
  
As this is a basic template, it's also in the [[:Category:Stub_Docs|"Stub Docs category"]]. Please improve it.
+
The block create finite impulse response (FIR) filters that perform the convolution in the time domain:
 +
out = 0
 +
for i in ntaps:
 +
  out += input[n-i] * taps[i]
  
 
== Parameters ==
 
== Parameters ==
 
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>
 
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>
  
; Param 1 (''R'')
+
; Interpolation
: Description of parameter, provide any tips or recommended values.  Note that the name of the parameter above should match the param's label that shows up in grc (e.g. Sample Rate).
+
: Interpolation rate
  
; Param 2
+
; Taps (''R'')
: blah blah blah
+
: The taps are a C++ vector (or Python list) of values of the type specified in the type selection list. Taps can be created using the firdes or optfir tools.
 +
 
 +
; Sample delay
 +
: This delay is mostly used to adjust the placement of the tags and is not currently used for any signal processing. When a tag is passed through a block with internal delay, its location should be moved based on the delay of the block.
  
 
== Example Flowgraph ==
 
== Example Flowgraph ==
Line 21: Line 26:
  
 
; C++ files
 
; C++ files
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-filter/lib/interp_fir_filter_impl.cc]
  
 
; Header files
 
; Header files
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-filter/lib/interp_fir_filter_impl.h]
  
 
; Public header files
 
; Public header files
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-filter/include/gnuradio/filter/interp_fir_filter.h]
  
 
; Block definition
 
; Block definition
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-filter/grc/filter_interp_fir_filter_xxx.block.yml]

Revision as of 11:15, 3 August 2019

Interpolating FIR filter with various I/O and taps types.

The block create finite impulse response (FIR) filters that perform the convolution in the time domain: out = 0 for i in ntaps:

  out += input[n-i] * taps[i]

Parameters

(R): Run-time adjustable

Interpolation
Interpolation rate
Taps (R)
The taps are a C++ vector (or Python list) of values of the type specified in the type selection list. Taps can be created using the firdes or optfir tools.
Sample delay
This delay is mostly used to adjust the placement of the tags and is not currently used for any signal processing. When a tag is passed through a block with internal delay, its location should be moved based on the delay of the block.

Example Flowgraph

Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately. The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.

Source Files

C++ files
[1]
Header files
[2]
Public header files
[3]
Block definition
[4]