论坛风格切换切换到宽版
  • 10639阅读
  • 24回复

PSK31 簡介BV3FG [复制链接]

上一主题 下一主题
离线BD3RJ
 
发帖
18845
只看楼主 倒序阅读 0楼 发表于: 2004-05-04
rtty 是許多人進入業餘無線電數據通訊的搖籃,它的觀念簡單易懂,不過存在下面幾個缺點:
可用的字元太少:使用 5 位元編碼,扣掉控制碼,只能表示 50 個字元。
頻寬太寬:以業餘 shift 170hz 及 45.25 baud rate,大約需要 270hz 的頻寬。
易受干擾而出現錯字,如果 fig 或 ltr 字元被干擾,就會錯字連篇。

近年來電腦音效卡已經相當普及,而且 dsp 數位音效處理的技術已經相當成熟,雖然有很多 rtty 軟體使用 dsp 的技術來降低 rtty 的錯誤率,但是英國業餘無線電家 g3plx, peter martinez 認為這只是換湯不換藥,前面 1, 2 點的缺點仍然存在,於是他就以應用音效卡的功能為主架構,在 1997 發展出一個簡單好用而且錯誤率比 rtty 更低的的數據通訊方式,那就是 psk31。



psk31 varicode 編碼方式

把符號轉換成 0 與 1,是數據通訊的第一步。依照每個符號編碼的長度,有固定長度與不定長度兩種方式,而 g3plx 想要發展的是適合 keyboard chat 的數據通訊方式,以下就編碼方式與 keyboard chat 的需求作比較:
項目      固定長度編碼      不定長度編碼      需求      
編碼長度      使用固定長度的位元代表一個符號,以 start bit 與 stop 來隔開字符,例如 rtty 為 5 位元編碼,ascii 有 7 bits 與 8 bits 兩種。      使用不定長度的位元代表一個符號,利用特定的碼來區別字符,以摩斯電碼為典型代表,例如 1 為 key on,0 為 key off,用 0, 1, 000, 111 來編碼,00000 作為 start / stop 碼。越不常用的碼長度越長。      均可      
符號數量      有限      依據編碼原則,可無限擴充      常用的文字符號與控制碼即可      
字符傳送效率      不管內容為何,只要字符數相同,其傳送速率固定不變。      常用字的編碼會比較短,所以其傳送速率會隨內容而改變。      即時的打字與閱讀相對於電腦的處理速度都不算快,所以都不需要太快的傳送效率。      
baud rate      每秒的位元數      每秒的位元數      越慢越好,如此可提高辨識率。如果字符傳送效率相同,編碼的長度越短,就能夠降低 baud rate。      
擴充性      有兩種方式,一種是使用兩個位元組來代表一個字符,例如中文碼,這種方式會降低字符的傳送效率,另一種方式是使用特殊字符來作為擴充字的前導字,例如 baudot 的 ltr 與 fig。      依據編碼原則,可無限擴充。會被擴充的一定是比較少用的,所以對字符傳送效率的影響很小。      有常用的文字、符號與控制碼即可,不太需要擴充性,有擴充性當然比較有彈性。      
連續錯誤率      若 start/stop bit 或前導字符被干擾,會連續錯很多字。      因為利用特定的碼來區別字符,所以幾乎不會連續有錯誤。      連續錯誤率當然是越低越好。      

從以上的分析,g3plx 認為用不定長度的編碼方式來做『文字交談』最好,所以他定義了一個很簡單的編碼方式,稱為 varicode alphabet:利用 00 來隔開字符,因此每個字符的開始與結束都是 1,而且字符內不可出現連續的 0。

引用以上定義,可知最短的編碼是 1,再來是 11,接著是 111, 101,然後是 1111,1011,1101, 11111, 10101, 11101, 10111, 11011,以下以此類推。實際上,他依把照 ascii 的前 128 字元定義如下:

000      nul      1010101011      032      sp      1      064      @      1010111101      096      /      1011011111      
001      soh      1011011011      033      !      111111111      065      a      1111101      097      a      1011      
002      stx      1011101101      034      "      101011111      066      b      11101011      098      b      1011111      
003      etx      1101110111      035      #      111110101      067      c      10101101      099      c      101111      
004      eot      1011101011      036      $      111011011      068      d      10110101      100      d      101101      
005      enq      1101011111      037      %      1011010101      069      e      1110111      101      e      11      
006      ack      1011101111      038      &      1010111011      070      f      11011011      102      f      111101      
007      bel      1011111101      039      '      101111111      071      g      11111101      103      g      1011011      
008      bs      1011111111      040      (      11111011      072      h      101010101      104      h      101011      
009      ht      11101111      041      )      11110111      073      i      1111111      105      i      1101      
010      lf      11101      042      *      101101111      074      j      111111101      106      j      111101011      
011      vt      1101101111      043      +      111011111      075      k      101111101      107      k      10111111      
012      ff      1011011101      044      ,      1110101      076      l      11010111      108      l      11011      
013      cr      11111      045      -      110101      077      m      10111011      109      m      111011      
014      so      1101110101      046      .      1010111      078      n      11011101      110      n      1111      
015      si      1110101011      047      /      110101111      079      o      10101011      111      o      111      
016      dle      1011110111      048      0      10110111      080      p      11010101      112      p      111111      
017      dc1      1011110101      049      1      10111101      081      q      111011101      113      q      110111111      
018      dc2      1110101101      050      2      11101101      082      r      10101111      114      r      10101      
019      dc3      1110101111      051      3      11111111      083      s      1101111      115      s      10111      
020      dc4      1101011011      052      4      101110111      084      t      1101101      116      t      101      
021      nak      1101101011      053      5      101011011      085      u      101010111      117      u      110111      
022      syn      1101101101      054      6      101101011      086      v      110110101      118      v      1111011      
023      etb      1101010111      055      7      110101101      087      x      101011101      119      w      1101011      
024      can      1101111011      056      8      110101011      088      y      101110101      120      x      11011111      
025      em      1101111101      057      9      110110111      089      z      101111011      121      y      1011101      
026      sub      1110110111      058      :      11110101      090      [      1010101101      122      z      111010101      
027      esc      1101010101      059      ;      110111101      091      \      111110111      123      {      1010110111      
028      fs      1101011101      060      <      111101101      092      ]      111101111      124      |      110111011      
029      gs      1110111011      061      =      1010101      093      ^      111111011      125      }      1010110101      
030      rs      1011111011      062      >      111010111      094      _      1010111111      126      ~      1011010111      
031      us      1101111111      063      ?      1010101111      095      .      101101101      127      del      1110110101      

由上表可以發現,最短的碼為空格,最長的碼為 10 位元,英文小寫字編碼比較短,平均只有 6 位元,而實際通訊上,因為空格及 aeiounrst 等字比較多,平均位元數會更短。此外,如果打字速度很快的人或是你預先設定好通訊內容,可以盡量用小寫字來縮短傳送時間,打字速度慢的人就不用考慮這一些。

引用上面的編碼,假設傳送 ten 這個字,我們來比較幾種編碼的傳送效率,我們將發現 varicode 的編碼實在是很短。
离线BD3RJ
发帖
18845
只看该作者 1楼 发表于: 2004-05-04
實際的 baud rate 是 31.25

一個打字很快的人每分鐘可以打接近兩百多個字,所以如果以 pairs 為一字組,速度為 50 字組,然後用 varicode 編碼來算,每分鐘要發送 (5+2+4+2+4+2+5+2+5+2+1+2)*50 = 36*50 = 1800 個位元,也就是說每個位元為 33.3ms,如果音效卡使用 8khz 的取樣率,每次取樣為 0.125ms,那麼每個位元要取樣 266.67 次,為了方便好算以及不希望同一次取樣的跨越不同的位元,所以 g3plx 選擇每 256 次取樣為一個位元長度,也就是 256*0.125=32ms,換算為 baud rate 就是 1000ms / 32ms = 31.25,psk31 的 31 就是 baud rate 為 31.25。



binary phase shift keying

rtty 使用 mark 與 space 兩個頻率來代表 1 0,因此佔用比較大的頻寬,以業餘的 rtty 45.25 baud rate 來說,約需要 170hz 才夠區別 mark 與 space,若再考慮 mark 與 space 的個別寬度,整個要 270hz 才夠。為了改良這個問題,波蘭的一位業餘無線電人員 pawel jalocha, sp9vrc 提出了一個新的方法 -- bpsk,binary phase shift keying,就是只使用一個頻率,但是以信號的同相或反相來代表 1 與 0,他把相關的編、解碼軟體燒錄在單晶片並做成介面,並把這種調制方式稱為 slowbpsk,但由於介面製作對一般人來說並不容易,所以並不普及 。而 g3plx 就是引用了 sp9vrc 的觀念並加以改良,再加上 varicode 編碼,變成了 psk31。

什麼是 bpsk 呢?其實很簡單,如果這個位元與前一個位元的信號相位相同,就代表 1,如果相位相反就是 0。

假設有一個電燈很規律的一亮 (○ )一滅 (● ),而每次亮滅為一個週期,若它閃爍的狀況是○●○●,我們就說這兩個週期是同相,如果是●○●○,這兩個週期也是同相;如果是○●●○或●○○●,這兩個週期就是反相。

所以如果我們要發送 tea,varicode = 1010011001011,電燈的明滅順序就是

○● ○● ●○ ●○ ○● ●○ ●○ ●○ ○● ●○ ●○ ○● ○● ○●
  1   0   1   0   0   1   1   0   0   1   0   1   1
或是

●○ ●○ ○● ○● ●○ ○● ○● ○● ●○ ○● ○● ●○ ●○ ●○
  1   0   1   0   0   1   1   0   0   1   0   1   1

如果你看到的一串燈號如下,那麼代表什麼意義呢?
○●○●○●●○○●○●●○●○●○○●●○●○○●○●

解碼方法很簡單,就是把目前的燈號與前一週期的燈號相比較,如果相同就代表 1,如果不同就代表 0

○● ○● ○● ●○ ○● ○● ●○ ●○ ●○ ○● ●○ ●○ ○● ○●
  ○● ○● ○● ●○ ○● ○● ●○ ●○ ●○ ○● ●○ ●○ ○● ○●
    1   1   0   0   1   0   1   1   0   0   1   0   1

11=e, 1011=a, 101=t,所以就是 eat。

從上面的說明我們瞭解,bpsk 關心的是相位有沒有發生反轉,並不需要很精確同步信號,只要系統能夠暫存或延遲前一個位元的信號然後和目前的信號比較,就可以解出來。另外一個重點是,收發雙方一個在 lsb 另一個在 usb 一樣可以通訊。



bpsk 的實際波形

如果我們用 cw 一直發射,我們會看到一個振幅及頻率固定的一個正弦波,如果是持續非常快的發送短音,會看到一段一段的正弦波,若從頻譜上來看這個連續的短音,我們會發現它是一個雙邊帶的信號,那是因為如果我們把這些正弦波波峰連起來(包絡線),這條包絡線其實是個方波,這情形和使用 am 快速發送一個 100% 調制的信號一樣。

而 bpsk 的訊號是一個持續發射的的等幅波,不過有的部分信號會瞬間反轉 180 度,看起來可能像下面一樣。


/\ /\   /\ /\ /\/\ /\ /\   /\ /\ /\
\/ \/\/ \/ \/   \/ \/ \/\/ \/ \/
    ↑       ↑       ↑
    反相     反相     反相

由於信號瞬間反轉 180 度,所以會在這個地方有不連續的情形,如果用傅利葉級數展開,這裡可以看成是這個信號與它的倍頻的組合,也就是說,在反轉的瞬間,信號頻譜突然變寬,這種現象我們稱為 key click。解決這個現象的作法是讓反轉發生在電壓為零的地方,而且不要用等幅波,改用振幅調變讓它的包絡線變成 cosine 波。

下面的圖上半部是用 bpsk 發送一個空格 (00100) 的包絡線圖,下半部是反相點的地方的放大圖。
离线BD3RJ
发帖
18845
只看该作者 2楼 发表于: 2004-05-04
如果我們持續發送 0,也就是說每個位元的信號都與前一位元反相,則它的包絡線就是一個餘弦波,從頻譜上來看,可以看到兩個頻率,就是中心頻率± 0.5*baud rate,就像是雙音測試一般。

此外,引用 varicode 的編碼原則,還可以定義 idle 信號以及結束信號,可以用這兩個信號來啟動軟體是否開始解碼或停止解碼。
idle 信號:
發送連續的 0,因為每個 0 都只有一個一位元長度,而且訊號連續反相,方便讓接收的人對準頻率以及同步,所以 psk31 通訊軟體每次發送內容前,都會先發送 0.5~1 秒鐘的 idle 信號,沒有內容可發射的時候也是發送 idle 信號。
結束信號:
發送連續的 1,由於 varicode 最長只有 10 位元,連續發送 10 個以上的 1 接收端就無法鎖住這個訊號,所以 psk31 通訊軟體要結束發送前,都會先發送 1 秒鐘左右的結束信號。

理論上,我們可以定義用 idle 信號來開啟靜音,用結束信號讓接收端進入靜音,然後編定特定的指令就可以做數據自動收發,但是目前的 psk31 主要還是使用在 hf 的 keyboard chat,所以並沒有這樣的應用。未來應該也不太會有這樣的應用,因為其他的數據通訊方式已經發展得很完備了。不過如果你有興趣自行研發,psk31 算是一個很不錯的入門。



qpsk

在 bpsk 推出之後,許多人覺得很好用,於是便問 g3plx:『使用 psk31 有沒有加進錯誤校正的可能?』 g3plx 仔細想想並做模擬之後,發現所謂的 error-correction 應該稱為 error-check,是用來檢查資料有沒有錯,如果有錯就重送,重覆這樣的步驟,最後資料終於送對了,才達成 error-correction,而不是從收到的資料中發現錯誤並校正。所以下面用 error-check 代表有錯重發的系統,而 error-correction 代表從收到的資料中發現錯誤並校正的作法。

error-check 的觀念直接易懂,然而就就 keyboard chat 的需求來看,傳播狀況好的時候,有沒有 error-check 差異不大,因為少量的錯字不影響 keyboard-chat,假設狀況變差,不做 error-check 如果有 50% 的抄收率,那麼做 error-check 的系統可能就掛在那裡不動,因為 error-check 是有錯就重送,在這種狀況下一個封包有可能送了十次也不一定,所以 error-check 適合讓電腦自己去傳數據,人如果等在電腦前面等,保證抓狂。

另外有人提議,把 baud rate 提高一點,封包短一點,錯誤重送的比率就會降低,可惜的是這點在無線電上並不適用,因為提高傳送速度,就會擴大頻寬,而擴大頻寬就會降低 s/n 比,s/n 比降低錯誤就多,繞了一圈回來其實沒有改善。

所以 g3plx 認為應該要從演算法則下手來修正資料的錯誤,而不需追求百分之百的正確,這才是 keyboard chat 的需求。他想到的方法是:每次拿 5 個位元與預設的位元編碼比對,累積幾次我們就知道先前收到的位元字應該是 0 或 1。qpsk 預設的位元編碼如下

編碼 相序   編碼 相序   編碼 相序   編碼 相序
00000 2     01000 0     10000 1     11000 3
00001 1     01001 3     10001 2     11001 0
00010 3     01010 1     10010 0     11010 2
00011 0     01011 2     10011 3     11011 1
00100 3     01100 1     10100 0     11100 2
00101 0     01101 2     10101 3     11101 1
00110 2     01110 0     10110 1     11110 3
00111 1     01111 3     10111 2     11111 0

上表的相位,0 代表同相,1 代表相位與前一位元差 90 °,2 代表相位與前一位元差 +180 °,3 代表相位與前一位元差 -90 ° (+270 ° ),

舉例而言,如果我們要發送一個空格和 e,包含前後 idle 的 0,根據 varicode 就是 000001001100000 如果每次移動一個位元,依序拆成 5 的位元就是

00000 00001 00010 00100 01001 10011 00110 01100 11000 10000 00000
2   1   3   3   2   3   2   1   3   1   2

所以發射方就依照 21332321312 的相序來發射訊號。

接收方收到 21332321312 這樣的相序乍看之下無法還原,因為每個相序都有 8 種可能的 5 位元編碼,不過因為 data flow 是連續的,也就是說,每個收到相序的前四個位元必須與前一個收到的相序的後四個位元相同,每個收到相序的後四個位元必須與後一個收到的相序的前四個位元相同,我們還可以比對往前,往後兩、三個相序,經由比對足夠的相序以及將可能代表的編碼加權計分,即使部分相序有錯,還是可以推算出正確的 data flow。所以 qpsk 有比較好的正確率。

這樣看來好像 qpsk 優於 bpsk,其實不盡然。因為 bpsk 只偵測相位有沒有相反,比較不容易出錯;而 qpsk 要偵測 4 個相位,比較容易出錯,但是它用演算法則來補這個弱點。經由電腦模擬,微弱的 bpsk 與 qpsk 在空白噪音中的表現不相上下,但是在 qrm 以及傳播不穩定 (fading) 的狀況下,qpsk 的表現比 bpsk 好很多。由於 psk31 的頻寬窄,基本上電台間相互的干擾也少,至於 fading 則是難以預期,所以實際上 psk31 的通訊還是以 bpsk 為主,通常是通訊雙方發現錯誤率很高,才會移到 qpsk 做通訊,此外 qpsk 要比對四種相位,所以對頻率 穩定性的要求也相當高。



psk31 的優點
操作簡單:不必去記 mark, space, shift, baud rade 等名詞,只要把軟體的信號對準線對準要接收的信號就可以了。
varicode 不會造成連續的解碼錯誤
31.25 的慢速 baud rate 比較不會因為瞬間的干擾而產生解碼錯誤。
規則簡單,不需要用到很複雜的 dsp 運算,所以可以同時開好幾個視窗仍然不會降低效率,換句話說,用爛一點的電腦仍然可以跑得很順。
頻寬窄:如果饋入無線電機的無線電機的音頻沒有過調制,bpsk 的頻寬的 -40db 點只有約六十幾 hz。這麼更窄的頻寬代表更高的 s/n 比。也因為如此,我們可以使用很窄的濾波器來對抗 qrm。
偵測相位變化比偵測振幅變化有更好的雜訊排除能力:rtty 是偵測 mark 與 space 信號的有無,如果有 qrn, qrm, qsb 發生,很容易有不該出現的聲音或聲音衰減到 squelch 可以偵測的位準以下,導致無法解碼。然而 psk 則不同,qrn 通常是短暫的,qsb 只要不低於空白噪音的位準,這些都不太會影響信號的相位,所以 psk 信號仍然能夠被偵測解碼。
离线BD3RJ
发帖
18845
只看该作者 3楼 发表于: 2004-05-04
總結以上的優點,psk31 是一個可以在比較惡劣的通信條件下達成通訊的模式,換言之,它不需要很高的功率,或是不需要很好的天線系統,一樣是可以讓我們用鍵盤與他人通訊。



psk31 實際上線

我目前所使用的 psk31 軟體是 digipan v1.6d,這個軟體相當精簡,別的軟體該有的基本功能它都有,下面就以這個軟體為範例來介紹操作 psk31 的方法。

下圖就是 digipan 的視窗,它分為幾大部分:
menu bar:
主要的選單,所有的設定功能及模式選擇都是由這裡來操作。
control bar:
共有 13 個按鈕,分別代表鍵盤的 f1~f4, f5~f8, f9~f12 以及 ctrl 鍵,digipan 提供 f1~f12, ctrl-f1 ~ ctrl-f12 共 24 巨集鍵,用來設定經常會用到的通訊內容以及基本操作。
log bar:
這個不用解釋太多,大家都知道。當你在呼號欄輸入呼號,磁片按鈕 (save qso data) 的左邊會出現*,表示 qso data 還沒有被儲存。此外,你可以把 receive window 裡的字標起來,然後拖曳到任一個欄位。或是用滑鼠指著 rx window 裡的呼號,雙擊滑鼠左鍵,這個呼號就會自動複製到 call 欄位,雙擊一個三位數的數字就會複製到 rec'd 欄位,雙擊一個不含數字的字串就會複製到 name 欄位,按著 shift 鍵然後雙擊一個不含數字的字串就會複製到 qth 欄位。digipan 的 log 是存成 adif 格式,這是所有 log 軟體都支援的標準格式,方便使用者 將 log 轉進轉出。
receive window:
你所接收到的信號,解碼後的內容以及你所發送的內容出現在這裡。如果你點選 menu bar => file => open rx log file 就可以一邊通訊一邊把所以出現在 rx window 的字自動存到一個文字檔。此外,幾乎所有 psk31 的軟體都提供兩個接收視窗,可以同時接收解碼兩個信號,digipan 也不例外,不過上圖並沒有開啟兩個接收視窗。
transmit window:
在這裡輸入你要發送出去的內容。
离线BD3RJ
发帖
18845
只看该作者 4楼 发表于: 2004-05-04
waterfall display (spectrum window):
這個視窗以及下面要介紹的 status bar 是精華所在。

waterfall 是動態顯示進入音效卡的聲音,由於它會緩慢往下移動,如果在同一個頻率有信號,看起來就像是瀑布一般,故稱為 waterfall display。信號的強度用顏色來代表,digipan 內定的顏色是紅橙黃綠藍黑,代表信號由強到弱。

waterfall 上一排像尺規的刻度是聲音的頻率,每一格是 100 hz。你也可以把它設定射頻頻率。菱形的指標是接收頻率的位置,可以用滑鼠左鍵拉著它改變收 / 發頻率。如果有選擇 lock tx frequency 還會出現一根紅色的旗標,這個時候紅色旗標代表發射頻率,菱形代表接收頻率。如果你使用兩個接收視窗,在 waterfall 還會出現一個紅色的三角形指標,代表第二個接收視窗的接收頻率,可以用滑鼠右鍵移動三角指標。

在右邊的 phase indicator 是顯示目前的相位。線朝上 (0 度 )表示同相;線朝下 (180 度 )表示反相。如果線不在 0-180 度的方向而有些歪斜,代表頻率沒有對很準,線越長代表信號越強,如果線隨機出現在任何角度,代表那個地方沒有 psk31 的信號。phase indicator 的右下角還有一個菱形指標,這是代表目前的 phase indicator 所顯示的是菱形指標所在頻率的相位。如果你使用兩個接收視窗,又選擇 swap,這個地方就會變為三角指標,代表目前的 phase indicator 所顯示的是三角指標所在頻率的相位。


status bar:
這裡顯示目前操作方式的設定,灰色字表示目前沒有啟動這個功能,黑色字代表這個功能目前有用。而且你可以直接在 status bar 按滑鼠左鍵直接啟動 / 停用該功能,例如將鼠標移到 tx 按下左鍵,就可以發射,按下 rx 就回到接收。此外在 status bar 按右鍵也會跳出一個基本的操作選單。
tx: 顯示目前是否為發射狀態,如果有鎖定發射頻率,這裡還會顯示頻率。
rx: 顯示目前是否為接收狀態,這裡還會顯示接收頻率。
swap:若使用兩個接收視窗,可在此選擇使用那個視窗工作。按下 swap 表示使用第二個接收視窗。
imd: 顯示目前這個信號在 +/-46hz 與 +/-15hz 的信號強度的比值,只有接收信號持續發送 0 的時候才會顯示。這個比值越小越好,一般要求要達到 -25db 以下,以上圖的例子為 -21db,表示這個訊號不夠純淨,有太寬的 side band,請仔細看圖片裡的信號,除了中間兩條很強的信號,旁邊還有 2~3 條微弱的信號,這就是這個信號的 side band,而這是我們所不希望出現的。
sq:顯示/切換 squelch 功能,suqelch level 可以按滑鼠右鍵,選 squelch threshold 來設定。
afc:顯示/切換自動頻率校正功能。
snap: 顯示/切換 snap 功能,如果選用這個功能, digipan 會自動找 psk31 信號的中心點,找到以後就不會變動。
bpsk:顯示/切換目前的 mode 為 bpsk, qpsk 或 fsk31。

如何接收:
將無線電機設定在 usb:bpsk 可以使用 lsb/usb 但 qpsk 則收發雙方都要在同一個 side band,習慣上是使用 usb。
調整無線電機的聲音輸出或音效卡的聲音輸入,使空白噪音在 waterfall 上的顏色為暗藍色到亮藍色之間。
啟動 sq 功能,並打開 squelch threshold 視窗,調整 squelch threshold ,使空白噪音高好不能突破靜音,或稍微調高一些。
觀察頻譜有無 psk31 信號,然後將菱形指標點到那個信號上面,因為 psk31 的頻寬很窄,要盡可能點到信號的中央。
把菱形指標點在信號上,大概要隔1~3秒鐘讓 afc 或 snap 鎖住信號,這時候可以看到 squelch threshold 視窗藍色的信號強度表突破靜音。
觀察 phase indicator,如果信號有被鎖住,應該可以看到 phase indicator 的線在 0~180 (垂直線 )度之間飄動,如果你明顯看到兩條垂直的線在 0~180, 90~270 度之間,表示這個信號是 qpsk,你就要轉換 mode 為 qpsk 來接收。
解碼出來的字,會出現在接收視窗。

如何發射:
確認把無線電機的 mic gain 轉到最小,關掉音頻壓縮功能。
確認 ptt 控制線接上,而且選用正確的 com port。
調整輸出功率及音效卡輸出音量:選 menu bar mode=>tune,這時會發射一個連續波,如果不能發射,回到上一步驟檢查 ptt 控制功能。
如果可以發射,由小而大調整音效卡的輸出音量,觀察功率變化,會發現音量上升到某個程度,功率就不會再變化,記住這個功率,按下 ok 就會停止發射。
然後再按下 tx,此時會連續發送 0 (連續的反相訊號 ),調整音效卡的輸出音量,讓輸出功率大約是先前用 tune 功能量到功率的一半。這麼做的目的是要讓音效卡的聲音輸出以及無線電機的功率輸出都處於線性的範圍,如此聲音才不會過調制,聲音如果過調制,就會出現比較大的 imd (出現不想要的 side band)。
然後就可以正式做 qso 了。



imd 測試

前面提到發射 psk31 的信號要注意不要讓輸入無線電機的音量過大,以免產生過多的 side band,如果要實際測試自己發出的信號是否有 imd 就需要有兩部無線電機及電腦,一部發射一部接收,而 digipin 提供了一個 imd 測試的功能,讓使用者用一部電腦及兩部無線電機就可以測試 imd。

首先將音效卡的聲音輸出接到 tx 無線電機的 mic 輸入,並接上 ptt 控制線,把 rx 無線電機的聲音輸出接到音效卡輸入端。由於發射機和接收機靠得很近,為了避免 rx 無線電機接收機,請把 rx 無線電機的天線移除,並把 preamplifier off。rx, tx 無線電機的頻率調得一樣或相近即可。

接著按 menu mode=>imd 此時會出現兩個接收視窗,waterfall 的菱形指標上面有一根旗子,三角形指標寫著 imd 。接著按下 tx 鍵發射 idle 訊號,同時在 waterfall 上會出現 rx 無線電機所收到的聲音訊號,請注意 rx 無線電機是否過載 (s 錶打到底 ),聲音是否太大 (把聲音調到是黃色即可,橘色或紅色就太大聲了 ),接著用滑鼠右鍵把三角指標點在收到的信號的中間。這時 status bar imd 欄所出現的數字就是 idle 訊號在 +/- 46hz 與 +/- 15hz 的地方信號強度的比值。

如果這時候把音效卡的輸出音量調大,會發現 imd 變大 (比值變大就是負的 db 數變小 ),而且在 waterfall 上明顯看到多了好幾條線,這就是我們所不希望看到的 side band。下圖是我把音效卡的輸出音量調到最大,imd 為 -9db,發射出來的信號實在很糟糕,信號比較強,而且在 300hz 以下出現了空白噪音 (原先並沒有 )。
离线BD3RJ
发帖
18845
只看该作者 5楼 发表于: 2004-05-04
下圖是我把音效卡的輸出音量調到比較小,imd 為 -33db,發射出來的信號很乾淨,但是比較弱,請注意在 300hz 以下沒有出現空白噪音。
离线BD3RJ
发帖
18845
只看该作者 6楼 发表于: 2004-05-04
imd 在 0 ~ -20db 之間是不能被接受的;imd 在 -20 ~ -25db 大概會看到一兩個 side band,屬於不滿意但可接受,如果你的信號很強或是傳播狀況很好,這個 side band 還是有可能干擾鄰近電台;imd 在 -25 ~ 30db 之間算是理想的的使用區段;imd 比 -30db 小當然更好,不過這時候可能很難將 tx 無線電機的功率調大。

當你把 imd 調在 -25 ~ -30db 後,請記住音效卡輸出音量的位置,以後用這部電腦進行 psk31 通訊前,記得將音量調到這個位置即可。



psk31 通訊頻率

1838 - 1840 (1838) khz
3580 - 3583 (3580) khz
7034 - 7040 (7035) khz
10138 - 10150 (10140) khz
14067 - 14080 (14070) khz
18100 - 18105 (18100) khz
21068 - 21080 (21070) khz
24920 - 24925 (24920) khz
28120 - 28125 (28120) khz

括弧內的頻率是呼叫頻率,由於 psk31 的頻寬很窄,數據通訊的人口也沒有多到人滿為患的地步,所以大部分 psk 信號都集中在呼叫頻率上下 2khz 的範圍內。以我的經驗,14mhz 人最多,21, 28mhz 次之,7mhz 又更次之,其他頻率幾乎沒有人,不過有些歐美電台專門在 1.8mhz 做 qpsk 測試,算是在測試 psk31 的極限。

