<?xml version="1.0" encoding="Shift_JIS" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="minutes-xslt.xslt"?>
<!DOCTYPE minutes SYSTEM "minutes-dtd.dtd">
<minutes>
	<front>
		<caption><para>Study on Reed-Solomon code in JT65 mode of WSJT</para>
<para>(WSJTのJT65モードのリード・ソロモン符号の実験)</para></caption>
		<recorder initRelease="2008.11.25">
7L1RLL(若鳥）
</recorder>
		<updated>
2009.03.11, Version 3.00
</updated>
	</front>
	<body>
		<chapter>
			<para align="center"><img src="WSJT7.JPG" alt="Photograph of WSJT on a screen"/></para>
			<section>
				<caption>1.Introduction(概要)</caption>
<para>Robustness of Reed-Solomon code (63,12,52)RS used in JT65 mode of WSJT is disscussed here. 
This page emphasizes that about 1/3rd of symbol error per 63 symbol block can be recovered using the Reed-Solomon including interleaving and graycode.</para>
<para>(ここでは，WSJTのJT65モードで使われているリード・ソロモン符号(63,12,52)RSの耐性について実験的に論じる。
このページでは，リード・ソロモン符号，差込(interleave)及びグレー符号を使って，1区画(block)63符号語中の約1/3符号語の誤りを復元できることを強調する。)</para>
				<clause><caption>1.1 Download this program(実験プログラムの提供)</caption>
<orderedList>
<item><caption>Executable code for Windows XP SP3</caption>
<para><anchor><text1/><a href="WSJT_RS_TestV201_exe.zip">WSJT5_RW2.exe[Version2.01]</a><text2>[75KB](Windows XP SP3向け実行プログラム)</text2></anchor></para>
</item>
<item><caption>Source code for MS Visual C++.net</caption>
<para><anchor><text1/><a href="WSJT_RS_TestV201_cpp.zip">WSJT5_RW2.cpp[Version 2.01] for Windows XP/Vista</a><text2>[16KB](Visual C++.net向け原始プログラム)</text2></anchor></para>
</item>
<item><caption>Source code of g++ for Linux/ubuntu 8.04</caption>
<para><anchor><text1/><a href="wsjt5-linux.tgz">WSJT5-RW2.cpp[Version 2.02] for Linux/ubuntu8.04</a>
<text2>[16KB](Linux/ubuntu8.04向けg++原始プログラム)</text2></anchor></para>
</item>
</orderedList>
</clause>
<clause><caption>1.2 Purpose and Procedure(目的及び実験手順)</caption>
					<orderedList>
						<item>
							<caption>Purpose of this program(この実験の目的)</caption>
<para><anchor><text1/><a href="http://physics.princeton.edu/pulsar/K1JT/">WSJT(Weal Signal by Joe Taylor,Jr)</a><text2>のJT65モードに使われているリード・ソロモン符号の耐性を実験し，その耐性の高さを共有する。</text2></anchor></para>
						</item>
						<item>
							<caption>Steps of the Study(実験手順)</caption>
							<para><anchor><text1>(1)Test data as </text1><a href="http://physics.princeton.edu/pulsar/K1JT/JT65.pdf">The JT65 Communication Protocol</a><text2> by Joe Taylor,K1JT</text2></anchor>
<anchor><text1>(ジョー テイラー著：</text1><a href="http://physics.princeton.edu/pulsar/K1JT/JT65.pdf">JT65通信対話手順</a><text2>，page 6の試験データ)</text2></anchor></para>
　　　　　　　　　　　　　　　　　　　　　　　　　　　　<para>(2)Packing of the test data to Reed-Solomon code(梱包済みリード・ソロモン符号化対象の試験データ）</para>
                                                        <para>(3)Interleaving(差込)</para>
                                                        <para>(4)Encoding to Graycode to be sent(グレー符号化 - 送信電文)</para>
                                                        <para>(5)Insert number of errors by type-in(受信電文にエラー符号の挿入)</para>
                                                        <para>(6)Decoding of the Graycode((誤り挿入の)受信電文をグレイ復号化)</para>
                                                        <para>(7)De-interleaving(差込を元に戻す)</para>
                                                        <para>(8)Decoding of Reed-Solomon(リード・ソロモン復号化)</para>
　　　　　　　　　　　　　　　　　　　　　　　　　　　　<para>(9)Unpacking(開梱し，元の文字データとして見せる）</para>
						</item>
						<item>
							<caption>The Results(実験結果)</caption>
							<para>25 symbol errors out of 63 symbols block can be recovered 
by this protocol which is written by Joe Taylor(K1JT) in "The JT65 Communication Protocol".</para>
<para>(この試験データでは，ジョー＝テーラ著：“JT65通信対話手順”のpage 6の見本データを用いて，1区画当り63符号語の内，25符号語までの誤り挿入によっても，復元できることが実験できた。)</para>
						</item>
					</orderedList>
				</clause>
<clause><caption>1.3 Acknowledgement(謝辞)</caption>
<orderedList>
<item><caption>Source code in FORTRAN and C</caption>
<para><anchor><text1>Special thanks to </text1><a href="http://developer.berlios.de/projects/wsjt/">Joe Taylor,Jr(K1JT) and WSJT development project</a><text2> for giving us the FORTRAN source code and a part of C source code.</text2></anchor></para>
</item>
<item><caption>Pushing back me</caption>
<para><anchor><text1>Thanks to </text1><a href="http://g4ilo.com/">Julian Moss(G4ILO)</a><text2> for discussion about WSPR message format and pushing back me at </text2></anchor><anchor><text1/><a href="http://wsprnet.org/">WSPRnet.org</a><text2>.</text2></anchor></para>
</item>
</orderedList>
</clause>
			</section>
			<section>
				<caption>2.An Example of Execution of The Program(プログラム実行例)</caption>
<para>A screen shot and its explanation are shown in 2.1 and 2.2.</para>
				<clause><caption>2.1 Screen Shot(実行画面の例)</caption>
<para>*******************************************************</para>
<para>* Test program for encoding and decoding in JT65/WSJT *</para>
<para>*                by 7L1RLL      Version 2.01          *</para>
<para>*******************************************************</para>
<para></para>
<para>No.  Test messages</para>
<para>[1]:G3LTF DL9KR JO40</para>
<para>[2]:CQ 7L1RLL PM95</para>
<para>[3]:7L1RLL DL9KR JO40</para>
<para>[4]:DL9KR 7L1RLL -08</para>
<para>[5]:7L1RLL DL9KR RO</para>
<para>[6]:RRR</para>
<para>[7]:73</para>
<para>[8]:QRZ 7L1RLL PM95</para>
<para>[9]:CQ 7L1RLL/4 BP30</para>
<para>--------------------------------------</para>
<para>Select a test message number [1..9] : 1</para>
<para></para>
<para>Selected test message</para>
<para>G3LTF DL9KR JO40</para>
<para></para>
<para>*--(A)Packed data(12)--*</para>
<para>61 37 30 28  9 27 61 58 26  3 49 16</para>
<para></para>
<para>*--(B)Encoded data in Reed-Solomon(63)--*</para>
<para>11 42 35 27 41 56  5 31 50 25 17 17  7 19 14  6  0 58 44 47 34</para>
<para>28 20 56 52 53  6 30  7  9 30  2 31 31 28 40 10 51 53 59 10 33</para>
<para>49 14 62 58 58 37 12 28 17 61 37 30 28  9 27 61 58 26  3 49 16</para>
<para></para>
<para>*--(C)Interleave of test_sent(63) --*</para>
<para>11 31 14 28  7 40 49 28 27 42 50  6 20  9 10 14 17 61 35 25  0</para>
<para>56 30 51 62 61 58 27 17 58 52  2 53 58 37 26 41 17 44 53 31 59</para>
<para>58 30  3 56  7 47  6 31 10 37 28 49  5 19 34 30 28 33 12  9 16</para>
<para></para>
<para>*--(D)Graycode (63) --*</para>
<para>14 16  9 18  4 60 41 18 22 63 43  5 30 13 15  9 25 35 50 21  0</para>
<para>36 17 42 33 35 39 22 25 39 46  3 47 39 55 23 61 25 58 47 16 38</para>
<para>39 17  2 36  4 56  5 16 15 55 18 41  7 26 51 17 18 49 10 13 24</para>
<para></para>
<para>Enter a number of error desired &lt;0..63&gt; : 25</para>
<para></para>
<para>*-(E)Received with the symbols error(63) --*</para>
<para>14 16  9 18  4 60 41 18 22 63 43  5 30 13 15  9 25 35 50 21  0</para>
<para>36 17 42 33 35 39 22 25 39 46  3 47 39 55 23 61 25  0  0  0  0</para>
<para> 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0</para>
<para></para>
<para>*--(F)De-graycode (63)--*</para>
<para>11 31 14 28  7 40 49 28 27 42 50  6 20  9 10 14 17 61 35 25  0</para>
<para>56 30 51 62 61 58 27 17 58 52  2 53 58 37 26 41 17  0  0  0  0</para>
<para>0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0</para>
<para></para>
<para>*--(G)De-interleave(63) --*</para>
<para>11 42 35 27 41  0  0 31 50 25 17 17  0  0 14  6  0 58  0  0  0</para>
<para>28 20 56 52  0  0  0  7  9 30  2  0  0  0 40 10 51 53  0  0  0</para>
<para>49 14 62 58  0  0  0 28 17 61 37  0  0  0 27 61 58 26  0  0  0</para>
<para></para>
<para>*--(H)Decoded data(12)--*</para>
<para>61 37 30 28  9 27 61 58 26  3 49 16</para>
<para></para>
<para>Number of error recovered=25</para>
<para>*--(I)Unpacked data(12)--*</para>
<para>G3LTF  DL9KR  JO40</para>
<para>*** [Ctrl]+C to EXIT ***</para>

<para/>
</clause>
<clause>
<caption>2.2 Explanation of Above Screen Shot(実験データ画面の説明)</caption>
					<orderedList>
						<item>
							<caption>Testing data is same as "G3LTF DL9KR JO41"</caption>
							<para>試験データは，Joe Taylor(K1JT)著：“JT65通信対話手順のページ6に書かれている文字列
“G3LTF DL9KR JO41”という16文字の電文（情報）である。この電文の構文は，第1要素が相手先呼出符号(英国のG3LTF)，第2要素が呼ぶ側の呼出符号(ドイツ連邦のDL9KR)，
第3要素が地球格子符号（Grid Locator)の上位4桁(JO40)をそれぞれ示す。</para>
<para>参考：この地球格子符号の最上位1桁は西経180度を起点に20度ごとにA,B,C,D...Rと割り当て，
2桁目は南緯90度を起点に10度ごとにA,B,CとRまで割り当て，3桁目は上位2桁の格子を更に経度2度ごとに0,1,2,9まで細分化し，4桁目は上位2桁で示す格子を更に緯度1度ごとに0,1,2,..9までに細分化して示している。</para>
						</item>
                                                 <item>
							<caption>Packed data</caption>
							<para>試験データは，“G3LTF DL9KR JO41”という16文字の電文(
情報符号語）を12*6ビット(72ビット)の（整数からなる）
符号語に梱包（packing)したものである(以降，これらの情報を梱包符号語(packed coded word)と称する。)。</para>
						</item>
						<item>
							<caption>Encoding test data(リード・ソロモン符号化)</caption>
<para>全部で63個の符号語になるが，後ろの12個は梱包12個が複写され情報符号語を構成し，その前に52符号語（パリテイ検査符号語）が生成追加されている。</para>
							<para>これらの52個の追加符号語は，51次の多項式の係数を示す。</para>
<para>12個の符号語を51次多項式に変換し，(63-12-1)/2＝25符号語以下の誤りなら訂正できるFEC（前方誤り訂正）を構成している。</para>
						</item>
						<item>
							<caption>Interleaving(差込：符号語位置入れ替え)</caption>
							<para>合計63符号語を7行9列を軸にして符号語(整数値)を入れ替えている。
これは，データ欠落箇所を散らす役目をする。</para>
						</item>
						<item>
							<caption>Graycode(グレー符号化)</caption>
							<para>1符号語ずつ，位置を変えないで，グレー符号にしている。これが音声に変換して送信されるデータになる。</para>
<para>グレー符号は，Frank Grayにちなんでおり，3ビットまでの例で説明すると，0=000，1=001，2=011，3=010，4=110，5=111，6=101，7=100のように，数値が増えるごとに１ビットだけを反転させる組み合わせによって，雑音耐性を高める働きをする。</para>						
</item>
<item>
							<caption>Received data with errors specified by users request(エラーを挿入した受信データ)</caption>
							<para>末尾から25個の符号語<item>
							<caption>November 25 2008, First release(第1版発行)</caption>
							<para>Visual C++.net向けの原始プログラム（text形式）及び実行形式プログラムの初版を公開する。</para>
                                                </item>が0に置き換わっている。</para>
						</item>
						<item>
							<caption>De-graycode(グレー符号の復号)</caption>
							<para>この63符号語は，(C)差込処理後の符号語から誤りに挿入した状態を示している（誤り位置は不変）。</para>
						</item>
						<item>
							<caption>De-interleaving(記号位置を復元)</caption>
							<para>これは，元のリード・ソロモン符号後にエラー箇所が含まれた様相を示している。送信前の梱包された符号語と末尾の12符号語とを比較すると6箇所が0になったままである。
ここでは，0になった欠落箇所が分散していることに注目。</para>
						</item>
<item>
							<caption>Decoded data(リード・ソロモン復号)</caption>
<para>多項式から，誤り位置及び誤り位置の元の値を連立方程式によって求め，復元する。</para>
							<para>これは，(A)の梱包形式の12符号語のデータ列に等しい。25個の符号語を誤らせても，12個の元の符号語が見事に復元していることに注目。</para>
						</item>
<item>
							<caption>Unpacking data(開梱)</caption>
							<para>これは，(A)の梱包形式の16文字のデータ列（情報符号語）に等しい。</para>
						</item>
					</orderedList>
				</clause>
			</section>
			<section>
				<caption>3.Result of The study(考察)</caption>
				<clause>
					<orderedList>
						<item><caption>Equality to the sample sending data by K1JT(WSJT作者解説のデータ見本との同一性)</caption>
							<para>Joe Taylor,Jr(K1JT)の示した符号語は，送受信時の符号語であることが確認された。</para>
						</item>
						<item><caption>Error Robustness of Reed-Solomon code(63,12,52)RS(リード・ソロモン符号の誤りへの耐性)</caption>
							<para>この電文の場合，送信電文(63符号語)に対して受信電文(63符号語）中の25符号語まで変化しても正確に復号できることが実証できた。</para>
						</item>
					</orderedList>
				</clause>
			</section>
			<section>
				<caption>4.Future Improvement(将来の発展)</caption>
				<clause>
					<orderedList>

						<item>
							<caption>Addition of packing and unpacking[Resolved](送受信電文の梱包・開梱)[解決]</caption>
<para>呼出符号などを最初に梱包し，最後に呼出符号に開梱するという送受信対象の実際の電文に近くすることによって，アマチュア無線家にとって馴染み易くする。</para>
<para>一方，純粋数学家にとっては，応用の性質が入り込むので，却って分かり辛くなるかも知れない。</para>
						</item>
<item>
							<caption>Install (63,12,52)RS on Maxima(Maximaへの移植)</caption>
							<para><anchor><text1>数式処理ソフトウエアの一つ</text1><a href="http://maxima.sourceforge.net/download.shtml">Maxima</a><text2>によって，(63,12,52)RSの多項式を生成するなど，符号理論の勉強材料とする。</text2></anchor></para>
						</item>
					</orderedList>
				</clause>
			</section>
			<section>
				<caption>5.Histry of This page(改定履歴)</caption>
				<clause>
					<orderedList>
						<item>
							<caption>November 25 2008, First release(第1版発行)</caption>
							<para>Visual C++.net向けの原始プログラム（text形式）及び実行形式プログラムの初版を公開する。</para>
                                                </item>

						<item><caption>November 26 2008, Add explanation(説明追加)</caption>
<para>リード・ソロモン符号，グレー符号に簡単な解説，原論文の入手先URL及びMaximaの入手先URLを追加記載した。</para></item>

<item><caption>December 07 2008, Add Packing and Unpacking［Version2.00](梱包及び開梱の機能追加,第2版)</caption>
<para>16文字から12個の6ビット符号語への変換（梱包）及び12個の符号語から16個のASCII文字へ戻す(開梱)機能を追加した。</para></item>

<item><caption>December 15 2008, Modified error selection from tail of data,[Version 2.01](第2.01発行)</caption>
<para>電送中の誤り挿入を63符号の末尾からとし，梱包データと同じ符号語（情報符号語）を積極的に誤らせて実験するように変更した。</para></item>

<item>
							<caption>December 17 2008, Adjusted Vocaburary(用語を学術書と整合)</caption>
							<para>記号列を符号語とした。</para>
                                                </item>

<item>
							<caption>December 20 2008, Eliminated an editorial error at Interleaving(梱包の編集誤りを修正)</caption>
							<para>改定記録が誤って複製されていたので削除とした［Sorry！］。</para>
                                                </item>
<item>
							<caption>March 11 2009, Addition of g++ souce code for Linux/ubuntu8.04［Version3.00](Linux向けg++原始プログラムの追加)</caption>
							<para>ubuntu8.04向けg++コードを追加した。</para>
                                                </item>
					</orderedList>
				</clause>
			</section>
		</chapter>
<para><anchor><text1>Return to </text1><a href="radio.html">Amateur Radio Activities by RLL[RLLのアマチュア無線活動]</a><text2>. </text2></anchor></para>
	</body>
</minutes>

