王天魁
(青島四三零八機械廠,山東 青島 266044)
某型短波氣象傳真機主要由短波收信裝置和傳真接收裝置兩部分組成。其中短波收信裝置原理與短波收信機相同,可以使用無線電綜合測試儀測試指標。傳真接收裝置主要由解調電路、控制電路、記錄電路、面板控制電路以及感熱記錄器組成,負責完成氣象傳真機的自動控制、噪聲抑制、FSK鑒頻與熱敏轉印等功能[1]。目前,檢測需要使用短波天線配合短波收信裝置輸出FSK調制音頻作為輸入信號,其依賴于氣象發射臺的發送時間和接收區域的收信環境,給修理調試工作帶來極大不便。為解決這些問題,提高維修和調試效率,設計了一種基于聲卡的氣象傳真音頻發生器,可以將PC機加載的任意圖像轉換為氣象傳真機能夠識別的音頻信號。使用PC機不必考慮硬件設計,在能夠滿足需求的前提下幾乎零成本。
依據WMO標準規定,傳真信號發送端通過掃描圖片方式,按照一定的速度與順序產生一個頻率變化的音頻信號,經調制后通過短波發射機發送出去。該音頻信號中心頻率為1.9 kHz,上下頻偏400 Hz。頻偏根據圖像像素的黑白變化而變化,黑色為1 500 Hz,白色為2 300 Hz。WMO通過規范合作系數(Index of Cooperation,IOC)與掃描速度(Revolutions Per Minute,RPM),保證了傳真機之間的互通性,合作系數分別為576和288,掃描速度分別為60線/min、90線/min以及120線/min[2]。本文中測試的氣象傳真機參數與WMO標準一致,氣象傳真音頻信號組成如表1所示[3]。

表1 氣象傳真音頻信號組成
由此可見,氣象傳真圖信號只有1 500 Hz與2 300 Hz兩種正弦波,通過兩種信號不同的持續時間組成氣象傳真信號。
聲卡的性能指標主要包括采樣深度和采樣頻率,目前常見PC聲卡采樣深度有8位和16位兩種,高端聲卡可以達到24位和36位。采樣深度反應了聲波量化的精確程度。當使用16位聲卡時,可將聲波分成65 536級,由于PC聲卡最大輸出電平約3 dBm,此時16位最小分辨率可以達到0.017 mV。聲卡常見采樣頻率有11 kHz、22 kHz、44.1 kHz、48 kHz及96 kHz,高端聲卡可達192 kHz,并采用專用DSP處理芯片。采樣頻率越高,用來描述離散信號的點就越多,失真越小,如48K采樣率時,可以用48個點描述一個周期的1 kHz正弦波信號。氣象傳真中用到的信號最高頻率為2 300 Hz。依據奈奎斯特定理,44.1 kHz采樣率就可以完整還原信號。
聲卡輸出的量化指標主要有總諧波失真(Total Harmonic Distortion,THD)、信噪比(Signal-Noise Ratio,SNR)以及最大不失真輸出電平,用來反映數字聲音信號經聲卡DAC后輸出音頻的還原度[4]。本文中PC端聲卡為HD Audio,Realtek ALC 3287 Codec,支持Dolby Audio,設置采樣率為44.1 kHz,16位單聲道輸出,實際使用AV4945C型無線電通信綜合測試儀分別測試 300 Hz、1 kHz、1.5 kHz、2.3 kHz以及3 kHz正弦信號,聲卡音量調整為最大時接600 Ω負載的總諧波失真、信噪比、頻率響應(較1 kHz)、頻率誤差以及最大輸出電平,結果如表2所示。

表2 Realtek ALC 3287 Codec最大音量輸出測量表
可以看出,聲卡輸出音頻能夠滿足氣象傳真音頻信號要求。
PC中存儲的圖片通常為24位真彩色,組成一幅彩色圖像的每個像素值中有R、G、B三個基色分量,各占8位,每個基色分量直接決定顯示設備的基色強度。如果要顯示僅包含黑、白兩種顏色的圖像,則需將彩色圖像二值化,而圖像二值化要先得到灰度圖。
灰度圖滿足每個像素的R、G、B值相等,這個值就是灰度值。高清彩色圖像轉化成灰度圖遵循ITU Rec.709標準亮度方程,即:

