実験結果のデータにディジタルフィルタをかけるために、バタワース低域フィルタをOctaveを用いて作成しています。


バタワースフィルタの設計を勉強して、振幅特性の図示は出来るようになったのですが、実際に実験データ(CSV形式)をフィルタにかける方法がわからなく困っています。

Octave(MATLAB)のbuttord、butter、filter関数を使って、CSVで与えられる実験結果をフィルタにかけることは可能でしょうか?

もし可能であれば、その方法か解決のヒントを教えてください!
また、参考になるWebサイトもあればうれしいです。

また、バタワースフィルタではなくこうすればCSVで与えられた実験結果をローパスフィルタにかけられるというサンプルなどがあれば参考にさせてください。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:2008/12/17 16:06:14
  • 終了:2008/12/22 10:24:27

ベストアンサー

id:toomuchpopcorn No.1

toomuchpopcorn回答回数5ベストアンサー獲得回数12008/12/20 03:52:15

ポイント60pt

http://www.ritsumei.ac.jp/se/~ogasawar/Matlab/OGTutorial.html


4.データ処理 が分かりやすいと思います。


あらかじめフィルタ係数a, bを、例えば5次バタワースLPF(fc10Hz、1000Hzサンプル)の場合、

[b,a]=butter(5,10/500);

などと定義しておいて、

x2=filter(b,a,x1)のようにfilter関数を使えばフィルタがかかります。

ここでx1が入力、x2が出力です。


実験結果が入ったcsvは、csvread関数を用いれば全体を一つの配列として読み取ることができます。そこから行や列を切り出して、filter関数の入力にするといいでしょう。


URLはMatlabについてですが、butter, filter, csvreadの各関数はoctaveでも使用可能でした。

(3.0.1 version)

id:imototakeshi

ありがとうございます!!

参考になります!!!

2008/12/20 08:20:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません