【matlab编程代做】8QAM通过AWGNchannel后的误码率

% ***********SIMULATION OF 8 QAM through a AWGN channel************ %
% Writer: Xiaochen WANG
%******************************************************************
clc;
clear;
close all;
%% parameter
N=1000;
M=8;
j=1i;
sym8QAM=[2 2+2j 2-2j 2j -2j -2+2j -2-2j -2];
F = 1e2;
Fs = 2e3;
%% send bit
李沂明
bitstream=binornd(1,0.5,log2(M),N);
symbolstream=zeros(1,N);
%% 8QAM mapper
电化学阻抗for n1=1:N
pack=bitstream(:,n1).';
if pack==[0 0 0]
symbolstream(n1)=2;
elseif pack==[0 0 1]电刷镀溶液
symbolstream(n1)=2+2j;
elseif pack==[0 1 0]
symbolstream(n1)=2-2j;
elseif pack==[0 1 1]
symbolstream(n1)=2j;
elseif pack==[1 0 0]
symbolstream(n1)=-2j;
elseif pack==[1 0 1]立柱桩
symbolstream(n1)=-2+2j;
elseif pack==[1 1 0]
symbolstream(n1)=-2-2j;
else symbolstream(n1)=-2;
end
end
scatterplot(symbolstream);
%% carrier
sampledots=round(Fs/F);
I=cos(2*pi*F/Fs*[1:N*(sampledots)]);
Q=sin(2*pi*F/Fs*[1:N*(sampledots)]);
sig = sqrt(2)*(I+1i*Q);
symbolstream4=repmat(symbolstream,sampledots,1); symbolstream4=reshape(symbolstream4,1,numel(symbolstream4));
send=symbolstream4.*sig;
%% PSD
figure;
plot(10*log10(abs(fftshift(fft(send,1024)))));
%% AWGN RECV
nn=1;
for snr=1:.01:10
recv = awgn(send,snr);
recvsym = recv.*(I-1i*Q);
if snr==9
scatterplot(recvsym);
end
recvsymdp=recvsym(1:sampledots:end);
rbit=zeros(log2(M),N);
for n2=1:N
dis=abs(recvsymdp(n2)-sym8QAM);
mindis=max(dis);
for k=0:7
if dis(k+1)<mindis
mindis=dis(k+1);
mindisk=k;
end政治副中心
end
rbit(1,n2)=(mindisk/4>=1);
rbit(2,n2)=(mod(mindisk,4)/2>=1);
rbit(3,n2)=mod(mindisk,2);
end
err1=xor(rbit,bitstream);
err=sum(sum(err1));
errs(nn)=snr;
errp(nn)=err/N;
nn=nn+1;
end
figure;
fmcm
plot(errs,log10(errp))

本文发布于:2024-09-22 06:46:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/294577.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:阻抗   电刷   政治
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议