携帯電話ACアダプタによる電力線通信(PLC)モデムのスループットへの影響 (2007/06/17)

早崎らの報告[1]によると,PLCモデムの受信端や送信端に携帯電話ACアダプタを接続した場合,送信と受信間の伝達関数が電源周波数の2倍(京都では120Hz)に同期して短時間変動します(伝達関数が切り替わっているようにみえます).そこで,携帯電話の充電器を接続したことにより生じた伝達関数の周期的短時間変動のPLCモデムのスループットへの影響を調査してみました.

実験室に構築した電力線モデルを使います.図1に測定系を示します.

Experiment system

図1: 測定系

便宜上,コンセントに,"A", "B", "C" とアルファベットを割り振っています.コンセントCでは,ノイズカットトランスを介して,100V 60Hzの商用電力を電力線モデルに供給すると共に,外来のノイズが電力線モデル上に入り込まないようにカットし,電力線モデムの信号を外の配電系に流れないようにしています.携帯電話のACアダプタは,受信側のコンセントBに接続します.

測定対象としたPLCモデムは次の表のように,HD-PLC方式のモデム(Panasonic BL-PA100KT)とUPA方式のモデム(NETGEAR HDXB101)です.

表1: PLCモデム
メーカ・型番 通信方式 最大物理レート MAC S/N
Panasonic BL-PA100KT HD-PLC 190Mbps 0080F083B2E3 7AAXB017088
0080F083B2E4 7AAXB017089
NETGEAR HDXB101 UPA 200Mbps 00184DF4BD93 1NS274BU0008B
00184DF4BD7E 1NS274BV0008C

接続する携帯電話はソニー SO213i で,電池パック SO010,ACアダプタ SO004 です.

データの伝送プロトコルは UDP で,コンセントAの先にあるLinux PCからデータグラムを送信し,コンセントBの先にあるLinux PCで受信します.各 Linux PC の CPU は Intel Pentium 4 1.5GHz であり,メモリは 256MB です.送信側の Linux PC のホスト名は iris,受信側の Linux PC のホスト名ネットワーク解析ソフトとして iperf をインストールしました.Debian/GNU Linux では,iperf はパッケージとして簡単にインストールできます.

# apt-get install iperf

UDP buffer size は設定可能な最大値である 214kbyte (デフォルトは 107kbyte)としました.また,一回の測定時間は10秒としています.受信側がサーバとなり,送信されてきたデータグラムのタイムスタンプから伝送速度を計算します.まず,受信側のコマンドの出力例を下記に示します.

squall# iperf --server --udp --time 10 --window 214k
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:   214 KByte
------------------------------------------------------------
[  3] local 172.20.108.14 port 5001 connected with 172.20.108.13 port 1037
[  3]  0.0- 9.9 sec  1.19 MBytes  1.01 Mbits/sec  0.273 ms    0/  852 (0%)

次に,送信側のコマンド出力例を下記に示します.

iris# iperf --client squall --udp --time 10 --window 214k --bandwidth 1m
------------------------------------------------------------
Client connecting to squall, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   214 KByte
------------------------------------------------------------
[  3] local 172.20.108.13 port 1037 connected with 172.20.108.14 port 5001
[  3]  0.0-10.0 sec  1.19 MBytes  1000 Kbits/sec
[  3] Sent 852 datagrams
[  3] Server Report:
[  3]  0.0- 9.9 sec  1.19 MBytes  1.01 Mbits/sec  0.273 ms    0/  852 (0%)

送信側のオプション --bandwidth は伝送速度を表します.このオプションを用いて,送信伝送速度を 1Mbps から 100Mbps まで 1Mbps 刻みで測定を行います.そのためのシェルスクリプト iperf-udp-sim.sh を次のように作りました.

#!/bin/sh
i=1
while [ $i -le 100 ]
do
  iperf --client squall --udp --time 10 --window 214k --bandwidth "$i"m
  i=`expr $i + 1`
  sleep 5s
