日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

基带信号及其眼图MATLAB仿真实现,Matlab通信仿真——带限系统下的基带信号

發(fā)布時間:2024/3/7 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基带信号及其眼图MATLAB仿真实现,Matlab通信仿真——带限系统下的基带信号 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Matlab通信仿真——帶限系統(tǒng)下的基帶信號

Matlab通信仿真——帶限系統(tǒng)下的基帶信號

1 余弦滾降特性

滿足消除碼間串擾條件的H(f)有很多種,容易想到的一種極限情況,就是H(f)為理想低通型。

圖1.1 理想低通濾波器公式

圖1.2 理想低通型濾波器傳輸特性

令人遺憾的是,這種濾波器特性在物理上是無法實現(xiàn)的。

為了解決理想低通特性存在的問題,可以使理想低通低通濾波器特性的邊緣緩慢下降,這稱為“滾降”。一種常用的滾降特性是余弦滾降特性,如圖1.3所示。一類常用的升余弦特性滾降的傳輸函數(shù)H(f)可表示為

(公式1.1)

其中α稱為滾降系數(shù),頻帶利用率為(公式1.2)

升余弦特性滾降系統(tǒng)的時域波形為(公式1.3)

圖1.3 余弦滾降特性

1.1 設(shè)計不同α的升余弦滾降系統(tǒng)頻譜

首先,完成初始化設(shè)置。設(shè)置碼元周期,抽樣、采樣間隔,并把三個不同的滾降系數(shù)α(α分別等于0、0.5、1)賦給alpha。

對應(yīng)代碼如下:

//

Ts=1;%碼元周期

N_sample=17;%每個碼元抽樣點數(shù)

dt=Ts/N_sample;%抽樣間隔

df=1.0/(20.0*Ts);

t=-10*Ts:dt:10*Ts;%設(shè)置采樣

f=-2/Ts:df:2/Ts;

alpha=[0,0.5,1];;

通過公式1.1,設(shè)計升余弦特性滾降系統(tǒng)的傳輸函數(shù)H(f)。利用for循環(huán)結(jié)構(gòu)完成分段函數(shù)的設(shè)計,共有兩次循環(huán),第一層循環(huán)為α的循環(huán),三個α對應(yīng)三行,輪流把三個α代入式中進行運算,結(jié)果存入Xf矩陣中的三行中,第二層循環(huán)為k的循環(huán),對應(yīng)了每個f的抽樣值,輪流代入式中進行運算,結(jié)果存入Xf矩陣中的每一列。

最終Xf(n,k)的結(jié)果共有三行,分別對應(yīng)三個α值的結(jié)果,如圖1.1.1。

圖1.1.1 Xf輸出結(jié)果

對應(yīng)代碼如下:

// for n=1:length(alpha)%三個滾降系數(shù)輪流顯示

for k=1:length(f)

if abs(f(k))>0.5*(1+alpha(n))/Ts

Xf(n,k)=0;

elseif abs(f(k))<0.5*(1-alpha(n))/Ts

Xf(n,k)=Ts;

else

Xf(n,k)=0.5*Ts*(1+cos(pi*Ts/(alpha(n)+eps)*(abs(f(k))-0.5*(1-alpha(n))/Ts)));

end

end

Xt(n,:)=sinc(t/Ts).*(cos(alpha(n)*pi*t/Ts))./(1-4*alpha(n)^2*t.^2/Ts^2+eps);%賦值給Xt的第n行

End;

注:1.形如A(i, :)=b表示把b存入矩陣A的第i行

1.2 設(shè)計不同α的升余弦滾降系統(tǒng)時域波形

通過公式1.3,設(shè)計升余弦特性滾降系統(tǒng)的時域波形Xt。同樣通過for循環(huán)完成三個不同α值得運算。共一層循環(huán),第一層循環(huán)為α的循環(huán),結(jié)果存入Xt矩陣中的三行,輸出結(jié)果如下圖1.2.1。

圖1.2.1 Xt輸出結(jié)果

對應(yīng)代碼如下:

// alpha=[0,0.5,1];%三個滾降系數(shù)

for n=1:length(alpha)%三個滾降系數(shù)輪流顯示

Xt(n,:)=sinc(t/Ts).*(cos(alpha(n)*pi*t/Ts))./(1-4*alpha(n)^2*t.^2/Ts^2+eps);%賦值給Xt的第n行

End;

注:1.

2.形如A+eps,表示離A最近的浮點數(shù)

2 眼圖

在實際生活中,我們使用簡便的實驗手段來定性評價系統(tǒng)的性能。

所謂眼圖,是指通過示波器觀察接收端的基帶信號波形,從而估計和調(diào)整系統(tǒng)性能的一種方法。這種方法的具體做法是:用一個示波器跨接在抽樣判決器的輸入端,然后調(diào)整示波器水平掃描周期,使其與接收碼元的周期同步。

此時可以從示波器顯示的波形上,觀察碼間干擾和信道噪聲等因素影響的情況,從而估計系統(tǒng)性能的優(yōu)劣程度。因為在傳輸二進制信號波形時,示波器顯示的波形很像人的眼睛,故名“眼圖”,如圖2.1。

圖2.1 眼圖的模型

通俗易懂的說,眼圖就是將每一個掃描周期調(diào)整到碼元周期,由于示波器的余輝作用,掃描得到的每一個碼元波形將重疊在一起,如果說沒有碼間干擾,如圖2.2(b)所示的線條會是細而清晰的大“眼睛”。對比圖2.2(b)和(d)可知,眼圖的“眼睛”張開越大,且眼圖越端正,表示碼間串擾越小;反之,表示碼間干擾越大。

圖2.2 基帶信號波形及眼圖

圖2.3 眼圖設(shè)計流程圖

2.1 雙極性碼元序列的產(chǎn)生

產(chǎn)生雙極性碼元序列的操作步驟如下:

(1)完成程序的初始化設(shè)置,定義碼元數(shù)、抽樣點數(shù)等。

(2)調(diào)用randn函數(shù),產(chǎn)生一個行數(shù)為1,列數(shù)為碼元數(shù)N_data的正態(tài)分布隨機 矩陣。

(3)調(diào)用sign函數(shù),判斷步驟(2)中產(chǎn)生的隨機矩陣的每個元素的正負號,賦 給d。

(4)定義并調(diào)用sigexpand函數(shù),對d進行擴張,每個間隔間加入N_sample個零, 賦值給xt,xt即為雙極性碼元序列,結(jié)果如圖2.1.1。

圖2.1.1 xt輸出結(jié)果

操作代碼如下:

// Ts=1;%碼元周期

N_sample=17;%每個碼元抽樣點數(shù)

N_data=1000;%碼元數(shù)

%產(chǎn)生雙極性數(shù)字信號

d=sign(randn(1,N_data));%randn隨機生成數(shù)字 sign函數(shù)進行一個判斷,判斷其正負

xt=sigexpand(d,N_sample);%對d進行擴張,每個間隔加入N_sample-1個零

%定義sigexpand函數(shù)

function[out]=sigexpand(d,M);

N=length(d);%基帶信號碼元長度

out=zeros(M,N);%矩陣M為采樣點 N為基帶信號碼元數(shù)量,建立M*N的零矩陣

out(1,:)=d;%將零矩陣第一行換成基帶信號中的8個碼元

out=reshape(out,1,M*N);% 1行 m*n 列

%B = reshape(A,m,n) 返回一個m*n的矩陣B, B中元素是按列從A中得到的。如 果A中元素個數(shù)沒有m*n個, 則會引發(fā)錯誤。;

2.2碼元序列抽樣

設(shè)置抽樣時間間隔dt=Ts/N_sample,設(shè)置采樣,從-3Ts開始,到3Ts結(jié)束,步長為dt,t=-3Ts:dt:3Ts;

操作代碼如下:

//

dt=Ts/N_sample;%抽樣時間間隔

t=-3*Ts:dt:3*Ts;%設(shè)置采樣;

2.3 設(shè)置升余弦滾降系統(tǒng)

參考公式1.3,寫出升余弦滾降特性系統(tǒng)函數(shù)的表達式,輸出信號等于輸入信號與系統(tǒng)函數(shù)的卷積。

操作代碼如下:

// alpha=1;%滾降系數(shù)為1

%基帶系統(tǒng)沖擊響應(yīng)(升余弦)

ht=sinc(t/Ts).*(cos(alpha*pi*t/Ts))./(1-4*alpha^2*t.^2/Ts^2+eps);

st=conv(xt,ht);%卷積,輸出函數(shù)等于輸入函數(shù)與系統(tǒng)函數(shù)的卷積

tt=-3*Ts:dt:(N_data+3)*N_sample*dt-dt;%設(shè)置采樣;

注:

(1)帶.和./指矩陣中各個元素對應(yīng)相乘或相除

(2)sinc(t)=sin(pait)/(pai*t)

(3)形如A+eps,表示離A最近的浮點數(shù)

2.4繪制眼圖

繪制眼圖的步驟如下:

(1)定義眼圖長度,顯示8個“眼睛”。

(2)建立一個一行eye_num*N_sample列的零矩陣,定義采樣間隔

(3)通過循環(huán)k畫眼圖,將48個周期重疊在一起,利用drawnow和holdon函數(shù) 形成眼圖

操作代碼如下:

// eye_num=8;

N_sample=17;%每個碼元抽樣點數(shù)

subplot(2,2,2);

ss=zeros(1,eye_num*N_sample);%建立零矩陣

ttt=0:dt:eye_num*N_sample*dt-dt;%采樣間隔

for k=3:50

ss=st(k*N_sample+1:(k+eye_num)*N_sample);%st為輸出函數(shù)

drawnow;%將還未處理完的圖像實時的顯示出來,實時看到圖像的每一步變化情況

plot(ttt,ss);

hold on;%新畫圖像之后不想覆蓋原圖像

end

xlabel('t/Ts');

ylabel('基帶信號眼圖');

