您现在的位置:首页 >> ★免费资源 >> 源码下载 >> 内容

MATLAB代做-SLM与PTS的融合

时间:2018-12-22 12:37:26 点击:

  核心提示:MATLAB代做-SLM与PTS的融合...
function Cal_CCDF_SLM_PTS()
%该函数的作用是对SLM和PTS的结合算法进行仿真。
%生成元素为1和0的随机序列。
Bit = rand(1,100000);
for i = 1:100000
    if Bit(i) >= 0.5
        Bit(i) = 1;
    else
        Bit(i) = 0;
    end
end

%调用函数,将上面生成的随机序列转换为QPSK信号。
QPSK_sequence = QPSKModulate_SLM_PTS(Bit);

%设置IFFT的点数、子载波数、输入符号数、SLM相位序列数、PTS旋转因子种类数、PTS分割子序列数和用户数。
SampleNum = 512;
N = 128;
Num = 100000;
U = 2;
W = 2;
V = 4;
Person = 10;

%生成临时矩阵,存放每个用户经扩频后生成的码片序列。
TempMatrix = zeros(Person,N);

%生成临时向量,存放所有用户叠加后的码片序列。
TempVector = zeros(1,N);

%生成临时矩阵,存放SLM部分输出的PAR。
Temp = zeros(1,U);

%生成临时向量,存放用于统计处理的PAR。
PAR_Vector = zeros(1,Num);

for OutLoop = 1:Num
    for person = 1:Person
        %为每一个用户产生128位M序列
        M_Seq = Generate_M_Sequence(person);
     
        %对数据符号进行扩频
        SpreadSymbol = QPSK_sequence(OutLoop)*M_Seq;
    
        %存储每个用户扩频后得到的码片
        TempMatrix(person,:) = SpreadSymbol;
    end
    
     %将所有用户的码片序列进行叠加
    for column = 1:N
        for line = 1:Person
            TempVector(1,column) = TempMatrix(line,column) + TempVector(1,column);
        end
    end
    
    %将叠加后的码片与不同的相位序列进行“点乘”,形成U个不同的序列,放入矩阵的每一行。
    SequenceMatrix = PhaseModulate_SLM_PTS(TempVector,U,N);
    
    for InLoop = 1:U
        %调用函数,对经相位调制的码片序列进行N点的ifft。
        ifft_output = IfftModulate_SLM_PTS(SequenceMatrix(InLoop,:),N,SampleNum);
        
        %调用函数,对上面IFFT的结果进行分割,分割后的各组按行放置在矩阵Cluster中。        
        %Cluster = Partition_Adjacent_SLM_PTS(ifft_output',V);
        %Cluster = Partition_Random_2_SLM_PTS(ifft_output');
        %Cluster = Partition_Random_3_SLM_PTS(ifft_output');
        Cluster = Partition_Random_4_SLM_PTS(ifft_output');
        
        %调用函数,将输入的分组与相应的相位系数相乘,然后进行叠加,形成一个完整的序列。
        SampleMatrix = PhaseModulate_PTS(Cluster',W,V);
    
        %调用函数,计算上面形成的多载波符号的PAR。
        PAR = Cal_PAR_SLM_PTS(SampleMatrix);
    
        %将产生的PAR的值,按照不同的U,分列放置。
        Temp(1,InLoop) = PAR; 
    end
    
    %从行向量Temp中找出最小的PAR。
    PAR_Min = Temp(1,1);
    for column = 1:U
        if PAR_Min > Temp(1,column)
            PAR_Min = Temp(1,column);
        end
    end

    %将上面找到的值放入行向量PAR_Vector中。
    PAR_Vector(1,OutLoop) = PAR_Min;
end

%调用函数,处理各个PAR的样值,并且绘制出CCDF图形。

Process_PAR_Vector_SLM_PTS(PAR_Vector);


联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

作者:SLM与PTS的融合 来源:SLM与PTS的融合
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment