欢迎来到天天文库
浏览记录
ID:48856780
大小:392.00 KB
页数:22页
时间:2020-02-02
《AWGN 信道中BPSK 调制系统地BER仿真计算.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实用文档序号(学号):学生实验报告书2014年4月27日实用文档实验一:AWGN信道中BPSK调制系统的BER仿真计算一、实验目的1.掌握二相BPSK调制的工作原理2.掌握利用MATLAB进行误比特率测试BER的方法3.掌握AWGN信道中BPSK调制系统的BER仿真计算方法二.实验内容利用仿真程序在MATLAB环境下完成AWGN信道中BPSK调制系统的BER仿真计算,得到仿真结果,写出实验小结,完成实验报告。三.实验仪器:计算机matlab软件四、实验原理在数字领域进行的最多的仿真任务是进行调制解调器的误比特率测试,在相同的条件下实用文档进行比较的话,接收器的误比特率性能是一个十分重
2、要的指标。误比特率的测试需要一个发送器、一个接收器和一条信道。首先需要产生一个长的随机比特序列作为发送器的输入,发送器将这些比特调制成某种形式的信号以便传送到仿真信道,我们在传输信道上加上一定的可调制噪声,这些噪声信号会变成接收器的输入,接收器解调信号然后恢复比特序列,最后比较接收到的比特和传送的比特并计算错误。误比特率性能常能描述成二维图像。纵坐标是归一化的信噪比,即每个比特的能量除以噪声的单边功率谱密度,单位为分贝。横坐标为误比特率,没有量纲。五.实验步骤①运行发生器:通过发送器将伪随机序列变成数字化的调制信号。②设定信噪比:假定SNR为mdB,则Eb/N0=10,用MATLAB
3、假设SNR单位为分贝。③确定Eb④计算N0⑤计算噪声的方差σn⑥产生噪声:因为噪声具有零均值,所以其功率和方差相等。我们产生一个和信号长度相同的噪声向量,且该向量方差为σn。⑦加上噪声,运行接收器⑧确定时间延迟⑨产生误差向量⑩统计错误比特:误差向量“err”中的每一个非零元素对应着一个错误的比特。最后计算误比特率BER:每运行一次误比特率仿真,就需要传输和接收固定数量的比特,然后确定接收到的比特中有多少错误的。使用MATLAB计算BER:ber=te/length(tx)。六.实验结果及分析MATLAB程序:%SimulationofbpskAWGNMax_SNR=10;N_tria
4、ls=1000;N=200;Eb=1;ber_m=0;fortrial=1:1:N_trialstrialmsg=round(rand(1,N));%1,0sequences=1-msg.*2;%0-->1,1-->1n=randn(1,N)+j.*randn(1,N);%generateguasswhitenoise实用文档ber_v=[];forsnr_dB=1:2:Max_SNRsnr=10.^(snr_dB./10);%snr(db)-->snr(decimal)N0=Eb./snr;sgma=sqrt(N0./2);y=sqrt(Eb).*s+sgma.*n;y1=sign
5、(real(y));y2=(1-y1)./2;%1,0sequenceerror=sum(abs(msg-y2));%errorbitsber_snr=error./N;%berber_v=[ber_v,ber_snr];end%forsnrber_m=ber_m+ber_v;endber=ber_m./N_trials;ber_theory=[];forsnr_db=1:2:Max_SNRsnr=10.^(snr_db./10);snr_1=Qfunct(sqrt(2*snr));ber_theory=[ber_theory,snr_1];endi=1:2:Max_SNR;semi
6、logy(i,ber,'-r',i,ber_theory,'*b');xlabel('E_b/N_0(dB)')ylabel('BER')legend('MonteCarlo','Theoretic')程序分析:做1000次试验,每次试验取200个抽样点,求出每次试验的误比特率,然后对1000次试验的误比特率取平均值,即得仿真误比特率ber,然后将此误比特率与理论值ber_theory进行比较。程序运行结果如图3所示。实用文档图1bpskAWGN误比特率仿真结果与理论值比较结果分析:由图3可知,仿真结果与理论值基本相符,只是在信噪比较大时,仿真误码率与理论值存在误差,这是因为在高信噪
7、比情况下,误比特率会呈下降趋势,若要仿真实际的误比特率,就需要进行更多次试验,而且每次试验取的抽样点数也应该增加。%SimulationofqpskAWGNN_trials=1000;N_number=100;N_snr=10;Es=1;BER_m=0;SER_m=0;fortrials=1:N_trials;实用文档trialss10=round(rand(1,N_number));S=(s10*2-1)./sqrt(2);S1=S(1:2:N_numb
此文档下载收益归作者所有