資源簡介
用matlab寫的關于BPSK QPSK的通信仿真程序,帶詳細的文檔說明,帶詳細的代碼注釋,希望各位有識之士下載交流

代碼片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?Simulation?program?to?realize?BPSK??system
%
%?pro?by?pengsuyu????stu.id=1015231037
%?參考文獻:<>?yamamura?&&?harada
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
close?all;
clear?all;
clc;
%%%%%%%%%開始的參數設置%%%%%%%%%%%%%%%%
sr=256000.0;?%?碼率
ml=1;????????%?調制電平數
br=sr.*ml;???%?比特率,由于是BPSK,所以在這里比特率等于碼率
nd?=?1000;???%?碼數,即仿真一次的符號數目,考慮到數據量大浪費時間,數據量小又不精確,所以選擇2000
snr=3;?????%?信噪比?單位DB。按照誤差曲線,測試時不要太大,否則,不易看到誤碼。要想容易看到誤碼,就增加碼數,比如去nd=10000,或者增加仿真次數
IPOINT=8;????%?上采樣速率,按照要求取8
irfn=21;?????%?濾波器抽頭數帶一定的時域均衡效果。???????
alfs=0.1;????%?滾降因子
%%%%%%%%%%%滾降濾波器的參數設置并產生該濾波器的時域沖擊響應序列%%%%%%%%%%%%%%%
[xh]?=?hrollfcoef(irfnIPOINTsralfs1);???%其他人寫的滾降濾波器函數-這個濾波器函數在工程目錄下供調用,該函數最后一個參數設置是發(fā)送濾波,還是接收濾波。
[xh2]?=?hrollfcoef(irfnIPOINTsralfs0);??%最后一個參數是1,則是發(fā)送濾波,0則是接收濾波
????
%%%%%%%%%%%計算部分%%%%%%%%%%%%%%
nloop=100;????%?仿真次數
noe?=?0;????%?發(fā)生錯誤的比特數
nod?=?0;????%?一共發(fā)送的比特數
for?ii=1:nloop????
%%%%%%%%%%%產生數據?%%%%%%%%%%%%%%%%
data=rand(1nd)>0.5;??%隨機產生0-1的比特數據,并記錄在data中
????data1=data.*(-2)+1;??????%將0-1的比特轉換成-1?和?1的電平??其中,0對應1??1對應-1
data2=?oversamp(?data1?nd??IPOINT)?;??????%其他人寫的上采樣模塊,調用起來很方便???????????????????????????????????????????
???
data3?=?conv(data2xh);??%通過卷積實現(xiàn)滾降低通濾波
%%%%%%%%%%%%%加高斯噪聲%%%%%%%%%%%%
????data4=awgn(data3snr);??????%用AWGN函數制作高斯噪聲。
data5=conv(data4xh2);??????%接收卷積濾波
sampl=irfn*IPOINT+1;????????%下采樣
data6?=?data5(sampl:IPOINT:IPOINT*nd+sampl-1);????
????
%%%%%%%%%%%%解調%%%%%%%%%%%%%%
????demodata=data6?0;
%%%%%%%%%%%誤碼率計算%%%%%%%%%
????noe2=sum(abs(data-demodata));??%?計算不一樣的碼的個數,即誤碼個數
nod2=length(data);??????????????%計算發(fā)送的碼的個數?
noe=noe+noe2;??????????????????%若仿真多次,則累加起來
nod=nod+nod2;???????????????????%若仿真多次,則累加起來
%? fprintf(‘%d\t%e\n‘iinoe2/nod2);???%一次仿真中的誤碼率。
end???
%%%%%%%%%%%輸出誤碼率%%%%%%%%%%%%%%%%%%
ber?=?noe/nod;
fprintf(‘仿真總次數:%d\nSNR:%d?dB\n誤碼數:%d\n發(fā)送碼的總個數:%d\n誤碼率:%e\n‘iisnrnoenodnoe/nod);
%%%%%%%%%%%%畫出圖像%一共8幅圖%%%%%%%%%%%%
????figure(1)???????????????%圖1是調制前后的序列圖
????subplot(211);
????stem(data‘.‘);
????subplot(212);
????stem(data1‘.‘);?
????title(‘調制前后序列圖‘);
????figure(2);??????????????%圖2是調制后的信號的星座圖
????ss=data1+j*eps;?
????plot(ss‘black*‘);?
????grid?on;?
????axis([-2?2?-2?2]);
????xlabel(‘I-channel‘);?
????ylabel(‘Q-channel‘);?
????legend(‘Signal?under?White?Gaussian?Noise?channel‘‘Signal?Constellation‘);??
????title(‘調制后信號星座圖‘);
????figure(3);
????stem(data2‘.‘);????????%圖3是上采樣后的序列
????figure(4);
????plot(data3);????????%圖4是滾降濾波之后的波形趨于平滑
????eyediagram(data32*IPOINT);????%圖5是眼圖1--高斯噪聲之前
????title(‘高斯噪聲之前‘);
????eyediagram(data416);????%圖6是眼圖2--高斯噪聲之后
????title(‘高斯噪聲之后‘);
????figure(7);
????plot(data5);????????%圖7是匹配濾波之后的波形
????figure(8);
????ss1=data6+j*eps;?
????plot(ss1‘black*‘);?
????grid?on;?
????xlabel(‘I-channel‘);?
????ylabel(‘Q-channel‘);?
????legend(‘Signal?under?White?Gaussian?Noise?channel‘‘Signal?Constellation‘);??
????title(‘濾波抽取信號星座圖‘);
%%%%%%%%
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????562??2001-11-30?07:56??qpsk\compconv.m
?????文件????????684??2001-11-30?07:56??qpsk\compoversamp.m
?????文件???????1652??2001-11-27?01:37??qpsk\hrollfcoef.m
?????文件???????4548??2013-06-10?13:07??qpsk\qpsk.asv
?????文件???????3970??2013-06-11?10:19??qpsk\qpsk.m
?????文件????????721??2013-06-10?11:20??qpsk\qpskdemod.m
?????文件????????913??2013-06-10?11:19??qpsk\qpskmod.m
?????文件???????4684??2001-11-30?06:31??qpsk\qpsk_fading.m
?????文件????????131??2013-06-11?10:17??版本2改進.txt
?????文件?????765952??2013-06-11?10:15??仿真圖說明.doc
?????文件?????311808??2013-06-11?10:11??結果分析.doc
?????文件???????3598??2013-06-10?13:02??bpsk\bpsk.asv
?????文件???????3636??2013-06-11?10:05??bpsk\bpsk.m
?????文件???????1652??2001-11-27?01:37??bpsk\hrollfcoef.m
?????文件????????497??2001-11-27?09:39??bpsk\oversamp.m
?????目錄??????????0??2013-06-10?13:28??qpsk
?????目錄??????????0??2013-06-10?13:25??bpsk
-----------?---------??----------?-----??----
??????????????1105008????????????????????17
評論
共有 條評論