單頻訊號的儲存與播放
# 單頻訊號的儲存與播放
這個單元以單頻訊號的傳送和接收為例,來說明 GNU Radio 的基本使用方法,以及訊號的傳送和接收的基本概念。
# 要傳送的單頻訊號
首先,我們先建立一個實數的 Cos 訊號源,然後把訊號傳送到喇叭 (Audio Sink),系統架構如下:
注意訊號源的部份,要將輸出型態設定成 float,否則無法和喇叭連接。另外,因為訊號輸出到喇叭時,喇叭會限制訊號的傳送速度,所以系統中不需要添加 Throttle 元件。
建立好之後,試著存檔,產出模型並執行,如果沒有問題的話,應該會跳出一個小小的空白視窗,同時系統會播放一個音頻訊號。
# 將訊號存到檔案
接著,在系統中新增一個 Wav File Sink,將訊號源一併連接到新增的檔案模組,系統架構如下:
在 Wav File Sink 模組上快按兩下,將其中的 File 參數填入一個適當的路徑和檔名,記得檔名最後要以 .wav 結尾,表示檔案為 wav 的音源格式檔。範例如下(請修改路徑和檔名):
完成設定之後,重新產生及執行,會聽到跟之前一樣的聲音,大概三秒左右將程式結束掉。
執行完之後,打開檔案總管,在原先填入的路徑中檢查,應該會看到所設定的檔案。直接快按檔案兩下,系統會啟動預設的媒體播放程式,播放音檔的內容,基本上應該是一樣的聲音。
# 用 GNU Radio 播放音檔
GNU Radio 中,也有一個 Wav File Source 模組,主要是用來讀取音檔的訊號內容。現在在 GNU Radio 中開啟一個新檔,放入 Wav File Source 模組及喇叭,連結系統架構如下:
把 Wav File Source 模組中的 File 參數填入剛才產生出來的音頻檔案。完成之後,存檔、產出模型及執行,沒有問題的話,應該會聽到同樣的聲音。
以上主要是透過 GNU Radio 模擬音頻訊號的產生、儲存以及讀取。
練習
試著將上面 Wav File Source 中的 File 參數替換成其他的 wav 檔案,試著執行看看,是否可以聽到該 wav 檔案的音樂或聲音。