ssb的matlab仿真,单边带调制(SSB调制)的理论基础和MATLAB仿真
前言
《通訊原理》這門課程的第一次研討中,老師提供了一個關(guān)于SSB調(diào)制的研討方向。本文匯總了咱們小組準備的資料,分紅SSB的理論實現(xiàn)部分和基于MATLAB的仿真部分兩部分,帶領(lǐng)你們詳細探討SSB調(diào)制過程,但愿你們有所收獲。(若是各位看官發(fā)現(xiàn)問題,還請不吝指出,謝謝~)html
1、SSB調(diào)制的起源
1. 信號的幅度調(diào)制:
《通訊原理》(第2版)的定義:用消息信號去控制載波的瞬時幅度,使載波的幅度隨調(diào)制信號而變化。
聽著很抽象是否是?如下是通俗易懂版本:
無線通訊的發(fā)射端須要把信號加在一個功率很大的載波信號上,才可以確保在很遠的地方接收到信號,這個過程能夠參考射頻傳輸加以了解。
網(wǎng)絡(luò)
2. AM和DSB-SC:
常規(guī)調(diào)幅(AM):
時域表達式:
優(yōu)勢:接收端的制造成本低(只須要使用包絡(luò)檢波電路就能夠?qū)崿F(xiàn));
在須要大量接收機的時候有優(yōu)點;
缺點:調(diào)制效率不高(發(fā)送的過程當中發(fā)送了大量純載波,也就是“1”);
抑制載波雙邊帶調(diào)制(DSB-SC):
時域表達式:
優(yōu)勢:沒有了載波“1”,傳輸效率能夠達到100%;
缺點:提升了接收端的成本(須要使用鎖相環(huán)進行相干解調(diào));
dom
3. SSB調(diào)制:
改進:DSB-SC使用的雙邊帶調(diào)制,在頻帶資源很緊張的狀況下,傳輸雙邊帶顯然會形成資源浪費,由于根據(jù)傅里葉變換的性質(zhì),實函數(shù)(真實傳輸?shù)男盘?的正負頻率部分是共軛對稱的。函數(shù)
實現(xiàn)方式一:濾波法
用濾波法產(chǎn)生SSB信號的原理框圖以下:
性能
由上圖可知,邊帶濾波器有兩種,其中,Husb(w)用于剔除下邊帶,Hlsb(w)用于剔除上邊帶。spa
實現(xiàn)方式二:相移法(MATLAB仿真)
用相移法產(chǎn)生SSB信號的原理框圖以下:
.net
2、MATLAB仿真
1.Hilbert變換的仿真:
理論基礎(chǔ)部分:3d
解析信號 = 原(實)信號 + j * 通過Hilbert變換以后的原信號,即:z(t) = x(t) + j * hilbert(x(t));code
MATLAB中的hilbert()函數(shù)獲得的是復信號,緣由為:hilbert()的做用是將原信號中正頻率的部分相移 -π/2,負頻率部分相移π/2,所以須要經(jīng)過實部和虛部一塊兒表示信號(能夠瀏覽附錄一的圖片加以理解);orm
關(guān)鍵代碼展現(xiàn):
%%
%時域分析
ts = 0.0025;
fs = 1/ts;
N = 200;
f = 50;
k = 0:N-1;
t = k*ts;
% 結(jié)論:sin信號通過Hilbert變換后變?yōu)閏os信號
y = sin (2* pi *f*t);
yh = hilbert(y); % matlab函數(shù)獲得信號是合成的復信號
yi = imag (yh); % 虛部為相移以后的原信號
%%
%頻域分析
y_length=length(y);
yi_length=length(yi);
NFFT_y = 2^nextpow2(y_length);
NFFT_yi = 2^nextpow2(yi_length);
F_Y_domain = (fs/2)*linspace(0,1,NFFT_y/2);
F_YI_domain = (fs/2)*linspace(0,1,NFFT_yi/2);
Y = fft(y,NFFT_y)/y_length;
YI = fft(yi,NFFT_yi)/yi_length;
Amp_Y = 2*abs(Y(1:NFFT_y/2));
Amp_YI = 2*abs(YI(1:NFFT_yi/2));
ANG_Y = angle(Y(1:NFFT_y/2));
ANG_YI = angle(YI(1:NFFT_yi/2));
仿真結(jié)果展現(xiàn):
2.“sin(t)”+"cos(t)"的仿真:(以正弦信號為例驗證Hilbert變換)
理論基礎(chǔ)部分:
正弦函數(shù)的FT變換以下:
咱們不妨作如下嘗試來驗證Hilbert變換:
a. 對通過hilbert變換以后的正弦信號翻轉(zhuǎn)π/2(即*j),而后看這個處理以后的信號在實軸的投影,若是這個信號的投影為0,而且它的相位譜和原信號的相位譜相同,則說明Hilbert變換確實改變了信號的相位;
b. 看原信號和通過上述特殊處理的信號相加獲得的疊加信號的頻譜,若是在正頻率上的幅度譜是直接相加獲得的,則說明Hilbert變換確實沒有改變信號的幅度譜。
關(guān)鍵代碼展現(xiàn):
%%
%信號翻轉(zhuǎn)
y = sin (2* pi *f*t);
yh = hilbert(y); % matlab函數(shù)獲得信號是合成的復信號
yi = j * imag (yh); % *j 作翻轉(zhuǎn)
%%
%信號疊加
y_yi = y + yi;
y_yi_length=length(y_yi);
NFFT_y_yi = 2^nextpow2(y_yi_length);
F_Y_YI_domain = (fs/2)*linspace(0,1,NFFT_y_yi/2);
Y_YI = fft(y_yi,NFFT_y_yi)/y_yi_length;
Amp_Y_YI = 2*abs(Y_YI(1:NFFT_y_yi/2));
ANG_Y_YI = angle(Y_YI(1:NFFT_y_yi/2));
仿真結(jié)果展現(xiàn):
3.SSB的仿真:(以理想的“u(t)-u(t-1) ”信號做為原信號)
理論基礎(chǔ)部分:
本仿真過程當中采用的是剔除下邊帶SSB調(diào)幅法,即:
因為MATLAB中的Hilbert()變換階數(shù)有限,因此對一個理想的窗函數(shù)進行Hilbert變換以后,得不到理想的沖擊函數(shù),而是有必定的高度;
因為Hilbert變換在頻率為零的附近沒有定義,為了保證幅度譜的連續(xù)性,MATLAB會強制在零頻率幅值,因此一個理想的窗函數(shù)通過Hilbert變換以后,在頻域上得不到理想的sinc函數(shù);
載波的頻率為5000hz,因此原信號和通過了Hilbert變換以后的信號相加獲得的疊加信號的幅度譜,在5000hz的右邊(上邊帶)為兩個信號的幅度譜直接相加,在5000hz的左邊(下邊帶)為兩個信號的幅度譜直接相減;
因為MATLAB都是使用DFT進行信號的處理,因此仿真出來的結(jié)果不會出現(xiàn)理想的狀況。
關(guān)鍵代碼展現(xiàn):
變量表示的意思:
y:cos載波信號;y_h:sin載波信號;
m:原信號; m_h:通過Hilbert變換以后的原信號;
y_m:原信號加載在cos載波信號;y_h_m_h:通過Hilbert變換以后的原信號加載在sin載波信號;
y_m_y_h_m_h:y_m + y_h_m_h
%%
%定義相移法中用到的載波
ts = 0.000025;
fs = 1/ts;
N_zai = 200;
f_zai = 5000;
k = 0:N_zai;
t_zai = k*ts;
%獲得cos載波信號
y = cos (2* pi *f_zai*t_zai);
yh = hilbert(y);
%獲得sin載波信號
y_h = imag (yh);
%%
%原函數(shù):使用理想的u(t)-u(t-1) (時域)
f_yuan = 50;
t = -2:1/f_yuan:2;
ut1 = stepfun(t,0);
ut2 = stepfun(t,1);
m = ut1 - ut2;
mh = hilbert(m);
m_h = imag (mh);
%原函數(shù):使用理想的u(t)-u(t-1) (頻域)
m_length=length(m);
NFFT_m = 2^nextpow2(m_length);
F_M_domain = (fs/2)*linspace(0,1,NFFT_m/2);
M = fft(m,NFFT_m)/m_length;
Amp_M = 2*abs(M(1:NFFT_m/2));
M_H = fft(m_h,NFFT_m)/m_length;
Amp_M_H = 2*abs(M_H(1:NFFT_m/2));
%%
%SSB的相移過程:(默認Ac=1)
y_m = m.*y;
y_h_m_h = (j*m_h).*(j*y_h);
y_m_y_h_m_h = y_m + y_h_m_h;
y_m_length=length(y_m);
y_h_m_h_length=length(y_h_m_h);
y_m_y_h_m_h_length=length(y_m_y_h_m_h);
NFFT_y_m = 2^nextpow2(y_m_length);
NFFT_y_h_m_h = 2^nextpow2(y_h_m_h_length);
NFFT_y_m_y_h_m_h = 2^nextpow2(y_m_y_h_m_h_length);
F_Y_M_domain = (fs/2)*linspace(0,1,NFFT_y_m/2);
F_Y_H_M_H_domain = (fs/2)*linspace(0,1,NFFT_y_h_m_h/2);
F_Y_M_Y_H_M_H_domain = (fs/2)*linspace(0,1,NFFT_y_m_y_h_m_h/2);
Y_M = fft(y_m,NFFT_y_m)/y_m_length;
Y_H_M_H = fft(y_h_m_h,NFFT_y_h_m_h)/y_h_m_h_length;
Y_M_Y_H_M_H = fft(y_m_y_h_m_h,NFFT_y_m_y_h_m_h)/y_m_y_h_m_h_length;
Amp_Y_M = 2*abs(Y_M(1:NFFT_y_m/2));
Amp_Y_H_M_H = 2*abs(Y_H_M_H(1:NFFT_y_h_m_h/2));
Amp_Y_M_Y_H_M_H= 2*abs(Y_M_Y_H_M_H(1:NFFT_y_m_y_h_m_h/2));
ANG_Y_M = angle(Y_M(1:NFFT_y_m/2))*180/pi;
ANG_Y_H_M_H = angle(Y_H_M_H(1:NFFT_y_h_m_h/2))*180/pi;
ANG_Y_M_Y_H_M_H = angle(Y_M_Y_H_M_H(1:NFFT_y_m_y_h_m_h/2))*180/pi;
仿真結(jié)果展現(xiàn):
總結(jié)
原信號通過Hilbert變換器獲得與原信號相位不一樣、幅值相同的新信號,而后經(jīng)過一個簡單的加法器就能夠進行疊加,最后實現(xiàn)SSB調(diào)制。這種調(diào)制方式既可以解決AM調(diào)制效率不高的問題,又可以解決DSB-SC浪費頻帶的問題,是如今實現(xiàn)幅度調(diào)制比較好而且能夠調(diào)制性能比較高的調(diào)幅方式。
最后,特別感謝通訊原理第一小組的全部組員們(因為網(wǎng)絡(luò)隱私問題,這里就不寫你們的名字了)。可以獲得最后仿真的成果,是由于你們一塊兒準備的材料,尤為是你們匯總的PPT,能夠說,這篇文章,只是把你們匯總的PPT進行了書面的表達。因此,再次感謝你們~
引用(感謝如下做者)
附錄:四次Hilbert變換
總結(jié)
以上是生活随笔為你收集整理的ssb的matlab仿真,单边带调制(SSB调制)的理论基础和MATLAB仿真的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 像电影里的黑客高手一样敲代码攻击入侵网站
- 下一篇: matlab仿真ssb调制解调,ssb调