- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
awgn信道中bpsk调制系统ber仿真计算
序号(学号):
学生实验报告书
2014
年
4
月
27
日
实验一:AWGN 信道中BPSK 调制系统的 BER 仿真计算
一、 实验目的
掌握二相BPSK 调制的工作原理
2. 掌握利用MATLAB 进行误比特率测试BER 的方法
3. 掌握AWGN信道中BPSK调制系统的BER仿真计算方法
二.实验内容
利用仿真程序在MATLAB 环境下完成AWGN信道中BPSK调制系统的BER仿真计算,得到仿真结果,写出实验小结,完成实验报告。
三.实验仪器:
计算机
matlab软件
四、 实验原理
在数字领域进行的最多的仿真任务是进行调制解调器的误比特 率测试,在相同的条件下 进行比较的话,接收器的误比特率性能是一个十分重要的指标。误比特率的测试需要一个发送器、一个接收器和一条信道。首先需要产生一个长的随机比特序列作为发送器的输入,发送器将这些比特调制成某种形式的信号以便传送到仿真信道,我们在传输信道上加上一定的可调制噪声,这些噪声信号会变成接收器的输入,接收器解调信号然后恢复比特序列,最后比较接收到的比特和传送的比特并计算错误。误比特率性能常能描述成二维图像。纵坐标是归一化的信噪比,即每个比特的能量除以噪声的单边功率谱密度,单位为分贝。横坐标 为误比特率,没有量纲。
五.实验步骤
① 运行发生器:通过发送器将伪随机序列变成数字化的调制信号。 ② 设定信噪比:假定 SNR 为 m dB,则 Eb/N0=10,用 MATLAB 假设 SNR 单位为分贝。 ③ 确定Eb ④ 计算N0 ⑤ 计算噪声的方差σ n ⑥ 产生噪声:因为噪声具有零均值,所以其功率和方差相等。我们产 生一个和信号长度相同的噪声向量,且该向量方差为σ n 。 ⑦ 加上噪声,运行接收器 ⑧ 确定时间延迟 ⑨ 产生误差向量 ⑩ 统计错误比特:误差向量“err”中的每一个非零元素对应着一个 错误的比特。 最后计算误比特率 BER:每运行一次误比特率仿真,就需要传输和 接收固定数量的比特,然后确定接收到的比特中有多少错误的。使用 MATLAB 计算BER: ber=te/length(tx)。
实验结果及分析
MATLAB程序:
%Simulation of bpskAWGN
Max_SNR=10;
N_trials=1000;
N=200;
Eb=1;
ber_m=0;
for trial=1:1:N_trials
trial
msg=round(rand(1,N)); % 1, 0 sequence
s=1-msg.*2; %0--1, 1--1
n=randn(1,N)+j.*randn(1,N); %generate guass white noise
ber_v=[];
for snr_dB=1:2:Max_SNR
snr=10.^(snr_dB./10); %snr(db)--snr(decimal)
N0=Eb./snr;
sgma=sqrt(N0./2);
y=sqrt(Eb).*s+sgma.*n;
y1=sign(real(y));
y2=(1-y1)./2; % 1, 0 sequence
error=sum(abs( msg- y2)); %error bits
ber_snr=error./N; %ber
ber_v=[ber_v,ber_snr];
end %for snr
ber_m=ber_m+ber_v;
end
ber=ber_m./N_trials;
ber_theory=[];
for snr_db=1:2:Max_SNR
snr=10.^(snr_db./10);
snr_1=Qfunct(sqrt(2*snr));
ber_theory=[ber_theory,snr_1];
end
i=1:2:Max_SNR;
semilogy(i,ber,-r,i,ber_theory,*b);
xlabel(E_b/N_0 (dB))
ylabel(BER)
legend(Monte Carlo, Theoretic)
程序分析:
做1000次试验,每次试验取200个抽样点,求出每次试验的误比特率,然后对1
文档评论(0)