LoginSignup
0
0

エレキ素人が何か考える(その24):ローパスフィルターの初歩

Posted at

ローパスフィルターを感じる

先日購入したデジタルオシロスコープ(OpenScope MZ)を有効活用しようと、ローパスフィルターにトライ。

ローパスフィルター

ローパスフィルターは、もじどおり、低周波数成分を通し、高周波成分を通さないものである。単純回路的には、抵抗とコンデンサとが下記のような配置となるもの。
image.png

三角波

ここでは、周波数成分をソフトウェア的に変化させたかったため、マイコンを利用することにした。以前、Wio Terminalで正弦波(MicroPythonを使ってみる(その4)&エレキ素人が何か考える(その7):DAコンバーター) を作ったとき、高周波成分を作るのが、性能的に厳しかったため、今回は三角波を使うことにした。

MicroPythonソースコード

Wio TerminalのDAコンバーターの精度は10bit(0-4095)であるため、下記のような三角波を生成。
image.png
この繰り返し時間を変化させることにより、周波数成分を制御する。

import time
import math
from machine import DAC, Pin

def write_data(f):
  for i in range(num):
    dac.write(ary[i])
    time.sleep_us(int(1000000/(num*f)))

def write_data_without_sleep():
  for i in range(num):
    dac.write(ary[i])

num = 4
ary = list(range(num))
ary[0] = 2048
ary[1] = 4095
ary[2] = 2048
ary[3] = 0
dac = DAC(Pin(11))

f1 = 50
f2 = 100
f3 = 250
f4 = 500

while 1:
  for i in range(5):
    write_data(f1)
  for i in range(10):
    write_data(f2)
  for i in range(25):
    write_data(f3)
  for i in range(50):
    write_data(f4)

「f1 = 50」 は、三角波としての50Hzを意識したもの(もちろん、正弦波ではないので、50Hz以外の周波数成分は多数ある)。

結果

LPF1-1-2.png
LPF1-2.png
青が入力波形、オレンジがローパスフィルター通過後の波形である。低周波数時、オレンジの振幅はそれなりにあるが、高周波数時には、その振幅は小さくなっており、ローパスフィルターの機能を確認することができた。

ハイパスフィルター(失敗)

同じ要領でハイパスフィルターにトライ。
image.png
だが、波形は下記のようになり、入力された低周波数波形(青)に対し、フィルター後の波形(オレンジ)でも、高周波の方が値が小さくなっている。
HPF1-1.png
抵抗やコンデンサの値を変化させたが、ハイパスフィルターらしい波形を見ることはできずじまい。三角波が原因なのか、それとも、それ以外のところに問題があるのか、小生のレベルでは追いつかず(残念ながら)。

EOF

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0