一、简介


二、源代码
M=16;
k=log2(M);
n=100000; %比特序列长度
samp=1; %过采样率
x=randint(n,1); %生成随机二进制比特流
subplot(211);
stem(x(1:50),'filled'); %画出相应的二进制比特流信号 title('二进制随机比特流');
xlabel('二进制比特序列');ylabel('信号幅度');
x4=reshape(x,k,length(x)/k); %将原始的二进制比特序列每四个一组分组,并排列成k行length(x)/k列的矩阵
xsym=bi2de(x4.','left-msb'); %将矩阵转化为相应的16进制信号序列 figure;
subplot(212);
stem(xsym(1:50)); %画出相应的16进制信号序列 title('16进制随机信号');
xlabel('16进制信号序列');ylabel('信号幅度');
y=qammod(xsym,M); %用16QAM调制器对信号进行调制
scatterplot(y); %画出16QAM信号的星座图
title('发射信号星座图');
text(real(y)+0.1,imag(y),dec2bin(xsym));
axis([-5 5 -5 5]);
EbNo=10;
snr=EbNo+10*log10(k)-10*log10(samp); %信噪比
yn=awgn(y,snr,'measured'); %加入高斯白噪声
h=scatterplot(yn,samp,0,'b.'); %经过信道后接收到的含白噪声的信号星座图
hold on;
scatterplot(y,1,0,'r+',h); %加入不含白噪声的信号星座图
title('接收信号星座图');
legend('含噪声接收信号','不含噪声信号');
axis([-5 5 -5 5]);
hold on;
yd=qamdemod(yn,M); %此时解调出来的是16进制信号
figure;- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
三、运行结果



16QAM调制解调仿真
2725

被折叠的 条评论
为什么被折叠?



