IIR Filter: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
Line 15: Line 15:
== Example Flowgraph ==
== 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.
=== 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 ==

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

Test iir.png


Action Screenshots

This is operating on white noise instead of the audio file.

Default (flat) Setting

Eq flat.png]


Second Bandpass Amplified

Eq peak.png]

Source Files

C++ files
Main file
Public header files
Main file
Block definition
[1]