done

sleep がない場合,測定間隔がないため,サーバからのレポートがおかしくなります.受信側の squall 上でサーバを起動して,送信側の iris 上で,

iris# ./iperf-udp-sim.sh > hdplc-udp-mobile-no.rawdata
として,受信側の出力結果全てをファイルに書き込ませました.なお,ファイル名は,HD-PLC方式モデムで,携帯電話を接続していないことを表しています.

ここで,gnuplot でグラフに描かせるために適した形のデータファイルにする必要があります.ruby でのテキストフィルタ iperf-udp-filter.rb を次のように作成しました.

#!/usr/bin/ruby
i = 0
rate_target_0 = 0.0
flag_w = 0
while line = ARGF.gets
  case i
  when 0
    next if /^-+$/ !~ line
  when 6
    line.sub(/([\d.]+)\s+([KM]Bytes)\s+([\d.]+)\s+([MK]bits\/sec)/) {
      size_tx = $1.to_f
      size_tx = size_tx / 1000 if $2 == "KBytes"
      rate_target = $3.to_f
      rate_target = rate_target / 1000 if $4 == "Kbits/sec"
      if rate_target > rate_target_0
        rate_target_0 = rate_target
        flag_w = 1
      end
      printf("%5.2f  %6.2f  ", rate_target, size_tx) if flag_w == 1
    }
  when 9
    line.sub(/([\d.]+)\s+([KM]Bytes)\s+([\d.]+)\s+([KM]bits\/sec)/) {
      size_rx = $1.to_f
      size_rx = size_rx / 1000 if $2 == "KBytes"
      rate_result = $3.to_f
      rate_result = rate_result / 1000 if $4 == "Kbits/sec"
      printf("%5.2f  %6.2f  ", rate_result, size_rx) if flag_w == 1
    }
    line.sub(/([\d.]+)\s+ms/) {
      dtime_rx  = $1.to_f
      printf("%6.3f  ", dtime_rx) if flag_w == 1
    }
    line.sub(/(\d+)\/\s*(\d+)/) {
      pkt_loss  = $1.to_i
      pkt_rx    = $2.to_i
      rate_loss = pkt_loss.to_f / pkt_rx.to_f * 100
      printf("%5d  %5d  %6.3f\n", pkt_rx, pkt_loss, rate_loss) if flag_w == 1
    }
    flag_w = 0
  end
  i = (i + 1) % 10
end

このテキストフィルタを用いて,次のように実行します.

squall% ./iperf-udp-filter.rb hdplc-udp-mobile-no.rawdata > hdplc-udp-mobile-no.data

出力結果 hdplc-udp-mobile-no.data は,次のようになります.

 1.00    1.19   1.00    1.19   0.306    852      0   0.000
 2.00    2.39   2.00    2.39   0.304   1701      0   0.000
 3.00    3.58   3.00    3.58   0.520   2552      0   0.000
 4.00    4.77   4.00    4.77   0.275   3402      0   0.000
 5.00    5.96   5.00    5.96   0.304   4252      0   0.000
 6.00    7.16   6.00    7.16   0.341   5103      0   0.000
 7.00    8.35   7.00    8.35   0.532   5953      0   0.000
 8.00    9.54   8.00    9.54   0.424   6804      0   0.000
 9.00   10.70   9.00   10.70   0.340   7658      0   0.000
10.00   11.90  10.00   11.90   0.221   8504      0   0.000
.............

1列目は送信ビットレート [Mbps],2列目は送信データサイズ [Mbyte],3列目は受信ビットレート [Mbps],4列目は受信データサイズ [Mbyte],5列目はジッター [msec],6列目は受信パケット数,7列目はパケットロス数,8列目はパケットロス率を表します.なお,送信ビットレートの上限は 95.8Mbps でした.これは,イーサネットカードの限界速度を表しているものと考えれます.

結果のグラフを示します.

Result

図2: 送信ビットレート vs. 受信ビットレート

