AM,DSB,SSB,FM信号调制matlab
關于模擬調制系統(tǒng)仿真:
1 調制原理:
為了讓實際信號便于在有限帶寬的信道中傳輸,我們需要對信號進行調制和解調。由傅里葉變換可知,若想實現(xiàn)對頻譜的搬移,我們可以將原始時域信號與一余弦信號進行運算,此為調制的原理。由于余弦信號包含三個分量,即幅度A0,頻率wc,以及相位φ,因此可以利用實際信號對這三種分量做文章,因此也就有了幅度調制(AM,DSB,SSB),頻率調制(FM),相位調制(PM)三種不同的調制方式。
2 幅度調制:
以AM(常規(guī)雙邊帶調制)調制方式為例,說明幅度調制的一般性原理。
設:
S(t): 原始信號
cos(wc·t+φ): 載波信號
A0: 直流偏置
Sam(t): am調制后的信號
則對信號進行調制即:
Sam(t) = [ A0 + S(t) ]·cos(wc·t + φ)
3 頻率調制:
以頻率調制方式為例,對信號的調制表示為:
可以看出頻率調制的特點有:
· 包絡恒定;
· 頻偏隨調制信號m(t)作線性變換;
· 相偏隨時間信號m(t)的對時間的積分作線性變化;
· 帶寬與m(t)的帶寬和mf有關,比Am帶寬大(mf+1)倍
4 解調原理:
此處介紹相干解調和包絡檢波兩種解調方式。
4.1 相干解調:
調制模型如圖
傳輸信號經(jīng)過乘法器,和本地載波(與載波信號同頻同相)相乘,再通過一個低通濾波器,濾除高頻分量,接收信號為m(t)/2。
具體推導略去。可參考《通信原理》(樊昌信 第七版)P95
4.2 包絡檢波:
通過全波整流,使信號變?yōu)檎至?#xff0c;在圖像上即將負信號取反,通過低通濾波器濾除高頻分量,剩下包絡,也即m(t)。
5 仿真說明:
關于幅度調制的代碼較為簡單,不再說明;
FM調制中,需要注意
1 調頻靈敏度Kf確定:
式1 為卡森公式,BFM為調頻波的有效帶寬,mf為調頻指數(shù),fm為最高調制頻率,Δf是最大頻偏,
式3 為了搬移后的頻譜不會重疊
式4 是為了保證滿足采樣定理
由上不難獲得kf。
2 關于信號的積分
由于我們處理的是數(shù)字信號,積分并不能解析,需要對數(shù)據(jù)進行累加和并統(tǒng)一除以采樣頻率(相當于乘以dt)。這里使用了matlab中的函數(shù):
B = cumsum(A) %從 A 中的第一個其大小不等于 1 的數(shù)組維度開始返回 A 的累積和。
3 關于解調中的微分[差分]
Y = diff(X) 計算沿大小不等于 1 的第一個數(shù)組維度的 X 相鄰元素之間的差分:
如果 X 是長度為 m 的向量,則 Y = diff(X) 返回長度為 m-1 的向量。Y 的元素是 X 相鄰元素之間的差分。
Y = [X(2)-X(1) X(3)-X(2) … X(m)-X(m-1)]
4 關于包絡檢波的實現(xiàn)
此處采用希爾伯特變換后減去直流分量的方法
能力有限,此處不再給出證明。
6 部分代碼:
AM
自行實現(xiàn)作圖
clear; clc % 調制信號讀取 -- 載波超參設定 [S,fs] = audioread('sound_1.wav');% fs為采樣頻率 S_num = size(S,1); wc = 40000; t = 1:S_num; A0 = max(abs(S)); S_am = zeros(1,S_num); fm = 3400;% AM滿幅調制 Sam(t) = [A0 + m(t)] * cos(wc * t) for i = 1:size(S,1)S_am(i) = [A0 + S(i)]*cos(wc * t(i)); end% 信道傳輸疊加高斯白噪聲 S_AM = awgn(S_am,40);% 相干解調 -- 乘以本地載波 -- 低通濾波 RS_AM = S_AM.*cos(wc.*t); RS_AM = lowpass(RS_AM,fm,fs); audiowrite('AM.wav',RS_AM,fs); sound(RS_AM,fs)FM
clear; clc% 調制信號讀取 -- 載波超參設定 [S,fs] = audioread('sound_4.wav');% fs為采樣頻率 S_num = size(S,1); wc = 0.5; fc = wc/2/pi;% fc 載波頻率 fc = wc/2/pi; t = 1:S_num; A0 = max(abs(S)); S_fm = zeros(1,S_num); fm = 4800; B = 0.9 * min(2 * fc,fs - 2 * fc);%留一定的帶寬余量,系數(shù) <= 1 delta_f = B/2-fm; kf = 2 * pi * delta_f/A0; phi = cumsum(S)/fs;% FM滿幅頻率調制 S_fm = A*cos[wc*t + Kf * integral{m(a)*da} ] % 采用間接調頻的方式:S_pm(t) = Acos[wc*t + Kp*m(t)]; for i = 1:size(S,1)S_fm(i) = cos(wc*t(i) + kf * phi(i)); end% 信道傳輸疊加高斯白噪聲 S_FM = awgn(S_fm,40);% 非相干解調 -- 包絡檢波 RS_FM = diff(S_FM); RS_FM = [0 abs(hilbert(RS_FM))]; RS_FM = RS_FM - mean(RS_FM); audiowrite('FM.wav',RS_FM,fs); sound(RS_FM,fs)
7 說明:
·使用時,需要將音頻文件置于同一文件夾下,并替換代碼中音頻名。
·DSB,SSB解調方式同AM
·使用時請注明參考出處,謝謝。
作者:M寶可夢
QQ :1195653686
總結
以上是生活随笔為你收集整理的AM,DSB,SSB,FM信号调制matlab的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: standby是什么按钮
- 下一篇: QQ浏览器被上网导航劫持