RIGHT:EBUG 第41回会合~
2012年2月18日 @(株)銀座堂~
川俣吉広、kaw@on.rim.or.jp

*発端 - 最初はまともな動機だったのに..... [#l21a4ee0]
-震災後、電池で使えるラジオが家にないことに気がつく
--安い奴でいいから買っとこう
-震災後、電池で使えるラジオが家にないことに気がつく。
--安い奴でいいから買っとこう。
|&ref(radio.jpg,,33%);|
|CENTER:中華ラジオ ¥1,980也|
--単三2本で300h使用可。あと、短波帯も聴けるし。
--ヘタに短波とか付いてたので、私の中のラジオの虫が活動再開。~

-ヘタに短波とか付いてたので、私の中のラジオの虫が活動再開。~
しかし室内だとノイズだらけで聴けたもんじゃないな - &ref(NoisyEnv.3g2);。
--普通なら今時rajikoとかrajuruとなんだろうけど… ~
決まった局しか聴けないのはやっぱりつまんないな、それに一応、一陸技だし。

-普通なら今時rajikoとかrajuruとなんだろうけど…。 ~
決まった局しか聴けないのはやっぱりつまんないな (それに一応、一陸技だし)。

*なんかもう意地(雀を撃つのに大砲を持ち出す) [#ma1dd26a]
-昔使ってた無線機を20年ぶりくらいに箱から出してきた。
|&ref(ft757.jpg,,33%);|
|CENTER:YAESU FT-757GX|
--受信周波数 500kHz~30MHz, 受信モード SSB, CW, AM, FM
--当初、受信周波数が不安定だったので再調整 ... トリマコンデンサの経年劣化
--受信周波数 500kHz~30MHz, 受信モード SSB, CW, AM, FM.
--当初、受信周波数が不安定だったので再調整 ... トリマコンデンサの経年劣化による。調整後、動作良好。

-そして、ベランダにアンテナを張る。
|&ref(Antenna.jpg,,33%);|&ref(balun.jpg,,33%);|
|CENTER:全体|CENTER:給電部(BALUN)|
|&ref(Boom.jpg,,33%);|・とにかく、とにかく目立たないように…&br;・落下事故は絶対厳禁 ... 多点支持&落下防止ステイ&br;・容易に点検/補修できるように&br;・悪天候時などにはすばやく撤収可に|
|CENTER:支持部|CENTER:設置条件 - これも集合住宅住まいの定めか|
--ブーム端を導通させれば1λループ、カットすればλ/2ダイポール
---ループのほうが感度は低いが、外来ノイズが格段に低いのでこの形式で行く。
--ブーム端を導通させれば1λループ、カットすればλ/2ダイポールとなる。
---理屈から言えば、λ/2ダイポールのほうがより低い周波数に振するはずなので、こっちの方が良いはず。
---実際にはループのほうが感度は低かったが、外来ノイズはそれを上回って格段に少ないのでこの形式で行く。
|&ref(Antenna.gif);|
|CENTER:設置構造、等価回路|

*実際、どんなもんなのか? ... 船舶気象通報で耳試し [#n0d0c2f7]
*で、実際どんなもんなのか? ... 船舶気象通報で耳試し [#n0d0c2f7]
|船舶気象通報&br;&br;・海上保安庁が運用&br;&br;・周波数、空中線電力: 1669kHz, 50W&br;&br;・変調形式: H3E (USB) - 上側波帯全搬送波振幅変調&br;&br;・各局数分ずつ放送 - 一時間で一巡&br;&br;&ref(XmitSite.jpg);|&ref(Location.gif);|
|>|RIGHT:(送信所の写真は[[こちら>http://img.blogs.yahoo.co.jp/ybi/1/85/81/pory61dw8000/folder/1259781/img_1259781_26670085_0?1226667937]]から借用)|
|>|RIGHT:&size(10){(送信所の写真は[[こちら>http://img.blogs.yahoo.co.jp/ybi/1/85/81/pory61dw8000/folder/1259781/img_1259781_26670085_0?1226667937]]から借用させて貰いました)};|

というわけで、受信能力を試すには結構よさげ。
というわけで、受信能力を試すには結構よさげな対象。

*ラジオを聴くのにAudacityを持ち出す [#t0bc9fd1]
**セッティング [#uf0e690c]
#ref(Setups.jpg,wrap,around,right,33%)
[[Audacity>http://audacity.sourceforge.net/]] - フリーでクロスプラットフォームな音声エディタ
-録音 / 編集 / 再生機能
-各種音声ファイル形式のImport/Export
-各種パラメータの解析表示
-直感的なUI (WxWidgets使用)
-GPL

通常は音楽などの編集・加工に用いられることが多いと思われるツールですが、今回はこのAudacityを用いて信号の変換や測定/解析などを行ってみることにします。
#img(,clear)
----
|&ref(Diagram.gif);|
|CENTER:系統図|
**調整 [#j7d60a8e]
''大原則'' - レベルオーバーさせない
-アナログ / デジタルのどちらの領域でも鉄則
--アナログ - 非線形領域に達すると信号が不可逆に歪む
--デジタル - サンプリング時に量子化レベルを越えてしまった値は表現できない
''大原則'' - レベルオーバーさせない。
-アナログ / デジタルのどちらの領域でも鉄則。
--アナログ - 非線形領域に達すると信号が不可逆に歪む。
--デジタル - サンプリング時に量子化レベルを越えてしまった値は表現できない。

-デジタル領域におけるレベル表現 ... dBFS
--最大の量子化レベル(FS: full scale)を 0dB とした場合のdB表示(振幅相当のdB換算なので 20*log(x/FS) )。

調整方法
-RXのAF GainとPCのLine In (or Mic In)の両方で調整 ... 歪みなく、かつノイズフロアから十分大きいように設定
-RXのAF GainとPCのLine In (or Mic In)の両方で調整 ... 歪みなく、かつノイズフロアから十分大きいように設定する。
--PCの調整はOpenBSDの場合、[[mixerctl(1)>http://www.openbsd.org/cgi-bin/man.cgi?query=mixerctl&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html]]を使う。
--レベルのモニタリングはAudacityのVU Meterを使用。
--レベルのモニタリングはAudacityのVU Meterが使用できる。
*振幅変調についておさらい [#v275dc5b]
振幅変調とは、正弦波との乗算(周波数変換も)。
|&ref(AMsignal.gif);|
|CENTER:時間領域|
三角関数の加法定理から
 sin((ωc+ωb)*t) = sin(ωc*t)*cos(ωb*t)+cos(ωc*t)*sin(ωb*t)
 sin((ωc-ωb)*t) = sin(ωc*t)*cos(ωb*t)-cos(ωc*t)*sin(ωb*t)
-ωc: 搬送波の角周波数
-ωb: 被変調波の角周波数

 sin(ωc*t)*cos(ωb*t) = (sin((ωc+ωb)*t)+sin((ωc-ωb)*t))/2

 sin(ωc*t)*(C+cos(ωb*t)) = (C*sin(ωc*t)+sin((ωc+ωb)*t)+sin((ωc-ωb)*t))/2
-C: 直流成分

被変調波に直流成分が含まれていると、変調波では搬送波が現れる。
|&ref(AMsignal_Spect.gif);|
|CENTER:周波数領域|

要するに正弦波を掛け算するとその周波数だけ、元の信号のスペクトラムが平行移動する。~
&size(10){あと、直交成分が加わった場合の位相表現を複素平面上で云々とかあるけど、とりあえず今回そういうのは置いておく方向で...};
*試行錯誤の道筋 [#s5ce4df5]
**記録してみよう [#p4e16f7d]
***受信機側の作業 [#zc65f194]
信号強度と音声を同時に記録したい ~
...信号強度を記録するには、搬送波も音声として記録すればよい。
-信号強度と音声を同時に記録したい。
--信号強度を記録するには、搬送波も音声として記録すればよい。

...受信モードをUSB (Upper Side Band)とし、受信周波数を若干低いほう(500Hz位)に意にずらす。 ~
...これだと音声はまともに復調されないが、それはあとのお楽しみ。
--受信モードをUSB (Upper Side Band)とし、受信周波数を若干低いほう(500Hz位)に意にずらす。 
---こんな感じ ... &ref(SSBtune.3g2);
---これだと音声はまともに復調されないが、これをどうするかはあとのお楽しみ :-)。
***PC側の作業 [#k1c979d5]
考えられる幾つかの方法;
+Audacity立ち上げて録音ボタンをポチッ
++リアルタイムでグラフィカルに波形とか表示しているので、結構重い
++非圧縮で記録してるのでディスク容量を結構食う
++一定の間隔でファイルを生成する、とかが面倒
++タイムコードとかも付いてないので、あとで実時間との対応をとるのも面倒 ~
++リアルタイムでグラフィカルに波形とか表示しているので、結構重い。
++非圧縮で記録してるのでディスク容量を食う。
++一定の間隔でファイルを生成する、とかが面倒。
++タイムコードとかも付いてないので、あとで実時間との対応をとるのも面倒。 ~
~
+dd if=/dev/audio of=outputfile.raw とか
++やっぱり、非圧縮で記録してるのでディスク容量を結構食う ~
++やっぱり、非圧縮で記録してるのでディスク容量を結構食う。 ~
~
+lameを用いて、MP3にエンコードしながら記録
++不可逆圧縮なので、測定精度に影響がでるかも....

lameを用いる方法でやってみた。2つのシェルコードを走らせる。
 while :; do
     lame -r -s 48 -m m -a --preset 32 /dev/audio `date +monitor-%Y%m%d%a-%H%M-1996kHz.mp3`
 done

 while :; do
     sleep 3600
     pkill lame
 done
そして、例えば次の正時が13:00だとすると、
 echo 'pkill -f "sleep 3600"' | at 1300
とする。これで毎正時に出力するファイルが更新される。~
lameを上記のオプションで実行すると;
 Autoconverting from stereo to mono. Setting encoding to mono mode.
 Resampling:  input 48 kHz  output 22.05 kHz
 Using polyphase lowpass filter, transition band:  8269 Hz -  8535 Hz
 Encoding /dev/audio to /dev/null
 Encoding as 22.05 kHz single-ch MPEG-2 Layer III (11x) average 32 kbps qval=3
     Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA 
    400/400   (100%)|    0:00/    0:00|    0:10/    0:10|   17.415x|    0:00 
   8 [  0] 
  16 [  0] 
  24 [ 75] *****************
  32 [320] *********************************************************************
  40 [  5] **
  48 [  0] 
  56 [  0] 
  64 [  0] 
  80 [  0] 
  96 [  0] 
 112 [  0] 
 128 [  0] 
 144 [  0] 
 160 [  0] 
 -------------------------------------------------------------------------------
    kbps       mono %     long  %
    30.6      100.0       100.0
-入力データは、/dev/audioから出力される raw format を指定
--16bit 48kHzサンプリングのリニアPCMデータがそのまま出力されている(符号付き16bitがL, R交互に来るだけ。ヘッダも何もなし)。

-ステレオのL,R入力に同じ音声が入力されてるので、1chにmix-downする。

- --presetでエンコードビットレートを指定。概ね 8kHz以下の帯域までを記録 ... 今回はこれで十分
- --presetでエンコードビットレートを指定。概ね 8kHz以下の帯域までを記録 ... 今回はこれで十分。

-サイズは 約 6.5MB/hour 。

**解析してみよう [#ed2ff33a]
(ここから後は、当日実演してみます。お楽しみに)
[[ >:Audacity/解析]]

**加工してみよう [#a8447052]
[[ >:Audacity/加工]]

*まとめ [#ff4755f2]
[[ >:Audacity/まとめ]]


Front page   New Page list Search Recent changes   Help   RSS of recent changes