單頻訊號的儲存與播放

... 2021-04-23
  • Comm
About 2 min

# 單頻訊號的儲存與播放

這個單元以單頻訊號的傳送和接收為例,來說明 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 檔案的音樂或聲音。

Last update: April 23, 2021 23:18
Contributors: Jia-Yin