rtty 是業餘無線電界最早出現的數據通訊方式,它大約是在二次大戰期間,將原本用於有線電傳打字的技術轉移 到無線電來傳輸文字,戰後業餘無線電人員就利用一些汰換下來的裝備開始進行業餘的通訊。
電傳打字機是一部極為昂貴且笨重的設備,它主要是由複雜的機械結構以及繼電器等組成。初期能夠進行這種通訊 方式的人很少。隨著電子以及計算機技術的發展,後來已經利用 數據編解碼器與電腦結合來進行數據通訊。時至 今日,音效卡已經是個人電腦基本配備,只要安裝相關軟體以及製作音源接線,就可以從事無線數據通訊了。也因 此,rtty 這種古老的數據通訊方式反而有越來越普遍的趨勢。
1 與 0,mark 與 space
電傳打字機發明的時候還沒有陰極射線管,更別提有電腦了,那時候要發送電文,是先用打孔機在紙帶上打孔,數 據的 1 就打孔,稱為 mark,0 則不打孔,稱為 space,然後用讀紙帶機將信號發出去。接收方收到信號後也是先 在紙帶上打孔,接著紙帶進入解碼機,使打字機印出相關的字來。
雖然今日我們已經不使用紙帶,但因為電傳打字電報的歷史相當久遠了,mark 與 space 這樣的名稱也沿用下來。 mark 代表 1,space 則代表 0。 rtty 使用 fsk 的傳送方式,mark 代表比較高的頻率,space 代表比較低的頻 率,有關這點,後面有更詳細的介紹。
baudot 編碼方式
電傳打字電報的編碼方式是由 baudot 先生所發明,它只用了 5 個位元。5 個位元只能表示 32 種不同的變化, 可是 26 個英文字母以及 10 個數字再加上常用的標點符號大概就有 50 個,解決的方法就是將它們分成字母 (letter) 以及符號 (figure)( 數字及標點符號 )兩組,然後用 32 種組合裡的一個組合來宣告後面的電文為文字 ,同理,也用一個組合來宣告後面的電文為符號。看起來有點複雜,先看下面的編碼表,然後舉例說明就不難了。
no code letters figures no code letters figures
== ===== ====== ====== == ===== = =====
00 00000 blank blank 16 00001 t 5
01 10000 e 3 17 10001 z +
02 01000 lf lf 18 01001 l )
03 11000 a - 19 11001 w 2
04 00100 space space 20 00101 h
05 10100 s 21 10101 y 6
06 01100 i 8 22 01101 p 0
07 11100 u 7 23 11101 q 1
08 00010 cr cr 24 00011 o 9
09 10010 d $ 25 10011 b ?
10 01010 r 4 26 01011 g &
11 11010 j ' 27 11011 fig fig
12 00110 n , 28 00111 m .
13 10110 f ! 29 10111 x /
14 01110 c : 30 01111 v =
15 11110 k ( 31 11111 let let
note: above is us tty character set
上面的編碼表,我是把低位元寫在左邊,例如 2,一般的寫法是 00010,但是上面是寫成 01000, 把低位元寫在左邊是為了凸顯發送的順序。此外,由上面的編碼可以看出 baudot 的編碼共有 6 個共用字(不管是 ltr 或是 fig 的狀況下都是相同 的意義), 而每個 ltr 對應的 fig 看似沒有規律,其實如果把它和鍵盤的對應位置來看,你就會發現其實是有些規律的:
q w e r t y u i o p a s d f g h j k l z x c v b n m
1 2 3 4 5 6 7 8 9 0 - $ ! & ' ( ) " / : ; ? , .
以上所寫,並不是要大家把鍵盤背起來,而是有時候信號狀況不良,ltr 或 fig 字元沒有接收到,那麼後面解出 來的電文就不正確,例如原本要傳送 599,但是 fig 字元沒收到,就會變成 too,如果對鍵盤對應有些瞭解,碰 到這種情形就不會『霧沙沙』。
例如要發送,bv3fg 就等於發送 (ltr)bv(fig)3(ltr)fg 這 8 組鮑多碼,也就是 11111,10111,01111,11011,10000,11111,100110,01011 一連串的 01 數據碼(逗點是我故意加進去方便辨識的, 實際並沒有逗點)。
上面一連串的 01,如果發生傳播狀況不佳導致漏碼,那麼後面一連串的數據不就全部亂掉了,此外,就算是傳播 狀況良好,可以完全抄收,但是如果是從一半開始接收,該如何斷字?因此必須導入同步技術以及使用起始及結束 位元來解決這個問題。
同步的方法其實很簡單,就是收發雙方都使用相同的時間來收發一個位元,每秒發送多少個位元就稱為 baud rate ,例如 100 的 baud rate 就是說每個位元的長度是 1/100 秒,就是 10ms。
至於起始位元 start bit 則定義為一個 bit 的 0 (space),而結束位元 stop bit 則為一個 bit 以上的 1 (mark),一般是用 1.41, 1.5 或是 2 bit 長度的 mark。如此假設在不傳送資料的時候,一直發送 stop bit,一 旦開始傳送資料,系統偵測到信號由 space 變為 mark,便開始計時。第一個 bit 為起始位元,接著依次接收 1,2~5 位元,然後是 stop bit,再來又碰到由 space 轉為 mark 又開始計時,如此週而復始。
隨著電腦的發明,也有人開使用 rtty 傳送 ascii 碼,如此就能有大小寫以及更多的特殊符號,不過在業餘通訊 上主要是用鍵盤來交談,對於特殊符號的要求不高,所以業餘的 rtty 還是使用 baudot。(註:其實 baudot 還 有好幾種標準,業餘界所用的稱為 us tty 或 us code)
mark, space, shift 與 fsk, afsk
前面提到 mark 與 space 的來由,而在有線電電傳打字電報,mark 與 space 其實是由正電壓與負電壓來代表, 而在 rtty 要發送 mark 則是發送一個較高的頻率,發送 space 則是發送一個較低的頻率,這兩個頻率必須保持 一定的差值,稱為 shift。你可以想像你用了兩部無線電發射機,一台頻率調在 14000.2khz 另一部調在 14000.0khz,然後用電腦控制交互發送 cw 信號,這種方式稱為『移頻鍵送』 frequency shift keying,就是所 謂的 fsk。
接收信號的人如果在 13999khz 用 usb 去收這個信號,他會聽到 1.2khz 以及 1khz 兩個聲音交替出現,如果他 用兩個頻寬很窄的聲頻濾波器,就可以感測有無信號通過濾波器來解出 mark 與 space,接著再透過軟體將一連 串的 mark, space 解成文字顯示在螢幕上。
上面用兩台無線電機來發射只是為了方便解說,實際上的作法有兩種:
使用一部無線電機,當它要發送 mark,就在 14000.2khz 發送 cw 信號,當它要發送 space,就跳頻到 14000.0khz 發送 cw 信號。
使用一部無線電機,設定在 13999.0 khz usb,然後從 mic 灌入 1.2khz 的聲音作為 mark,灌入 1.0khz 的 聲音作為 space。或者是設定在 13998.0 khz usb,然後從 mic 灌入 2.2khz 的聲音作為 mark,灌入 2.0khz 的聲音作為 space。這是因為 usb 實際發射的頻率就是載波頻率(面板的頻率)加上從 mic 進去的頻率。
將無線電機設在 14001.2 khz lsb,然後從 mic 灌入 1.0khz 的聲音作為 mark,灌入 1.2khz 的聲音作為 space。或者是設定在 14002.0 khz lsb,然後從 mic 灌入 1.8khz 的聲音作為 mark,灌入 2.0khz 的聲音作 為 space。這是因為 lsb 實際發射的頻率就是載波頻率(面板的頻率)加上從 mic 進去的頻率。
2, 3 的方法是最常用的,稱為 afsk, audio frequency shift keying,只要無線電機有 ssb 功能,就可以用 afsk 來做 rtty。有的無線電機雖然號稱有 fsk,其實它的內部就是 afsk,只不過 mark 與 space 的聲音是直接 由無線電機內部產生並灌入調制器,如此而已。
此外,從接收的角度來看,當你收到 rtty 信號,你並沒有辦法分辨對方是用 fsk 或是 afsk 在發送。我要講的重點是: 儘管 fsk 與 afsk 的作法不同,但是結果相同,只要你的無線電機有 ssb 功能,就可以收發 rtty。(有些人誤 以為無線電機有提供 fsk 才能進行 rtty 通訊,這觀念是錯的。)
此外,你應該有注意到,在 usb 的時候,我們是灌入比較高的聲音作為 mark,灌入比較低的聲音作為 space,而 在 lsb 卻剛好相反。這裡就會有一個常犯的錯誤發生了:例如你的數據機或軟體認為你的無線電機設在 lsb,所 以它灌入比較低的聲音作為 mark,灌入比較高的聲音作為 space,但是你的無線電機卻設在 usb,結果就是你把 mark 與 space 顛倒了(收、發都搞反了,俗稱 up side down 或 reverse),這時候你發射出來的信號別人解不 出來,你也解不出別人的信號。解決的方法就是改用正確的 side band 或是把軟體或數據機的 rev (reverse) 鍵 按下去。
實際舉例來說:你的無線電機面板頻率是 14000khz, usb,但你的軟體以為你在 lsb,所以它灌入 2khz 的聲音作 為 mark,灌入 2.2khz 的聲音作為 space,所以實際發射出去的是 14002khz mark, 14002.2 space。因為我們規 定 mark 是比較高的的射頻,space 是比較低的射頻,如果接收信號的人如果也是在 14000khz, usb,它會把收到 2.2khz 的聲音當作 mark,2.0khz 的聲音當作 space,結果與你當初發射的相反,所以他要用軟體或數據機把收 到的 0, 1 對換,才能解出正確的內容。或者是他在 14004khz lsb 接收,他收到 14004-14002.2=1.8khz 為 mark,14004-14002=2khz 當作 space,這樣他不需 reverse 就可以正確解出內容。
所以重點是:使用 lsb 與 usb 有沒有公定的標準?其實沒有,不過在業餘無線電的領域裡,我們習慣使用 lsb 來做 rtty 通信, shift 的頻率是 170hz,mark 訂為 2125hz,space 訂為 2295hz (因為是使用 lsb)。把 mark 與 space 頻率定得這麼高的原因是避免灌進去的聲音的倍頻也被發射出去而造成干擾,例如 2125hz 的倍頻 是 4250hz,因為 ssb 的頻寬濾波器通常不超過 2300hz,所以 4250hz 只有很少量會通過調制器,如果選用 1khz 作為 mark,那麼 2 倍頻為 2khz,仍然能夠通過調制器而被發射出去。
上面講了一大堆,簡單做個重點整理:
業餘 rtty 使用 baudat 碼,有些業務 rtty 則使用 7 bits ascii 或 8 bits ascii。
業餘 rtty 使用 45.45 baud rate。baud rate 就是 bps,是指每秒發送幾個幾個位元。
mark 是指頻率較高的射頻,space 是指頻率較低的射頻,兩者頻率差稱為 shift。在 usb 聽到/發送比較高 的聲音為 mark,在 lsb 聽到/發送比較低的聲音為 mark。
業餘 rtty 使用 lsb,mark 的聲音是 2125hz,space 的聲音是 2295hz,shift 是 170hz。
不管使用 fsk 或 afsk,其發送出的的信號都是一樣的,但afsk必須注意灌入麥克風的聲音不可過調制。
軟體選擇
常用的軟體請參考軟硬體介紹,我個人是使用 mmtty v1.65,這個軟體是 je3hht 所寫,原先只有日文版,後來許 多人發現這個軟體實在不錯,就與 je3hht 合作開發成英文版,並陸續加入更多實用的功能,也有人把 mmtty 的 使用說明翻譯成不同的語言。為了推廣,je3hht 還同意其他軟體使用 mmtty 模組,我個人相當欣賞這種推廣及共 享的精神,未來我如果有時間,也考慮把 mmtty 的操作說明翻譯成中文。
rtty 常用頻率
[ ]內為最常使用的頻率
80 meters: 3580 - 3650 [3580-3590] (3520 - 3525 in japan)
40 meters: 7030 - 7040 [7030-7040] (7080 - 7100 in the us)
30 meters: 10110 - 11150 [11140-11150]
20 meters: 14080 - 14099 [14080-14090] (avoid the beacons at 14100)
17 meters: 18100 - 18105
15 meters: 21080 - 21100 [21080-21090]
12 meters: 24920 - 24925
10 meters: 28080 - 28100 [28080-28090]
afc 與 net
afsk 的操作有一個特色,那就是:『接收的 mark 頻率』與『發射的 mark 頻率』可以分別設定。 換句話說,你可以不用轉動無線電機的頻率,藉由改變 mark 頻率,就可以改變實際的收發頻率,而且是收/發可以獨立改變。
在接收的時候,我們通常是移動 mark 的對準線來改變『接收的 mark 頻率』,一般來說,這樣做就夠了,但是如果要求頻率 百分之百對準,可以啟動 afc, auto frequency calibration 功能,由電腦軟體自動把頻率對得很準。主動呼叫 cq 的電台通常會使用這個功能。
如果是搜尋信號並回答他人的 cq,就要強迫讓發射的 mark 頻率與接收的 mark 頻率相同,這種功能稱為 net。要特別注意的是, 使用 net 功能的時候,要記得取消 afc 功能,以免你的 mark 頻率隨著鄰近的訊號跑來跑去。
diddle
mmtty 顯示信號的小視窗,中間兩條黃色的線是對準線,如果是用 lsb ,那麼左邊那條就是 mark。 右邊是示波器,如果兩個橢圓形相互垂直,表示頻率對得很準。下方是頻譜軌跡 (waterfall spectrum),方便使用 者追蹤信號。

當沒有內容發送的時候(例如敲鍵盤的速度沒有實際發送的快,或是還在想接下來要講些什麼),在 ssb 通常是 持續按著 ptt 然後發出嗯啊等無意義的聲音,在 cw 則是發送 bk 藉此表示人還在這裡持續發送。在 rtty 則是 發送不會讓軟體解出字元的控制碼,例如發送 stop bit (mark)、blank、ltr 等。
持續發送 stop bit 的好處是一旦有內容要發送就可以很快察覺,而且容易幫助 afc 鎖住頻率,缺點是 standby 的人完全無法從 stop bit 得知這個 rtty 的其他資訊,例如 shift, baud rate,如果是發送 blank 或 ltr 稱 為 diddle,這是推薦使用的方式,因為接收者可以藉此繼續校準 rtty 信號。