寫在前面
本篇是【Matlab】BASK的調制與解調仿真的下篇,考慮到閱讀體驗,故另開一篇分享將BFSK的調制與解調仿真。
索引
- 寫在前面
- 一、BFSK的調制
- 1.1 異頻載波生成
- 1.2 信號合並
- 1.3 波形預覽
- 1.4 參數設置(參考)
- 二、BFSK的解調
- 2.1 模型搭建
- 2.2 波形預覽
- 2.3 參數設置(參考)
- 三、常見問題
- 寫在最后
一、BFSK的調制
一個FSK信號可以看成是兩個不同載波的BASK信號的疊加,BFSK信號的頻譜可以看成是\(f_1\)和\(f_2\)兩個BASK頻譜的組合。
頻移鍵控是利用載波的頻率來傳遞數字信號,在BFSK中,載波的頻率隨着二進制基帶信號在\(f_1\)和\(f_2\)兩個頻率點間變化,頻移鍵控是利用載波的頻移變化來傳遞數字信息的。故其表達式為:
BFSK的調制方式有兩種,即模擬調頻法和鍵控法。本篇使用鍵控法,通過Simulink進行仿真。鍵控法的原理圖如下圖所示:

1.1 異頻載波生成
根據BFSK信號表達式可知,我們需要准備兩個不同頻率的載波。為了生成異頻載波,我們將BASK調制模型中的Signal Geneator替換成Sine Wave。另外,為了體現01信號的特點,需要使曼徹斯特碼的其中一個通道經過非門NOT,再通過乘法器。


1.2 信號合並
觀察1.1中的波形圖,我們很容易的得出一個結論:BFSK調制信號由0編碼BFSK調制信號和1編碼BFSK調制信號加和而得。因此我們讓兩個異頻載波經過Sum即可得到完整的BFSK調制信號。
為了模型的可視性,我將0編碼BFSK調制信號和1編碼BFSK調制信號進行封裝。

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

1.4 參數設置(參考)
我們可以調節各模塊的參數來控制BFSK調制信號的形狀,下面給出各模塊的參考參數:
模塊名 | 自定義名稱 | 參數 | 設置值 |
---|---|---|---|
Pulse Generator | Pulse Generator | Period (secs) | 1 |
Pulse Width (% of period) | 50 | ||
Sine Wave | Sine Wave 0b | Frequency (rad/sec) | 12*pi |
Sine Wave 1b | Frequency (rad/sec) | 24*pi |
注:未列出的模塊參數按默認處理。
二、BFSK的調制
BFSK的解調方式有兩種,即相干解調和非相干解調。本篇使用相干解調,通過Simulink進行仿真。相干解調的原理圖如下圖所示:
下面我們使用Matlab/Simulink進行模型的分步實現。
2.1 模型搭建
在Simulink中,我們可以用Analog Filter Design來代替帶通濾波器和低通濾波器,用Sine Wave輸出同頻解調載波,用GreaterThanOrEqual代替抽樣判決器和抽樣脈沖。具體模型如下:

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

2.3 參數設置(參考)
下面給出各模塊的參考參數:
模塊名 | 自定義名稱 | 參數 | 設置值 |
---|---|---|---|
Analog Filter Design | Bandpass Filter 0b | Filter type | Bandpass |
Lower passband edge frequency (rad/s) | 12*pi-20 | ||
Upper passband edge frequency (rad/s) | 12*pi+20 | ||
Bandpass Filter 1b | Filter type | Bandpass | |
Lower passband edge frequency (rad/s) | 24*pi-20 | ||
Upper passband edge frequency (rad/s) | 24*pi+20 | ||
Lowpass Filter 0b | Passband edge frequency (rad/s) | 10*pi | |
Lowpass Filter 1b | Passband edge frequency (rad/s) | 23*pi | |
Sine Wave | Sine Wave | Frequency (rad/sec) | 12*pi |
Sine Wave1 | Frequency (rad/sec) | 24*pi | |
GreaterThanOrEqual | GreaterThanOrEqual | Relational operator | < |
注:未列出的模塊參數按默認處理。
三、常見問題
Q:仿真過程中遇到正弦波畸變(包括幅度和形狀),該怎么處理?
A:若在仿真過程中遇到正弦波畸變(包括幅度和形狀),可以在Simulink工程空白處右鍵,選擇Model Configuration Parameters,進入頁面后,在選項卡Solver -> Solver details中進行如下參數設置:
參數 | 設置值 |
---|---|
Max step size | 1e-5 |
Relative tolerance | 1e-5 |
.
寫在最后
這幾周實在是太忙啦,隔了一天才把這一篇寫完,不過還是趕在周四前寫好了Orz
希望本篇隨筆和姊妹篇能夠對大家有所幫助~