Tweet

<< 2017.3 >>
[日記]
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

2017 年 3 月 15 日 (水)

ルーペあれこれ

この前までプリント基板を設計・製作する仕事をやっていた. 昔,回路設計の仕事をしていたときは 1608 のチップ抵抗ぐらいは電気スタンドの照明ぐらいでらくらくハンダ付けできたのだけど,最近はキツい.

「老眼」というやつである.

ここでムリに若者ぶってもしょうがないので,素直に文明の利器のルーペに頼ることにする. というわけで,あれこれ試してみた感想.

老眼鏡

試しに使ってみようかとダイソーへ行き,100 円老眼鏡を試着してみる.

…ダメだ,こりゃ.

私の場合,裸眼で視力 0.1 を切る強い近眼なので,眼鏡無しで老眼鏡単体だと焦点の合う距離が 10cm を切るぐらい近くなってしまう. こんな状態では作業なんかムリ.

が,眼鏡をかけてる人でも老眼鏡でイケる人もいるので,近眼の人でも使えるかどうか一度は試してみるといいかも.

眼鏡の上からかけるルーペ

通販の「ハヅキルーペ」みたいに眼鏡の上からかけられる眼鏡. amazon からこんなやつを入手.

使ってみた感想は

  • 作業する場合,全体を見渡したりするのにルーペ無しで見たくなる場合があるのだけれど,いちいち外さないとならないのが面倒
  • 作業なんかよりも,読書に向いているのかな
  • 折りたためば普通の眼鏡の大きさになるので,持ち運びには便利

外出先で作業する場合は,このタイプがあるといいのかな.

ヘッドルーペ

鉢巻にルーペが付いているタイプ. 以前,マルツで数百円で安売りしていたもの.

IMG_20170315_052804.jpg

感想

  • 鉢巻とルーペはハトメで固定されているのだが,ルーペを動かすとハトメに髪が絡まって痛いので,ハトメの内側にテープを貼ったら快適.
  • ルーペ部を上下できるので,拡大したいところにレンズを合わせられて使いやすい.
  • 上に跳ね上げれば眼鏡を通さずに全体を見渡すこともできる.
  • 鉢巻の部分がプラスチックでできているので,折りたたみはできず,持ち運びには難がある.

外に持ち運ばないような場合は,このタイプが一番使いやすいかな. もっとしっかりしたやつを買おうかなぁ.

電気スタンド一体型

電気スタンドとルーペが合体したタイプ. 私はこの型の蛍光灯タイプを購入(今は LED に切り替わっているらしい).

感想

  • 基板に黙々と部品を付けるときには使える
  • 基板を改造するのにあっちこっちひっくり返して作業するときは,ルーペが邪魔になる
  • 大きめのものを扱う場合,ルーペが届かないところが出てくる.

作業によっては使い勝手がいいかもしれません.

2017 年 1 月 27 日 (金)

緊急地震速報検出プログラムの解説

仕事のほうも少し落ち着いたので,この前公開した緊急地震速報検出プログラムの解説.

相互相関

検出の原理は相互相関です. Wikipedia の説明を読んでも「なんのこっちゃ」みたいなところも多いので,大雑把に説明すると

  • 「見つけたい信号」と「見つけたい信号が埋もれている信号」をサンプル値ごとに掛け算し,合計する
  • 「見つけたい信号が埋もれている信号」のなかに「見つけたい信号」があるときは,掛け算の合計の結果が大きくなる

という感じかな.

プログラムの公開が難しかった言い訳

緊急警報放送のチャイム音を検出する場合,上記の「見つけたい信号」にチャイム音がそのまま入ることになります. が,このチャイム音の再配布には NHK の許可が必要なので「めんどくさいなぁ」と思っていたわけです.

1ビット量子化

で,上記の相互相関の計算を1サンプルごとに行うわけなのだけど,この計算を速くするためにサンプル信号の量子化ビット数を1ビットとしています. このアイディアは,日本キャステム社の緊急告知受信モジュールから拝借しました. このモジュールの解説記事にそのようなことが書いてあったのだけど,URL どこだったかな.

積和演算

積和演算とは乗算した結果を足し合わせる計算で,相互相関で書いた「掛け算の合計」のことです.

相互相関に限らず様々な信号処理では多く出てくるので,専用命令がある CPU も多いですね. x86 の MMX や SSE,ARM なら DSP 命令セットなどにあります.

乗算

で,1ビット量子化した信号の場合

XOR 演算で掛け算が実現できる

ことになります.

1ビット量子化した信号の掛け算と XOR 演算を比べると

項1項2乗算XOR
1110
1-1-11
-11-11
-1-110

…使えそうですね. (XOR 演算の場合は -1 を 0 と読み替えて計算します)

足し算

で,足し算のほうは

XOR 演算結果のビット列で立っているビットを数える

ことで実現しています.

ビットを数える・探すアルゴリズム」のバージョン5にある,謎の演算をすることによって,32ビットのビット列の中で立っているビットの数を数えることができます.

(ただ,素直にテーブルルックアップを使ったほうが計算は速いようです)

まとめ

緊急警報放送検出プログラムでは

  • 相互相関の原理で警報音を検出
  • 処理速度を上げる小細工としては,以下のテクニックを使用
    • 1ビット量子化
    • XOR 演算
    • ビット数を数える演算(実はあまり意味がなかった)

相互相関とディジタルフィルタ

相互相関について,少し突っ込んだ話を.

緊急地震速報音の検出に使った相互相関ですが,処理を図にするとこのようになります.

  →+→+→+→+→+→+→+→+→+→ 相関値
 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│ち│ゃ│ら│〜│ん│ち│ゃ│ら│〜│ん│ 見つけたい信号
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
 │ │ │ │ │ │ │ │ │ │
 × × × × × × × × × ×
 │ │ │ │ │ │ │ │ │ │
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ 見つけたい信号が埋もれている信号
│●│□│▲│○│■│△│●│□│▲│○│←●□▲○■△…
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
 ↓
 捨てる

なんとこれはトランスバーサルフィルターという,ディジタルフィルタと同じ処理になっています.

そこで,相互相関処理をトランスバーサルフィルタとして見てみると

「ちゃら〜んちゃら〜ん」をフーリエ変換したのと同じ周波数特性を持つフィルタ

と見ることができます.

実際,相関値を音声として再生してみると

  • 普段は入力音声が小さくなってもぞもぞとした音が出力
  • チャイムが鳴り始めると徐々に大きな音が出力される

というように聴こえます.

こういう,紙の上の理屈を音声として体験するというのも面白いものです.

お試しあれ.

2017 年 1 月 4 日 (水)

緊急地震速報検出プログラム

こんな動画を,以前公開しました.

Raspberry Pi に緊急地震速報も検出させてみた

ニコ動: http://www.nicovideo.jp/watch/sm22320578

YouTube: https://www.youtube.com/watch?v=NSGuDiPxVeQ

「このプログラムが欲しい」というメールをもらったので,プログラムを公開します.

ただし,緊急地震速報のチャイム音は,配布に許可がいるので同梱していません. 各自で調達してください.

動作原理については,そのうち書くかもしれません.


RSS

http://jr0bak.homelinux.net/~imai/pukiwiki/pukiwiki.php?cmd=rss&ver=1.0 で RSS を取得できますが,Wiki 全体の RSS になってしまいます. 細かいことは気にしないでね.

リンク

この日記へのリンクはご自由にどうぞ.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-05-05 (火) 06:10:37 (2885d)