IIR Filter: Difference between revisions
(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...") |
m (→Action Screenshots: superfluous ]) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Block Docs]] | [[Category:Block Docs]] | ||
Construct an IIR with the given taps. | |||
== 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> | ||
; | ; Feed-Forward taps (''R'') | ||
: | : | ||
; | ; Feedback taps (''R'') | ||
: | : | ||
; Old style of taps : The old style of the IIR filter uses feedback taps that are negative of what most definitions use (scipy and Matlab among them). This parameter keeps using the old GNU Radio style and is set to TRUE by default. When taps generated from scipy, Matlab, or gr_filter_design, use the new style by setting this to FALSE. | |||
== Example Flowgraph == | == Example Flowgraph == | ||
=== 8-Band IIR Biquad Equalizer === | |||
==== Flow Graph File ==== | |||
Can be found [https://gist.github.com/marcusmueller/dadb6a18cddd3a2df8158f33936a74c2#file-test_iir-grc here], alongside with an example of an [https://gist.github.com/marcusmueller/dadb6a18cddd3a2df8158f33936a74c2/raw/edbf0f1cd3aeaa5ca6e1e453ae348c978e63f562/foxtale1.opus audio file] that can be used (mono, 48 kHz, libsndfile supported coded (Opus), "Fox Tale Waltz Part 1" Kevin MacLeod (incompetech.com) Licensed under [http://creativecommons.org/licenses/by/4.0/ Creative Commons: By Attribution 4.0 License]). | |||
==== Description ==== | |||
In this very complex flowgraph, we use coefficients as calculated in Robert Bristow-Johnson [https://webaudio.github.io/Audio-EQ-Cookbook/Audio-EQ-Cookbook.txt Cookbook formulae for audio EQ biquad filter coefficients] in a "peakingEQ" configuration. | |||
We choose 8 logarithmically distributed frequencies, and make the (linear!) gain for each of these frequencies adjustable. (The frequencies are also adjustable.) | |||
By disabling the [[Wav File Source]] and enabling the Noise source, you can see the frequency response of these filters; you'll want to disable the [[Audio Sink]], to save your speakers from white noise. Enable the [[Audio Source]] instead to get a passthrough equalizer. | |||
==== Flowgraph Picture ==== | |||
[[File:test_iir.png]] | |||
==== Action Screenshots ==== | |||
This is operating on white noise instead of the audio file. | |||
===== Default (flat) Setting ===== | |||
[[File:Eq_flat.png]] | |||
===== Second Bandpass Amplified ===== | |||
[[File:Eq_peak.png]] | |||
== Source Files == | == Source Files == | ||
; C++ files | ; C++ files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-filter/lib/iir_filter.cc Main file] | ||
; Public header files | ; Public header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-filter/include/gnuradio/filter/iir_filter.h Main file ] | ||
; Block definition | ; Block definition | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-filter/grc/filter_iir_filter_xxx.block.yml] |
Latest revision as of 18:49, 15 August 2023
Construct an IIR with the given taps.
Parameters
(R): Run-time adjustable
- Feed-Forward taps (R)
- Feedback taps (R)
- Old style of taps
- The old style of the IIR filter uses feedback taps that are negative of what most definitions use (scipy and Matlab among them). This parameter keeps using the old GNU Radio style and is set to TRUE by default. When taps generated from scipy, Matlab, or gr_filter_design, use the new style by setting this to FALSE.
Example Flowgraph
8-Band IIR Biquad Equalizer
Flow Graph File
Can be found here, alongside with an example of an audio file that can be used (mono, 48 kHz, libsndfile supported coded (Opus), "Fox Tale Waltz Part 1" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License).
Description
In this very complex flowgraph, we use coefficients as calculated in Robert Bristow-Johnson Cookbook formulae for audio EQ biquad filter coefficients in a "peakingEQ" configuration.
We choose 8 logarithmically distributed frequencies, and make the (linear!) gain for each of these frequencies adjustable. (The frequencies are also adjustable.)
By disabling the Wav File Source and enabling the Noise source, you can see the frequency response of these filters; you'll want to disable the Audio Sink, to save your speakers from white noise. Enable the Audio Source instead to get a passthrough equalizer.
Flowgraph Picture
Action Screenshots
This is operating on white noise instead of the audio file.
Default (flat) Setting
Second Bandpass Amplified
Source Files
- C++ files
- Main file
- Public header files
- Main file
- Block definition
- [1]