Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2019-04-09, 20:26   #1
朋没友
初级会员
 
注册日期: 2019-04-09
帖子: 2
声望力: 0
朋没友 正向着好的方向发展
不错 调用function出错,求指导

function x=mysource(N,P_0)%产生长度为N的1,0序列,其中0发生的概率为P_0
x=rand(1,N)>P_0;
%然后实现一个加性高斯白噪声信道,在每个比特样值上加入方差为2的高斯独立噪声样值.
function y=mychannel(x,sigma2)
%x为输入信道的信号序列,sigma2为信道中高斯噪声样值的方差
%y是输出信道的信号序列
y=x+sqrt(sigma2).*randn(size(x))
%在接收机中对信道传输来的混杂了噪声的样值进行判决解码,即
function z=myreceiver_No1(y,panjuemenxian)
%y为接收机接收的序列比特样值
%panjuemenxian为设定的判决门限
%z为判决输出
z=(y>panjuemenxian);%判决输出
%下面就利用我们所设计的信源,信道和接收机函数来进行虚拟通信实验,得出误码率并与理论公式的计算结果进行比较
clear;
%产生10万比特1,0等概的幅度为A=1的二进制序列
N=100000;%当仿真1000bit就统计误码率时,可将改为M=1000
P_0=0.5;A=1;
A_divby_sigma_dB=-5:0.5:15; %A/sigma的分贝值
A_divby_sigma_dB=10.^(A_divby_sigma_dB/20);%由于是电压比,所以除以20
sigma2=(A./divby_sigma).^2; %计算出相应的噪声方差
for k=1:length(A_divby_sigma_dB)%对各种A/sigma值进行实验
x=mysource(N,P_0); %信源信号产生
y=mychannel(x,sigma2(k)); %信号通过信道
z=myreceiver_No1(y,A/2);%最佳门限判决接收机
Pe(k)=sum(abs(x-z))/N; %统计实验得到的误比特率
Pe_lilunjisuan(x)=0.5*erfc(A/(2+sqrt(2*sigma2(k))));%理论计算值
end
semilogy(A_divby_sigma_dB,Pe,'o', A_divby_sigma_dB,Pe_lilunjisuan);
xlabel('A/\sigma_n dB');
ylabel('bit error rate');
上传的图像
文件类型: jpg 捕获.jpg (18.3 KB, 2 次查看)
朋没友 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 21:12


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.