返回信息流在静态信道下仿真,也就是说在SNR从0到20dB的全部过程中,信道矩阵都是不变的,
那么在这种条件下仿真误码率-信噪比曲线,由于每次生成的信道矩阵都是随机的,有好有坏,
这样的结果就导致虽然每次仿真点数很多,比如100万个点(为了保证误码个数足够多)
但是不同次仿真下BER曲线的位置上下飘动很厉害,
怎么解决呢?我现在能想到的办法就是做1000次仿真,然后算数平均所有次下的BER,可以吧?
不过这样够费时间的,有没有其他方法?
Thanks~~~
这是一条镜像帖。来源:北邮人论坛 / communications / #16407同步于 2011/4/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Communications机器人发帖
静态瑞利衰落信道仿真如何获得可靠的BER曲线?
mtyylx
2011/4/27镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
我没找到什么错误啊,结构很简单,就是2x2 MIMO 2PSK ML检测
然后每次仿真开始先生成一个信道矩阵H,然后接收端乘以H伪逆消除H后再ML检测
但是每次仿真H是2x2的复高斯零均值单位方差矩阵,时好时坏,导致BER不稳定
这有什么统计办法来均衡么?
【 在 dynamic 的大作中提到: 】
: 如果不同次的BER曲线变化快有可能是平台有bug
: --
先谢谢了!
不过我查了一下matlab随机数生成器种子的问题
我还是不太明白,我这么做的话相当于每次都重置种子,然后得到的信道矩阵还是一样的
这和我直接把矩阵存起来每次调用有什么区别呢
这相当于还是没有体现信道矩阵的随机性啊???
而且由于每个种子的重置以后调用同样次数得到的结果依然是相同的,导致每次仿真的噪声都一样了
比如说
s = RandStream('mcg16807', 'Seed',0);
RandStream.setDefaultStream(s);
H = (randn(2, 2) + 1i*randn(2, 2))/sqrt(2);
后面有
Noise = randn什么的也就都每次仿真都一样了
这怎么办呢?
【 在 limingh 的大作中提到: 】
: 每一次仿真时,随机信道矩阵都使用相同的种子生成
: --
【 在 mtyylx 的大作中提到: 】
: 先谢谢了!
: 不过我查了一下matlab随机数生成器种子的问题
: 我还是不太明白,我这么做的话相当于每次都重置种子,然后得到的信道矩阵还是一样的
: ...................
我被你搞糊涂了。如果你要求0-20dB信道都是一样的,那自然是把使用相同的种子产生一个同样的信道。。
而你说的信道矩阵的随机性,应该是体现在每个符号上
你可以干脆把生成的信道存起来,或者后面再重新设一下随机种子