トラ技2009/1に載っていた、一番簡単なサンプルである、1Hzのバンドパスフィルタを使ってLEDをホンワカ点灯させるアプリを組んでみる。分かりやすい解説のお陰で問題なく稼動したが、フィルタのパラメータ値がなぜこの値(1000Hzフィルタ設定)で1Hzのフィルタとして動くのか??まったく理解できない。
ぐぐってみると、やっぱりフィルタの計算の方法で悩んでいる人がおられるようで、、解説記事もありました。
■追記 090322
左の画面が、filter wizardの設定値を示しており、製作記事では1Hzのフィルタをこれで作っていることになっている。。分からないのは、中心周波数(Fcenter)がなぜ1000Hz(1KHz)なのか。。これはひょっとして、表示どおり、1KHzのフィルタを作っているだけ、、??
記事を疑って、Fcenterを500Hzに変更したらLEDの点滅が早くなったので、やっぱりちゃんとフィルターしているようだ。
■追記 090322(2)
なんとなく分かった自分の理解。。フィルタ回路もアナログを近似したデジタル回路で動いているので、フィルタブロックに動作クロックを入れる必要がある。Wizardで作ったのは、1000Hzをフィルタする回路で、動作周波数は50倍サンプリングとして5KHzを想定している。フィルタ回路の動作クロックとして5KHzを投入すると1000Hzのフィルタとして動作する。今回は、1Hzのフィルタとして動作させたいので、動作クロックとして1/1000である50Hzをフィルタブロックに投入すれば良い。ただし、フィルタブロックは与えられた動作クロックを4分周して用いるので、200Hzを与えれば、1Hzのフィルタとして動作する。確かに、製作記事の回路図でもフィルタブロックの動作クロックとして200Hzを与えているのでつじつまが合う!!
■参考情報
ご参考にフィルタ計算を説明されたURLを貼り付けておきます。。
http://www.pastelmagic.com/psocbbs/index.cgi?m=read&bnum=1346&num=1348
BPFのマニュアルは以下にあります。これをよーく読めば、フィルタのパラメータ設定が理解できるのかも。。
XX:\Program Files\Cypress\PSoC Designer 5\Documentation\User_Module_Datasheets\StdUM\BPF2.pdf