得到灰度圖后,通過設置閾值并與灰度值比較確定像素是黑還是白。閾值的選擇通常有直接閾值法、自動閾值法、最大類間法以及局部自適應法4種。直接閾值法就是直接指定閾值,通常選擇128;自動閾值法是利用直方圖方找到圖像的兩個最高峰值,然后在選擇峰谷的最低點作為閾值;最大類間法則是通過最大灰度與最小灰度的均方差確定閾值,其具有不受圖像亮度和對比度影響,運算速度快的特點;局部自適應法不選擇全局閾值,而是根據自定義的塊大小進行局部閾值選擇,具有準確檢測灰度變化的優點,對于存在文字和線條的圖像具有很好的二值化效果,本文中閾值選擇即使用了此方法[5]。
二值化后的圖像已經具備轉換的條件,但要保證輸出的記錄圖像與載入圖像的長寬比一致并能夠充滿掃描線,需要等比例拉伸載入的圖像。取掃描線長度為256 mm,當合作指數為576時,掃描線密度為7.06線/mm,此時圖像像素寬度應為256×7.06≈1 808像素;當合作指數為288時,掃描線密度為3.06線/mm,此時圖像像素寬度應為256×3.53≈904像素[3]。通過拉伸使載入圖像的寬度分別在576和288合作系數時達到1808、904像素,此時圖像的長度像素數決定了掃描總行數。
綜上,由程序加載的圖像在轉變為符合WMO標準的音頻信號前,需首先轉為灰度圖,然后二值化,再進行圖像等比例拉伸,使圖像寬度變為規定像素數,同時得到掃描行數。
軟件實現使用C#開發語言,.Net版本為4.5.0,開發工具使用VS2019,圖形界面使用Winform,視頻處理使用了自帶System.Drawing.Graphics與System.Drawing.Imaging類庫;音頻處理使用了NAudio.Net庫,版本選擇了1.8.3版,是最后一個沒有.Net版本依賴的版本。
NAudio.Net庫是基于Windows系統的音頻處理類庫,能夠使用WaveOut、DirectSound、ASIO以及WASAPI等多種方式輸出音頻,支持主流文件格式,自帶音頻發生類支持正弦波、矩形波、三角波、白噪聲、粉紅噪聲及掃頻等多種信號,能夠對音頻進行分割、鏈接、混音與變頻等聲效處理,支持將音頻保存為音頻文件,支持ACM解碼器的動態加載及顯示聲道波形圖等功能[6]。
程序設計過程中圖像二值化使用局部自適應法,通過選擇不同合作系數和掃描速率確定圖像拉伸寬度與長度[7-10]。音頻格式WaveFormat的采樣率為44 100 Hz、深度為16位、單聲道輸出,使用Signal Generator類定義黑、白信號源,音頻片段ISample Provider可以由信號源通過持續時間得到。其中行圖像生成音頻片段是通過計算行中黑、白像素連續區間長度l得到,連續區間的信號持續時間t=tr×l/1 808,tr為行掃描時間,當掃描速度為120線/min時,tr=475 ms。使用Concatenating Sample Provider類鏈接音頻片段得到完整音頻,最后通過Wave Out輸出。
由于生成后的FSK信號是交替變換的兩個頻率正弦波,如不控制波形的初相位,那么輸出音頻能夠聽到明顯的“喀噠”聲音,接收裝置會識別到干擾信號,此時需要消除信號間的相位差,即信號的初相位φ等于前一個信號的末相位φ'。可以直接根據時域公式計算出離散的初相位,正弦波遵循的公式為:

式中:A為正弦波的振幅;φ時正弦波的初始相位角;f為正弦波的頻率,單位為Hz;ω為角頻率,等于2πf;t為時間。
產生的音頻信號在與噪聲混合前,可以通過ISampleProvider接口的gain屬性調整信號的增益,形成信噪比不同音頻,測試不同噪聲下的輸出音頻對接收打印裝置的影響。
通過PC聲卡輸出音頻為不平衡信號,直接加載到接收裝置600∶600隔離變壓器前端,通過比較熱敏打印效果與加載圖像比例相同,圖像清晰。加載噪聲后明顯可見圖像清晰度變差,與預期一致。
本文針對短波氣象傳真機在維修和調試過程中受制于氣象傳真的發送時間和接收區域環境的問題,設計了一種利用PC機加載圖像,轉換音頻信號模擬氣象傳真。能夠不依賴外部氣象傳真信號,不受接收時間和接收環境的限制,在實際維修和調試過程中具有很好的使用價值。