上面的頻率是指實際的射頻頻率,如果你用 usb,發射的聲音是 1khz,無線電機面板頻率是 14070khz,實際的發射頻率就是 14071khz。所以一般會把無線電機面板頻率轉到比呼叫頻率少 0.5khz 的地方,然後用 500~2500hz 的音頻以 usb 來通訊,這樣射頻就會落在呼叫頻率與往上 2khz 的地方。例如無線電機面板頻率為 usb 14069.5khz,音頻 500~2500hz,射頻即為 14070~14072khz。所以一般做 psk31 通訊很少轉動無線電機頻率,直接看著 waterfall 上的訊號在上面點移動指標即可,這也算是 psk31 通訊的特色之一。



如何用 psk31 傳送 binary file

所謂二元檔 binary file 就是像圖檔、執行檔、中文檔案等,檔案的內容含有大量 ascii 128~255 的字符的檔案。由於 varicode 只有對 ascii 0~127 編碼,因此無法直接傳送 binary file。變通的方法是發射方把檔案中每個字符轉換成兩個 16 進位的數字,例如 ascii 254 的字符就是 fe,接收方把收到的 16 進位檔再轉換為 binary file。要進行這種轉換可以從各大 ftp 站下載 binhex.exe 這個公用程式來使用。

用 psk31 傳送 binary file 最大的問題是速度太慢,因為 0123456789abcdef 平均起來每個字符的長度為 10.25 位元 (含間隔的 00),換言之,每秒鐘只能傳 3 個字,一分鐘約 180 字,10 分鐘 1800 字,可是 16 進位檔,每兩個字才能轉換為一個 8 bit 的 ascii,就是說傳了 10 分鐘大概只能傳送 900 byte 的 ascii。因為實在太慢了,目前沒有人這樣玩。

以上介紹主要是參考 g3plx 所寫的 "psk31: a new radio-teletype mode with a traditional philosophy.",希望有更多人加入 psk31 通訊的領域,這種看著電腦螢幕做 keyboard chat 的通訊方式聽障朋友也可以從事,值得推廣。 (ps:聽障朋友如何通過業餘無線電資格測試而進入 hf 的領域,不在本文討論範圍。)
离线BA5SBA
发帖
3088
只看该作者 7楼 发表于: 2007-07-12
好文章,可惜图片都看不到了!
离线BD3RJ
发帖
18845
只看该作者 8楼 发表于: 2007-07-12
得用代理服务器访问。4eg光盘里有这个文章。
离线lzt300b
发帖
1920
只看该作者 9楼 发表于: 2007-07-12
用户被禁言,该主题自动屏蔽!
离线BD3RJ
发帖
18845
只看该作者 10楼 发表于: 2007-07-12
'
mfsk16及mfsk8模式是不是更好?
'
频带占用比psk宽阿
离线lzt300b
发帖
1920
只看该作者 11楼 发表于: 2007-07-12
用户被禁言,该主题自动屏蔽!
离线BD3RJ
发帖
18845
只看该作者 12楼 发表于: 2007-07-12
'
效果呢?抗干扰、qrp、dx、、、、、
'
效果很好,有时候在耳朵听不到时候,也能解码。对自然界的干扰有很强的抗干扰性,适合qrp有ham专门开发了一个psk的qrp机器,dx里玩psk的人也很多。
离线lzt300b
发帖
1920
只看该作者 13楼 发表于: 2007-07-20
用户被禁言,该主题自动屏蔽!
离线牧鹰人
发帖
689
只看该作者 14楼 发表于: 2008-02-12
学习了!xiexie
离线小比尔/5
发帖
2582
只看该作者 15楼 发表于: 2008-02-12
'
效果很好,有时候在耳朵听不到时候,也能解码。对自然界的干扰有很强的抗干扰性,适合qrp有ham专门开发了一个psk的qrp机器,dx里玩psk的人也很多。
'
一般在哪些频率工作呢?
我收rtty比较多啊~
离线BD3RJ
发帖
18845
只看该作者 16楼 发表于: 2008-02-13
14.070-080 bpsk31
14.080-090 rtty
离线BG6IRO
发帖
1080
只看该作者 17楼 发表于: 2008-11-09
bd3rj   digipan v1.6  软件 给个 汉化版 谢谢  鸟语 不行  见笑  
离线BG1VCR
发帖
164
只看该作者 18楼 发表于: 2009-01-02
好帖..................
离线bug
发帖
82
只看该作者 19楼 发表于: 2010-08-06
这个资料太好了,一直想用单片机或arm做一个便携式解码器,搂主没有详细一点的资料或参考。