• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-06-08
  • 语言: Matlab
  • 标签: 64QAM  

资源简介

这是在老师指导下自己编写的一个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);

评论

共有 条评论