python によるデジタル信号処理¶
Last Change: 09-Mar-2016.
author : qh73xe
このページでは python によるデジタル信号処理に関する記述を行います。 これに関しては特に教本を用意している訳ではなく、Web に転がっている情報をまとめていく感じになります。
プログラム基礎¶
まずは、信号処理に必要な基本的な情報について記述します。
使用環境¶
- python 3 系
- Scipy: 科学演算の為のライブラリ
- Matplotlib: 描画用ライブラリ
各種環境構築はそれぞれのOS環境に合わせてください。 基本的に Win 以外では python は入っているはずです。
例えば Fedora の場合以下のように環境を構築します。
sudo dnf install python3
sudo dnf install python3-scipy
sudo dnf install python3-matplotlib
- 当然 pip コマンドからライブラリの導入も可能ですが、 Scipy, Matplotlib ともに C ライブラリ依存な部分もあり、この処理に関しては pip からは行ってくれません。
- そのため、面倒くさい場合 dnf のようなシェル側のコマンドを利用した方が楽な場合もあります。
ラムダ式¶
ラムダ式とは基本的には関数 (def) と同様の機能を持つ式です。 def が文(つまり複数の式)であるのに対し ラムダ式は単一の式になります。
例えば以下の二つは同一の意味を持ちます。
# 関数 (def)
def add(x, y):
return x + y
print(add(1, 2))
# ラムダ式
f = lambda x, y: x + y
print(f(1, 2))
これは map 関数と組み合わせることで 定義した式をリスト等のイテレーター(for 文で回すことができるものだと思ってください)に適応することができます。
f = lambda x: 2 * x
itr = [1, 5, 2, 3, 20, 2]
map(f, itr)