IIR Filter

From GNU Radio
Revision as of 18:49, 15 August 2023 by MarcusMueller (talk | contribs) (→‎Action Screenshots: superfluous ])
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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]