注:(1)ss=st(a:b)表示將st矩陣中[st(a),st(a+1)…st(b)]這些元素 存入ss中

四、結(jié)果分析

圖4.1 的升余弦滾降系統(tǒng)頻譜及其各自對應(yīng)的時域波形圖

由圖4.1可知,在頻譜中,α為0時,濾波器特性的邊緣垂直,α越大,邊緣傾斜程度越大。在時域中,α為0時,旁瓣最大,α越大,旁瓣越小。

圖4.2 接收端的基帶數(shù)字信號波形圖及其眼圖

所有的代碼如下:

代碼1

不同滾降系數(shù)的升余弦滾降系統(tǒng)頻譜及其各自對應(yīng)的時域波形:

// Ts=1;

N_sample=17;%每個碼元抽樣點數(shù)

dt=Ts/N_sample;%抽樣間隔

df=1.0/(20.0*Ts);

t=-10*Ts:dt:10*Ts;%設(shè)置采樣

f=-2/Ts:df:2/Ts;%

alpha=[0,0.5,1];%三個滾降系數(shù)

for n=1:length(alpha)%三個滾降系數(shù)輪流顯示

for k=1:length(f)

if abs(f(k))>0.5*(1+alpha(n))/Ts

Xf(n,k)=0;

elseif abs(f(k))<0.5*(1-alpha(n))/Ts

Xf(n,k)=Ts;

else

Xf(n,k)=0.5*Ts*(1+cos(pi*Ts/(alpha(n)+eps)*(abs(f(k))-0.5*(1-alpha(n))/Ts)));

end

end

Xt(n,:)=sinc(t/Ts).*(cos(alpha(n)*pi*t/Ts))./(1-4*alpha(n)^2*t.^2/Ts^2+eps);%賦值給Xt的第n行

end

figure(1)

subplot(2,2,1)

plot(t,Xt);

axis([-10 10 -0.5 1.1]);

xlabel('t');

ylabel('升余弦滾降波形');

subplot(2,2,2)

plot(f,Xf);

axis([-2 2 0 1.5]);

xlabel('f/Ts');

ylabel('升余弦滾降波形');

代碼二

若基帶傳輸系統(tǒng)響應(yīng)是的升余弦滾降系統(tǒng),畫出在接收端的基帶數(shù)字信號波形及其眼圖:

// clear all;

close all;

Ts=1;%碼元周期

N_sample=17;%每個碼元抽樣點數(shù)

eye_num=8;

alpha=1;%滾降系數(shù)為1

N_data=1000;%碼元數(shù)

dt=Ts/N_sample;%抽樣時間間隔

t=-3*Ts:dt:3*Ts;%設(shè)置采樣

%產(chǎn)生雙極性數(shù)字信號

d=sign(randn(1,N_data));%randn隨機生成數(shù)字 sign函數(shù)進行一個判斷,判斷其正負

xt=sigexpand(d,N_sample);%對d進行擴張,每個間隔加入N_sample-1個零

%基帶系統(tǒng)沖擊響應(yīng)(升余弦)

ht=sinc(t/Ts).*(cos(alpha*pi*t/Ts))./(1-4*alpha^2*t.^2/Ts^2+eps);%公式P149,帶.*和./指各個元素對應(yīng)相乘或相除,sinc(t)=sin(pai*t)/pai*t

st=conv(xt,ht);%卷積函數(shù)

tt=-3*Ts:dt:(N_data+3)*N_sample*dt-dt;%設(shè)置采樣

%基帶數(shù)字信號波形

figure(1)

subplot(2,2,1);

plot(tt,st);

axis([0 20 -1.2 1.2]);%橫坐標范圍,縱坐標范圍

xlabel('t/Ts');

ylabel('基帶信號');

%畫眼圖

subplot(2,2,2);

ss=zeros(1,eye_num*N_sample);%建立零矩陣

ttt=0:dt:eye_num*N_sample*dt-dt;%采樣間隔

for k=3:50

ss=st(k*N_sample+1:(k+eye_num)*N_sample);

drawnow;%將還未處理完的圖像實時的顯示出來,實時看到圖像的每一步變化情況

plot(ttt,ss);

hold on;%新畫圖像之后不想覆蓋原圖像

end

xlabel('t/Ts');

ylabel('基帶信號眼圖')

定義函數(shù)代碼如下:

function[out]=sigexpand(d,M);

N=length(d);%基帶信號碼元長度

out=zeros(M,N);%矩陣M為采樣點 N為基帶信號碼元數(shù)量,建立M*N的零矩陣

out(1,:)=d;%將零矩陣第一行換成基帶信號中的8個碼元

out=reshape(out,1,M*N);% 1行 m*n 列

%B = reshape(A,m,n) 返回一個m*n的矩陣B, B中元素是按列從A中得到的。如果A中元素個數(shù)沒有m*n個, 則會引發(fā)錯誤。;

總結(jié)

以上是生活随笔為你收集整理的基带信号及其眼图MATLAB仿真实现,Matlab通信仿真——带限系统下的基带信号的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。