📄 qam.m
字号:
%调制qammod(a,16); 解调用qamdemod 画星座图modmap('qam',4)
clear; %设置参数
M = 16;
fd=200;
fc=4*fd;
fs=4*fc;
rolloff = 0.5;
nsamp = 4;
num=1000; %符号个数
% ******* -----产生QAM基带信号 -----*******************************
x = randint(1,num,M);
y = qammod(x,M);
subplot(2,2,1);
plot(real(y),imag(y),'*'),title('基带星座图');
i=real(y);
q=imag(y);
%*************************************************************
% ****************----- 成形滤波 -----*****************************
filtorder = 33; % 滤波器长
delay = (filtorder-1)/(nsamp*2); % 群延时
rrcfilter = rcosine(fd,nsamp*fd,'fir/sqrt',rolloff,delay);
yi=conv(rrcfilter,upsample(i,nsamp));
yq=conv(rrcfilter,upsample(q,nsamp));
%************************************************************
% *****************----- 加载波 -----************************
yii=interp(yi,fs/fc);%内插
yqq=interp(yq,fs/fc);
nn=1:length(yii);
yic=yii.*cos(2*pi*nn*fc/fs);% 加载波
yqc=yqq.*sin(2*pi*nn*fc/fs);% 加载波
iq = yic+yqc;
%******************-----进入信道-----******************************
iq = awgn(iq,8,'measured'); %信道中 载波噪声
%*********************************************************
%********************----- 去载波 ------************************
ii=iq.*cos(2*pi*nn*fc/fs);
qq=iq.*sin(2*pi*nn*fc/fs);
b=fir1(32,0.2);
yif=filter(b,1,ii);
yqf=filter(b,1,qq);
yiw=2.*downsample(yif,fs/fc,0);
yqw=2.*downsample(yqf,fs/fc,0);
subplot(2,2,3);
plot(1:500,yiw(1+4:500+4),'r',1:500,yi(1:500),'g'),title('红载波后,绿载波前');
%***********************************************************
% ******************----- 匹配 -----***********************
icc=conv(rrcfilter,yiw);
qcc=conv(rrcfilter,yqw);
icr=downsample(icc,nsamp,0);
qcr=downsample(qcc,nsamp,0);
ic=icr(2+delay*2:length(icr)-delay*2+1); %去掉冗余
qc=qcr(2+delay*2:length(icr)-delay*2+1);
%********************************************************
%*********************画出重构星座图
subplot(2,2,2);
plot(ic,qc,'*'),title('重构星座图');
%************************ 判 决******************************
iq2=ic+j.*qc;
z = qamdemod(iq2,M);
err=abs(z-x); %与原信号比较
subplot(2,2,4);
plot(err);
numerr=(length(find(err>0)))/num; %画出错误符号
numerr
%*********************** 结束 ********************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -