资源简介
这是在老师指导下自己编写的一个64QAM的matlab调试仿真程序,包括序列的产生,电平转换与调制三部分,其中省略了编码的一部分,代码附有详细的注释,可供新手同学一起学习,大神请忽略!!!
代码片段和文件信息
clc;
clear;
N=60; %信号点数,因为64QAM每一组有6位,故该值取6的倍数较好
M=64; %64QAM
fc=1; %正交载波频率该值越大,则每个电平符号周期内的载波周期越多
bitStream=randi([01]1N); %0、1随机序列,含有直流分量
bitStreamC=bitStream;
for value=1:N %1-1随机序列,不含直流分量
if bitStreamC(value)==0
bitStreamC(value)=-1;
end
end
% bitStream=zeros(160); %0、1交替序列
% for value=1:2:60
% bitStream(value) = 1;
% end
% bitStream=ones(160); %矩形序列
%=======分组与电平转换========%
%八中电平,分别为1(1),3(3),5(5),7(7),-1(0),-3(2),-5(4),-7(6)
%括号外为实际电平值,括号内为对应的八进制数
IStream=zeros(1N/log2(M));
QStream=zeros(1N/log2(M));
i=0;
for k=1:log2(M):N
Itemp=[bitStream(k)bitStream(k+1)bitStream(k+2)];
Qtemp=[bitStream(k+3)bitStream(k+4)bitStream(k+5)];
i=i+1;
IStream(i)=Itemp(1)+Itemp(2)*2+Itemp(3)*4;
QStream(i)=Qtemp(1)+Qtemp(2)*2+Qtemp(3)*4;
if mod(IStream(i)2)==0
IStream(i)=IStream(i)-7;
end
if mod(QStream(i)2)==0
QStream(i)=QStream(i)-7;
end
end
figure(1)
subplot(211);
stem(bitStream‘filled‘);
title(‘原始信号序列‘);
subplot(212);
stem(bitStreamC‘filled‘);
title(‘1-1转换序列‘);
figure(2)
stem(IStream);
- 上一篇:频域差值技术
- 下一篇:BP神经网络和混沌神经网络
评论
共有 条评论