デジタルフィルターの実験
Python scipyでデジタルフィルターの実験をしてみた。
インプットとしてフォトレジスターの値をMCP3208で読み取った。Raspberry Pi 4BにSPIでインターフェースしている。回路図左側のラベルはRaspberry Pi 4BのGPIO信号で、カッコ内はヘッダーピン番号。
0.01秒周期で512サンプル行った。読み取ったサンプルデータに対して先人の知恵に学びながButterフィルターをかけてみた。
写真のセットを机の上(蛍光灯、LED証明、LCDモニター前)に置いた場合。
通過域端周波数 4Hz、阻止域端周波数 6Hz
どうやら蛍光灯の影響で3Hzから4Hzの間の周波数でCdS出力が変化する(蛍光灯を切るとこの周期の波はなくなった)。通過域端周波数を4Hzとするとフィルター出力は正にこの変化を捉えることになった。
通過域端周波数 1Hz, 阻止域端周波数 3Hz
通過域端周波数を1Hzとすると、3~4Hzの波の下に隠れている周波数成分を取り出すことが出来たようだ。
ちなみに蛍光灯を消した状態ではこんな感じになった。
CdSを手で覆って光を遮断した状態
通過域端周波数 4Hz、阻止域端周波数 6Hz
CdSの光を遮断(センサー表面を手で隠す)した場合、相対的にノイズ成分が多くなる。この状態でフィルターしてみた。確かにノイズの下に隠れている波を取り出しているように見える。
CdSの上およそ20cmのところで手のひらを1秒弱で往復させた場合
通過域端周波数 2Hz、阻止域端周波数 4Hz
1~2Hz程度でインプットがあった場合の周期性を捉える実験もしてみた。これは手のひらを通過させたときの出力変位が多きの出フィルターするまでもない感じだけれども、仮に多量にノイズが乗っていても恐らく同様の結果が得られるものと期待できる。
記録のためにここで使ったコードは以下に置く。多くの方々の知恵をまとめて一つにしたもの。
感謝。
« ADCのサンプリングレート | トップページ | 台湾YUASAのバッテリーをオーダー »
「ツールの使い方」カテゴリの記事
- Windows10の起動不良対応の備忘録(2025.02.20)
- WIRES-Xのルームでの写真ファイルの取扱い(2025.02.05)
- Chrome Remote DesktopでクライアントPCにて右シフトキーが使えない件(2024.12.30)
- WIRES-Xで入力デバイスが設定出来ない件(2024.12.22)
- NTT ONU+ホームゲートウエイの初期化(2024.08.19)
「ラズパイ日記」カテゴリの記事
- NEO-7M GPSモジュールが中国から届いた(2023.01.15)
- TNCアプリにおけるDemoduatorの動作確認(2023.01.09)
- AFSKでの復調について(2023.01.04)
- APRSでのNRZIについて備忘録(2023.01.02)
- pico_tnc 2200Hz(Space)でPhaseをずらす件の備忘録(2022.12.31)
コメント