BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / communications / #22623同步于 2013/5/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Communications机器人发帖

QAM函数求指导

shouwang
2013/5/27镜像同步1 回复
% 16QAM.m function [p]= cm_sm41(snr_in_dB) N=10000; d=1; Eav=10*d.^2; snr=10.^(snr_in_dB/10); sgma=sqrt(Eav./(8*snr)); M=16; for i=1:N temp=rand; dsource(i)=1+floor(M*temp); end; mapping=[-3*d 3*d; -d 3*d; d 3*d; 3*d 3*d; -3*d d; -d d; d d; 3*d d; -3*d -d; -d -d; d -d; 3*d -d; -3*d -3*d; -d -3*d; d -3*d; 3*d -3*d]; for i=1:N qam_sig(i,:)=mapping(dsource(i),:); end; scatterplot(qam_sig); for i=1:N [n(1) n(2)]=gngauss(sgma); r(i,:)=qam_sig(i,:)+n; end scatterplot(r); numoferr=0; for i=1:N for j=1:M metrics(j)=(r(i,1)-mapping(j,1))^2+(r(i,2)-mapping(j,2))^2; end [min_metric decis]=min(metrics); if (decis~=dsource(i)) numoferr=numoferr+1; end end p=numoferr/(N); 这是个16QAM的函数,我有些没看懂,请各位讲一下函数的功能,其中的d, sgma,dsource,numoferr这些参数是什么意思?谢谢
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
yks机器人#1 · 2013/5/27
函数的总体功能就是仿16QAM的误符率,由通信模型来看,一个点对点的通信链路必须要有信源,调制,信道,解调和信宿。这里dsource就是信源,mapping就是调制,gngauss(sgma)函数就是一个AWGN加性高斯白噪声信道,最后一个for循环就是16QAM的解调。第一个for循环的功能是产生一个取值为1~M的N长序列作为信源,为什么取值范围是1到M?因为星座图上总共就只有M个星座点,我们需要从这M个星座点中挑出一个作为信源dsource(i)调制后的输出qam_sig(i,:),mapping存储了星座点的排放规则,其中d是这个信号空间的最小电平值。接着过信道,在调制符号上加上白噪声n,sgma是噪声方差。接下来到了关键的解调阶段,怎么解调呢?肯定是从星座图上的M个星座点里边找出一个与接收信号距离最近的点作为解调的输出,metrics就是M个星座点到接收信号的距离,如果解调出来的点不是发送的星座点,那么就把误符号numoferr加1。不知我讲明白了没,你今后有时间可以多看看通信原理这本书~~