横軸の Tx Bit Rate は送信ビットレート,縦軸の Rx Bit Rate は受信ビットレートを表します.赤線がHD-PLC方式モデム,青線がUPA方式モデムを表します.実線が携帯電話ACアダプタを接続しない場合,破線が携帯電話ACアダプタを受信側に接続した場合を表しています.携帯電話を接続していない場合,UPA方式のほうがHD-PLC方式と比較して,スループットのピーク値が5.7Mbps高くなっています.これは,日経コミュニケーション2007.6.1号での実環境でのHD-PLC方式モデムとUPA方式モデムの比較結果[2]と同じです.一方,HD-PLC方式,UPA方式の両方とも,携帯電話ACアダプタの接続による影響を受けていることが分かります.しかし,影響の割合は両者間で大きく異なります.HD-PLC方式では携帯電話を受信側に接続することによるスループットのピーク値の低下は82%であるのに対して,UPA方式では32%の大幅な低下が確認されます.このことから,HD-PLC方式のほうがUPA方式に比べて,伝達関数の周期的短時間変動にロバストな方式であることが言えます.

このスループット低下の違いの要因として,UPA方式がOFDM変調の各サブキャリアの変調としてQAM (Quadrature Amplitude Modulation)を利用しているのに対して,HD-PLC方式がWavelet OFDM変調の各サブキャリアの変調としてPAM (Pulse Amplitude Modulation)を利用していることが考えられます.伝達関数の周期的短時間変動は,各サブキャリアの位相の周期的短時間変動を引き起こします.一方,PAMに比べてQAMのほうが位相の変化でシンボル誤りが引き起こされる確率が高いため,伝達関数の周期的短時間変動の要因となる携帯電話ACアダプタの接続で大幅なスループット低下を引き起こすものと考えられます.

[1] 早崎太郎, 梅原大祐,本田慎也,田野哲,``屋内電力線通信路の電源周波数に同期した時間周波数解析,'' 2007年電子情報通信学会総合大会, B-8-4, p.320, 2007年3月.
[2] ``電力線モデム2機種の実効速度を測定 - 「HD-PLC」と「UPA」の単独テストではUPAに軍配,'' 日経コミュニケーション, 第487号, p.30-31, 2007年6月1日.

(追記 2007/6/25) 携帯電話ACアダプタの接続には,次の3形態があります.

  1. 携帯電話本体を接続しない.

  2. 携帯電話本体を接続し,充電が完了している.

  3. 携帯電話本体を接続し,充電中である.

伝達関数の周期的な短時間変動を起こす要因がこの携帯電話のACアダプタのみとすると,AC100Vの電圧信号 v (t ) の値に応じて2つの伝達関数が観測されます.AC100Vの電圧の絶対値がある閾値 v th よりも低い場合に H 1 (f ),v th よりも高い場合に H 2 (f ) のように伝達関数自体が切り替わります.このとき,周期的な短時間変動をする伝達関数 H (t, f ) は次のように記述できます.

Expression

このとき,一般的に H 2 (f ) のほうが H 1 (f ) より減衰が激しくなります.一方,ACアダプタの接続形態により,閾値電圧が変わります.形態 i の閾値電圧を v th,i とすれば,一般的に v th,1 > v th,2 > v th,3 です.従って,通信環境として,一番劣悪な環境は,携帯電話を接続し,かつ,充電中であるときです.図2の実験では,携帯電話本体は接続していましたが,充電が完了している状態でした.そこで,一番劣悪な環境である,携帯電話が充電中のスループットを計測しました.図3がその結果です.

Result 2

図3: 送信ビットレート vs. 受信ビットレート (携帯電話充電中)

図2と比べ,HD-PLC方式,UPA方式共に,受信ビットレートが低下しているのが分かります.しかし,伝達関数の周期的な短時間変動に対するHD-PLC方式モデムの優位性は変わりません.


梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp
Last modified: 2020/05/02 13:08
Total Access Count