Tag : 信号処理

交流信号の特性値の計算方法

No Image

家庭のコンセントから取れる電源は交流ですが、実効値や電力を求めるのは結構ややこしいです。
電気回路を学び始めて最初の壁でしょうか。

では、実際に取得したデータから実効値や電力を求めるにはどうしたらいいでしょうか。
ここではそれらの値はどのようにして求めたらいいかまとめてみます。
正弦波だけでなく歪んでいたり、はたまた方形波だったり全然違う波形でも特性値を求める一般的な話をしたいと思います。

Arduinoで信号処理をする上で便利なフィルタのライブラリ

No Image

Arduinoでセンサの値を受け取るなどのプロトタイピング的なことをすることは多いですが、そのときに嫌でもついてくるのが「信号処理」です。
別に生データを見るくらいなら特に気にすることもないのですが、それを使って解析するのであれば「それらしい値」が必要です。
自前でプログラムを書いてもいいのですが、面倒じゃないですか。
だったら素晴らしい有志の方が公開しているライブラリを使わない手はありません。

平均値などの逐次計算アルゴリズム

No Image

データの平均値をとることは多いですが、データが逐次的に入ってくるときは普通の計算では今までの全てデータが必要で総和を取る必要があり、これは計算量が多いです。
マイコンなどのメモリが少なく、スペックがあまり高くないシステムであれば、想像以上に影響が出てきます。
ここでは短い計算時間でメモリを節約でき、流れてくるデータの平均値を順次求めていく方法を紹介します。

ADCの値から抵抗値や電圧を求める方法

No Image

ADC(アナログ-デジタル変換器)で取得したデータは量子化されているため、基準電圧に対してのバイナリデータになります。
そのままでも使える場合もありますが、抵抗値や電圧を測定する場合は、計算で求める必要があります。
様々な状況がありますが、換算式を忘れてしまって毎回手計算で求めているのでここにまとめようと思います。

タッチセンサをスイッチとして使うプログラム

No Image

静電容量式のセンサ(タッチセンサ)は物理的なスイッチが必要ありません。
そのため作品のデザインに影響を与えませんし自由度も上がりますので、よく使っています。
Arduinoだとライブラリもあって簡単に使えますしね。
ただ、離散値としてデータが入ってくるのでスイッチとして使えるようにするには大変で、そのあたりの解説も乏しい気がします。
そこで1回タッチするごとにON/OFFの切り替えができるスイッチとして使えるようなプログラムを紹介をしようと思います。
解説が多めですので、プログラムだけ見たい方は一番下に移動してください。

センサの入力などに使うディジタルフィルタ

No Image

温度センサや加速度センサなどの出力値はアナログ値であろうとデジタル値であろうとブレブレであることがほとんどです。
そのままでは使えないので必要な信号成分を取り出さないといけません。
アナログ出力のセンサの場合はフィルタ回路を組んでやってもいいですが、柔軟な対応ができなかったりします。

そこでソフトでフィルタを作ってやるとスマートにノイズの除去が可能になります。
センサ入力などにフィルタを使う場合、ノイズ除去がほとんどですのでそれによく用いられるローパスフィルタ(LPF)を紹介します。