返回   MATLAB中国论坛|MATLAB爱好者之家—不仅仅是MATLAB! > 特色讨论区:工程数学软件-不仅仅是MATLAB! > MATLAB论坛


MATLAB论坛 一切MATLAB相关问题在此讨论,发帖时必须选择相应主题前缀:MATLAB基础,MATLAB混合编程,MATLAB数学问题,MATLAB工具箱,MATLAB图像处理,MATLAB GUI,MATLAB毕业设计,Simulink相关等。



回复
 
LinkBack 主题工具 显示模式
旧 2019-04-09, 08:26 PM   #1
初级会员
 
注册日期: 2019-04-09
帖子: 2
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 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 代码
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 11:33 AM


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

SEO by vBSEO ©2009, Crawlability, Inc.