【Matlab】BASK的調制與解調仿真


索引

  • 一、BASK的調制
    • 1.1 曼徹斯特碼
    • 1.2 增益控制
    • 1.3 常量求和
    • 1.4 與載波相乘
    • 1.5 波形預覽
    • 1.6 參數設置(參考)
  • 二、BASK的解調
    • 2.1 濾波
    • 2.2 信號比較
    • 2.3 波形預覽
    • 2.4 參數設置(參考)
  • 三、常見問題

一、BASK的調制

根據BASK調制的原理,信號處理的步驟如下:

graph LR ManchesterCode["曼徹斯特碼"] gainControl["增益控制<br />(調制深度處理)"] Sum["與常量1求和"] Times["與載波相乘"] BASK["BASK信號"] ManchesterCode --> gainControl --> Sum --> Times --> BASK
下面我們使用Matlab/Simulink進行模型的分步實現。

1.1 曼徹斯特碼

曼徹斯特碼可以通過NRZ碼和時鍾信號進行異或獲取。假設\(Manchester(t)\)為曼徹斯特碼,NRZ(t)為NRZ碼,Clock(t)為時鍾信號,則有:

\[Manchester(t)=NRZ(t)\otimes Clock(t) \]

在Simulink中,我們可以使用Bernoulli Binary Geneator來隨機生成二進制流,即NRZ碼。類似地,我們可以使用Pulse Generator來生成時鍾脈沖信號。
上述的兩個模塊,以及接下來將要使用到的模塊,都可以在Library Browser中找到。

因此,我們可以建立一個生成曼徹斯特碼的模型:

注:Scope為示波器。

1.2 增益控制

為了實現幅度變化,我們需要使用Gain對曼徹斯特碼進行增益控制。在進行增益控制前,我們需要將二進制數字信號轉換成浮點型(雙精度浮點型),以便更好的處理增益值。下面給出一種實現增益控制的解決方案:

1.3 常量求和

增益控制后,為了處理信號發生器產生的信號,避免后續過程持續出現0信號,需要對受增益控制的信號進行加1處理。我們可以使用Constant來生成常量。

1.4 與載波相乘

求和后,使用Product與載波進行乘法運算,即可得到BASK信號。我們可以使用Signal Geneator來生成載波。

1.5 波形預覽

使用Scope模塊,我們可以觀察到各個階段中信號的波形。將曼徹斯特信號和BASK調制信號連接到示波器,我們可以觀察到下圖:

上圖中,圖例XOR表示的為曼徹斯特碼的波形圖,圖例Product表示的是BASK調制信號的波形圖。需要注意的是,由於Bernoulli Binary Geneator產生的是隨機信號,每次仿真所產生的波形圖也是隨機的。

1.6 參數設置(參考)

我們可以調節各模塊的參數來控制BASK調制信號的形狀,下面給出各模塊的參考參數:

模塊名 參數 設置值
Pulse Generator Period (secs) 1
Pulse Width (% of period) 50
Gain Gain 0.5
Signal Generator Frequency 50*pi

注:未列出的模塊參數按默認處理。


二、BASK的解調

根據BASK解調的原理,信號處理的步驟如下:

graph LR BASK["BASK信號"] Times["與載波相乘"] LowPassFilter["低通濾波器"] Comparator["比較器"] DemodulatedSignal["解調信號"] BASK --> Times --> LowPassFilter --> Comparator --> DemodulatedSignal
下面我們使用Matlab/Simulink進行模型的分步實現。

2.1 濾波

為了將高頻信號與低頻信號分開,我們需要使用Analog Filter Design對BASK信號進行濾波處理。在濾波前,為了保證信號值恆為正數,需要與載波相乘。上一章的調制電路被封裝成BASK Generator模塊,用於生成BASK信號。

特別地,低通濾波器的截止頻率需低於兩倍的載波頻率。

2.2 信號比較

BASK通過低通濾波器后,產生的波形可大致描述解調信號的形狀。

上圖中,圖例XOR表示的為曼徹斯特碼的波形圖,圖例Analog Filter Design表示的是濾波后的信號的波形圖。由於們需要更加穩定的數字信號,所以可以使用比較器將波形抽離成數字信號。
以上就是BASK信號解調的模擬電路。

2.3 波形預覽

使用Scope模塊,我們可以觀察到各個階段中信號的波形。將曼徹斯特信號和BASK解調信號連接到示波器,我們可以觀察到下圖:

上圖中,圖例XOR表示的為曼徹斯特碼的波形圖,圖例GreaterThanOrEqual表示的是BASK解調信號的波形圖。

2.4 參數設置(參考)

下面給出各模塊的參考參數:

模塊名 參數 設置值
Signal Generator Frequency 50*pi
Constant Constant value 0.6
Analog Filter Design Passband edge frequency (rad/s) 45*pi

注:未列出的模塊參數按默認處理。


三、常見問題

Q:仿真過程中遇到正弦波畸變(包括幅度和形狀),該怎么處理?
A:若在仿真過程中遇到正弦波畸變(包括幅度和形狀),可以在Simulink工程空白處右鍵,選擇Model Configuration Parameters,進入頁面后,在選項卡Solver -> Solver details中進行如下參數設置:

參數 設置值
Max step size 1e-5
Relative tolerance 1e-5

Q:BASK解調框圖中比較器的常量比較值選取的理由是什么?
A:在BASK信號與載波相乘並通過低通濾波器后,會產生一種在形狀上與曼徹斯特碼相似的信號。該信號如2-2中波形圖所示。為了得到穩定的01數字信號,我們需要將濾波后的信號進行放大。這時,我們可以取濾波信號最大值和最小值的平均值作為比較量。當信號值大於平均值,輸出1;當信號值小於平均值,輸出0. 這種方法可以產生穩定的01數字信號,並且不會額外增加解調信號的延遲。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM