返回信息流最近在做MIMO的仿真 看了很多MATLAB程序 但是不知道仿真的横坐标是SNR还是Eb/No 没法保证自己仿真的正确性
查了很多资料都没搞清楚,我实在是太想知道了!!!!!!
对于下面这个程序框架 横坐标是SNR还是Eb/No???????????????
(不要受变量名字的影响)
a=randint(1,1000,[0 3]); %产生四进制符号信源
aa=pskmod(a,4) %QPSK调制
aaa=reshape(a,4,250); %变为四路
SNRindB=0:2:20;
for x=1:11
SNR(x)=10^log(SNRindB(x)/10);
sigma=1/sqrt(2*SNR(x)); %噪声方差定义(噪声功率)
noise=sigma*(randn(4,250)+j*randn(4,250));
H=(randn(4,4)+j*randn(4,4))/sqrt(2);
.......
SER(x)=errcount/1000,
end
semilogy(SNRindB,SER);
另外,如果要求横坐标是Eb/No,程序该怎么写?区别在哪?
这是一条镜像帖。来源:北邮人论坛 / communications / #9967同步于 2009/6/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Communications机器人发帖
横坐标是SNR还是Eb/No对QPSK调制的系统的BER仿真曲线有区别吗?
mtyylx
2009/6/7镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 mtyylx 的大作中提到: 】
: 最近在做MIMO的仿真 看了很多MATLAB程序 但是不知道仿真的横坐标是SNR还是Eb/No 没法保证自己仿真的正确性
: 查了很多资料都没搞清楚,我实在是太想知道了!!!!!!
: 对于下面这个程序框架 横坐标是SNR还是Eb/No???????????????
: ...................
snr与eb/n0有这么个关系
snr=[ log2(M)*a1*a2*Ts/(Tc*SF) ] * eb/n0
其中M代表调制阶数,比如用QPSK,那M就等于4
a1是crc的校验率=(L有用/(L有用+L校验))
a2是编码速率,比如用1/2的Turbo码,那a2=1/2
Ts是信道采样周期
Tc是码片的周期
SF是扩频因子
如果不考虑信道编码的影响,码片周期和采样周期相等,crc如果近似为1的话,那么
snr_dB=10*log2+eb/n0_dB=3+en/n0_dB
就是说,snr画出来的的图是eb/n0画出来的图平移3个dB即可。
你这个应该是eb/n0吧
你的这一句:
sigma=1/sqrt(2*SNR(x)); %噪声方差定义(噪声功率)
2就是那个log2(M)
如果你想写成snr的形式,那就不要2就行了。
ps:你这个变量名很误导啊,呵呵
这个关系不是万能的...
【 在 Cop663 的大作中提到: 】
: snr与eb/n0有这么个关系
: snr=[ log2(M)*a1*a2*Ts/(Tc*SF) ] * eb/n0
: 其中M代表调制阶数,比如用QPSK,那M就等于4
: ...................
这个是针对CDMA的。
其实Eb/N0和SNR之间的转换关系,只要搞清楚了物理意义还是比较好算的,不用非要找个公式来套。
【 在 smequi 的大作中提到: 】
: 能举个例子么?
: 那个关系好像是陶博的课上讲过的,不过他没说什么时候不能用:(