xwl2512999 发表于 2007-5-18 20:14

大家帮忙找下错误!

此乃《MATLAB通信系统仿真及应用实例详解》(邓华编)P.122
(BFSK在高斯白噪声信道中的传输性能)


脚本程序:

x=0:15;
y=x;
FrequencySeparation=24000;
BitRate=10000;
SimulationTime=10;
SamplesPerSymbol=2;
for i=1;length(x)
    SNR=x(i);
    sim('project5_1');
    y(i)=mean(BitErrorRate);
end
hold off;
semilogy(x,y);

模块见附件,出不来结果,大家帮忙看看呢,谢谢啊。

[ 本帖最后由 cdwxg 于 2007-5-18 21:17 编辑 ]

xwl2512999 发表于 2007-5-19 10:11

怎么没人回应啊???帮帮忙啊

spare 发表于 2007-5-19 10:53

回复 #2 xwl2512999 的帖子

循环语句错误,应该用:,你用的是;

xwl2512999 发表于 2007-5-19 21:23

回复 #3 spare 的帖子

谢谢!!!确实疏忽了,但图还是有点问题,显示为一条直线。不知道什么原因,把坐标参数改了还是不行。

cdwxg 发表于 2007-5-19 21:28

原帖由 xwl2512999 于 2007-5-19 21:23 发表 http://www.chinavib.com/forum/images/common/back.gif
谢谢!!!确实疏忽了,但图还是有点问题,显示为一条直线。不知道什么原因,把坐标参数改了还是不行。
那就确实是一条直线了。与坐标系数没关系。
可能是其他方面的问题。

cdwxg 发表于 2007-5-19 21:37

是不是你的mean(BitErrorRate);其实计算的时候是你运行完后整个时刻BitErrorRate的均值
这样当然只是一个值,而你想达到的目的应该是16个?每次计算一次?但那样的话你是离散计算,需要设置时间分开吧?比如1秒计算一次?

xwl2512999 发表于 2007-5-19 21:51

有道理!!!
那怎么设置时间呢???

cdwxg 发表于 2007-5-19 22:52

这个就不知道了,而且我提的方向也不知道对不。
取时间不难,zero-order就可以,但难在你要取了后要算。
或者可以另外角度来考虑。
看下大家意见吧。
离散的好像还好些。。。
但是你这两句SimulationTime=10;
SamplesPerSymbol=2;没有实现该功能?SamplesPerSymbol=2表示什么?

[ 本帖最后由 cdwxg 于 2007-5-19 22:54 编辑 ]

xwl2512999 发表于 2007-5-20 11:22

SamplesPerSymbol=2表示每个信号仅抽样两次。

cdwxg 发表于 2007-5-20 13:03

不知道对不哈,你可以考虑下.
如果仿真时间是1000个采样点,每个采样时刻是ts
那么
for k=1:1:1000
time(k)=k*ts
那么如果你要取到第100个采样时刻的时候的方法是
if k==100
   这里是你在100个采样时刻时候采取的行动,如加扰动,如mean
end
你这个可以设置20个或者10个采样时刻计算一次,你觉得呢?

xwl2512999 发表于 2007-5-20 14:52

自己试了一下,还是解决不了问题。正确的图应该是由16个离散的点描绘出的一条向下抛物线。不知道问题出在哪里。                                           【是不是你的mean(BitErrorRate);其实计算的时候是你运行完后整个时刻BitErrorRate的均值
这样当然只是一个值,而你想达到的目的应该是16个?每次计算一次?但那样的话你是离散计算,需要设置时间分开吧?】突破口应该就是这段话。

xwl2512999 发表于 2007-5-20 23:50

求救!!!

spare 发表于 2007-5-21 15:08

回复 #12 xwl2512999 的帖子

当中的一个模块设置错误,就是那个AWGN,里面的SNR是一个变量,但是你一直设置为15,那么程序中的SNR=x(i)就没有什么意义了,所以这个地方应该设置为变量SNR,出来的是一个抛物线,你看看对吗

xwl2512999 发表于 2007-5-21 19:08

对了!!!谢谢!!!
果然问题就出在这!唉,郁闷几天了。
页: [1]
查看完整版本: 大家帮忙找下错误!