MATLAB标注legend的问题?求大神指点!!!!

MATLAB标注legend的问题?求大神指点!!!!,第1张

可以用句柄记录

h = zeros(4,1)

h(1) = semilogy ...

h(2) = semilogy ...

.

.

.

legend(h, {'理论值','未编码','(2,1,3)卷积码','卷积交织级联码','循环等差交织级联码'})

你这个是在写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函数

首先semilogy只是在画图的时候对纵坐标取10为底的对数,通常是因为纵坐标的变化范围比较大,才进行这样的处理;

其次如果想要了解semilogy更多功能,可以在命令窗口,输入help semilogy

3.最后我对于你的问题的理解是我以为是已知原来的一个点为(x1,y1)=(1,10),那么使用semilogy画图后,这个点的坐标(x1',y1')=(x1, log(y1))=(1,1).


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11865006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存