matlab仿真实验,求大神帮忙 30

•对二进制正交信号、反极性信号和开关信号的通信系统进行MonteCarlo仿真。这三种信源的信号能量都是E=1,信道为加性高斯白噪声信道,信噪比设为0到15d... •对二进制正交信号、反极性信号和开关信号的通信系统进行Monte Carlo仿真。这三种信源的信号能量都是E=1,信道为加性高斯白噪声信道,信噪比设为0到15dB,发射端传输10000个比特。比较这三种通信系统的误码率。
这是二进制正交信号
function [p]=smldPe54(snr_in_dB)
E=1;
SNR=exp(snr_in_dB*log(10)/10);
sgma=sqrt(E/(2*SNR));
N=10000;
for i=1:N
temp=rand;
if(temp<0.5)
dsource(i)=0;
else
dsource(i)=1;
end
end;
numoferr=0;
for i=1:N
if(dsource(i)==0)
r0=E+gngauss(sgma);
r1=gngauss(sgma);
else
r0=gngauss(sgma);
r1=E+gngauss(sgma);
end;
if(r0>r1)
decis=0;
else
decis=1;
end;
if(decis~=dsource(i))
numoferr=numoferr+1;
end;
end;
p=numoferr/N;
它说
我是个菜鸟,不知道这是什么问题还有
sgma=sqrt(E/(2*SNR));
sgma=E/sqrt(2*SNR);这两个我也不知道用哪个才是正确的
SNR不是等于E/(2*sgma^2)嘛,
这个又是怎么来的 SNR=exp(snr_in_dB*log(10)/10);
展开
 我来答
懒咩丸子A梦
2014-03-26
知道答主
回答量:8
采纳率:0%
帮助的人:3.7万
展开全部
你这个是在写function [p]=smldPe54(snr_in_dB),你要运行仿真,需要再写一个M文件,
SNRindB1=0:1:15; %信噪比取值向量,dB为单位
SNRindB2=0:0.1:15;
%******** 对给定信噪比的通信系统估计误码率 *********
for i=1:length(SNRindB1),
smld_err_prb(i)=smldPe54(SNRindB1(i)); %仿真误码率
echo off;
end;
echo on;
%******** 对于给定信噪比的通信系统,计算的理论值******
for i=1:length(SNRindB2),
SNR=exp(SNRindB2(i)*log(10)/10); %计算信噪比
theo_err_prb(i)=Qfunct(sqrt(SNR)); %计算误码率的理论值
echo off;
end;
%信噪比与误码率的关系曲线图:估计值和理论值的对比图
echo on;
semilogy(SNRindB1,smld_err_prb,'*');
hold on
semilogy(SNRindB2,theo_err_prb,'-');
axis([0 15 0.00001 1])
xlabel('信噪比snr')
ylabel('误码率Pe')
legend('理论值','估计值')
fprintf('SNR= %d ,System Error Rate = %d\n',SNRindB1,smld_err_prb);
这个M文件运行的时候需要用到你上面写的这部分,运行的结果就是蒙特卡洛仿真误码率和理论值的对比图。另外,你还需要写Q函数的定义,gnguass函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
VSH艾羽
2025-09-30 广告
上海艾羽信息科技有限公司是一家以CAE软件销售、技术咨询及服务,仿真咨询及规划布局为一体的高科技公司。作为ANSYS的合作伙伴,艾羽致力于将ANSYS推出的产品,通过业界性能颇佳、丰富的工程仿真软件产品组合帮助客户解决复杂的仿真难题。力求与... 点击进入详情页
本回答由VSH艾羽提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式