Top

あちゃぴーの自転車通勤
Audacity Nyquist Biquad Filter

2次IIR(無限インパルス応答)デジタルフィルタ

係数を自由に入れられるタイプの2次IIRをNyquistで作ってみる。

Biquad Filter

基本となる式

Biquad Filter

上記式から2poleのプロトタイプを計算

Biquad Filter

LPFを作りたいので、上記式 s に次式を代入する。

LPF: ((z-1)/(z+1)) / (2πfc)

fcの中はこんなかんじ。ωcはカットオフ周波数で、fsはサンプリング周波数。

Biquad Filter

ブロック図は下図を採用。

IIR 2N

Biquad Filter プログラム ソース Nyquist

$nyquist plug-in
$version 1
$type process
$name (_ "Achapi Biquad Filter")
$author (_ "Achapi")
$release 
$copyright (_ "")

;control b0 "b0" real " " 1.5351248958697 -3.0000 3.0000 
;control b1 "b1" real " " -2.69169618940638 -3.0000 3.0000
;control b2 "b2" real " " 1.19839281085285 -3.0000 3.0000
;control a0 "a0" real " " 1.0 -3.0000 3.0000
;control a1 "a1" real " " -1.69065929318241 -3.0000 3.0000
;control a2 "a2" real " " 0.73248077421585 -3.0000 3.0000

(biquad-m s b0 b1 b2 a0 a1 a2)

他言語では1から作るのだが、Nyquistでは、あらかじめ作られた関数を使うだけで済むので非常に簡素に出来てしまった。 係数は別途計算が必要。

係数計算 プログラム

随分前にCとかJavaで作ったものがあるので、そのうちホームページ上でも計算できるようにJavaScriptに移植しようと思う。

Nyquist