Python で双一次変換(フィルタ変換用)

Python で双一次変換(フィルタ変換用)を行なう方法のメモ。
双一次変換はデジタル信号処理において、連続時間系のフィルタ(アナログフィルタ)を離散時間系のフィルタ(デジタルフィルタ)に変換する標準的な方法です。
これにより、連続系で設計されたフィルタの特性を離散時間系に利用することができます。

# coding: utf-8
import numpy as np
from scipy import signal
from matplotlib import pyplot as plt

Fs = 0.5
z, p, k = signal.ellipap(6, 5, 90)
num, den = signal.zpk2tf(z, p, k)
numd, dend = signal.bilinear(num, den, Fs)
wd, hd = signal.freqz(numd, dend)

plt.figure()
plt.plot(wd/max(wd), 20*np.log10(abs(hd)))
plt.xlabel("Normalized Frequency[rad/sample]")
plt.ylabel("Magnitude[dB]")
plt.grid()
plt.show()

15072701.png

コメント

Comments powered by Disqus
書籍更新情報
2016-10-21
Pythonによる科学技術計算 基礎編
PDF版の販売を開始しました。
販売ページはこちら

2016-09-09
Pythonによる科学技術計算 基礎編
1.2版への更新が可能になりました。
サポートページはこちら
電子書籍
Pythonによる科学技術計算 基礎編
Kindle ストア、Leanpubで販売中です
Pythonによる科学技術計算 基礎編
PDF版の販売はこちら
同人誌
技術書典(2016/6/25)
Emacs/org-modeのPDF作成術
電子版をBOOTHで販売中です
Emacs/org-modeのPDF作成術
Share