原標題:Matlab實現模擬調製與解調

本文會介紹簡單的模擬調製解調方法,涉及AM、DSB、SSB,但沒有VSB,VSB相關的資料會在後文附上。

簡單的說,幅度調製的作用就是使得載波的幅度承載信息。

設正弦型載波爲:

式中:A爲載波幅度,ω爲載波角頻率,φ爲載波初始相位

幅度已調信號一般可表示爲:

式中:m(t)爲基帶調製信號

設m(t)的頻譜爲M(ω),則s(t)的頻譜爲:

從頻域表達式可以看出,幅度調製信號爲調製信號在頻域上的線性搬移。不過實際上,任何一種調製都是非線性的。

調幅的時域表達式爲:

式中:A0爲外加直流分量,Ac爲載波信號的最大幅值,Ka爲調製度

matlab實現過程如下:

生成調製信號

生成載波信號

生成已調信號

滿調製的效果如下:

通過調節Ka的值,可以控制調製深度

Ka<1時爲欠調製,效果如下:

Ka>1時爲過調製,效果如下:

在幅度調製中,載波分量並不攜帶信息。爲了提高效率,將AM調製的A0去掉,同時也可以減小功率,從而得到雙邊帶調製。

其時域表達式爲:

matlab實現過程如下:

調製信號和載波信號用前面給出的,以下是已調信號:

效果如下:

注意看就會發現,DSB的頻譜上邊帶和下邊帶是一樣的,完全可以去掉其中一個邊帶,這樣可以節省一半的帶寬,這種調製方式就是單邊帶調製。

一想到要去掉一個邊帶,自然就會想到使用濾波的方法。

頻域表達式爲:

matlab實現爲:

濾波器的實現如下:

效果如下:

VSB調製有點複雜,實現的過程我還是不太清楚,只知道大致的作用。

雖然SSB在一般情況下是沒有問題的,但是當調製信號頻率較低(比如模擬電視信號),上邊帶和下邊帶頻率會在載波頻率重合,這種情況下設計一個直接隔離這兩條邊帶的濾波器是基本不可能的(濾波器的歸一化值不能小於0.01,假設目標頻率爲6MHz,那麼過渡帶最少就需要600Hz),從而會導致信號丟失一些信息。

在參考資料中有提供VSB的詳細文檔介紹

解調有兩種方法:相干解調和非相干解調(包絡檢波)

相干解調原理很簡單,就是將搬移後的已調波頻譜再搬移回去。

這就需要一個與發送已調波載波信號同頻同向的本地載波,它與接收的已調信號相乘後,經過低通濾波後就得到原始基帶信號。

已調信號一般時域表達式爲:

與本地載波相乘後得到:

經過一個低通濾波器濾除ω載波分量後,就可以得到原始基帶信號。

matlab實現如下:

濾波器實現如下:

效果如下:

DSB解調方法和AM解調一樣,就不貼代碼了

效果如下:

SSB的解調需要注意的是,由於削去了一半的信號,所以解調出來的信號不再是原始基帶信號的一半幅度,而是四分之一,從時域表達式也可以看得出。

SSB的時域表達式爲:

因此matlab實現需要稍作修改:

效果如下:

複製鏈接到瀏覽器可以下載代碼

https://www.colorado.edu/ECE/ecen4242/linmod2.m

他做了GUI,而且他的濾波器是用模擬濾波器,比我對模擬調製解調友好一些(畢竟是模擬的嘛),我用數字濾波器做完後才反應過來,我是對信號採樣後用數字濾波器處理的。

個人博客

微信公衆號:greedyhao

相關文章