您现在的位置:首页 >> 通信 >> 内容

基于CDMA全功能短信和图片发送,包括多用户,信道估计等

时间:2022/12/28 17:15:55 点击:

  核心提示:A159包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5uUk5ty

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

        码分多址是指利用码序列相关性实现的多址通信 。码分多址的基本思想是靠不同的地址码来区分的地址。每个配有不同的地址码,用户所发射的载波(为同一载波)既受基带数字信号调制,又受地址码调制。

        接收时,只有确知其配给地址码的接收机,才能解调出相应的基带信号,而其他接收机因地址码不同,无法解调出信号。划分是根据码型结构不同来实现和识别的。一般选择伪随机码(PN码)作地址码。由于PN码的码元宽度远小于PCM信号码元宽度(通常为整数倍),这就使得加了伪随机码的信号频谱远大于原基带信号的频谱,因此,码分多址也称为扩频多址 。

4.部分源码

..........................................................

Goldseqs = [GoldSeq1 GoldSeq2 GoldSeq3];

Gold_Num = length(GoldSeq1); 

J        = [zeros(1,(2*Gold_Num-1)) 0;eye(2*Gold_Num-1) zeros((2*Gold_Num-1),1)];

%调制初始参数

phi      = pi/4;

%定义信噪比

SNR      = -10;

%定义三个用户的信道信息,修改信道参数,即可完成task1,2,3的功能实现

%array

Array_Position = [-4 0 0;

                  -3 0 0; 

                   1 0 0; 

                   3 0 0; 

                   4 0 0];   

%每个用户的多径数,1表示无多径                             

Path_Num = [3 1 1]';

User_Num = length(Path_Num); 

%DOA:azimuth, elevation

DOA_User1= [20  0;

            25  0;

            29  0];

DOA_User2= [70  0];

DOA_User3= [120 0];

DOA      = [DOA_User1; DOA_User2; DOA_User3];

%Delay

Delay1 = [1 4 9]';

Delay2 = [8]';

Delay3 = [11]';

Delay  = [Delay1; Delay2; Delay3];

%fading

fading1 = [1;

           0.6*exp(-j*pi/6);

           0.4*exp(j*pi/4)];

fading2 = [0.5]';

fading3 = [0.6]';

Beta    = [fading1; fading2; fading3];

%每次发送64个bit,进行循环发送,模拟实际情况

for nframes = 1:P/databox

    fprintf('Now transmit...%d\n\n',nframes);

    bits1 = [0 0 bitsOut1(databox*(nframes-1)+1:databox*nframes) 0 0]';

    bits2 = [0 0 bitsOut2(databox*(nframes-1)+1:databox*nframes) 0 0]';

    bits3 = [0 0 bitsOut3(databox*(nframes-1)+1:databox*nframes) 0 0]';

    %QPSK,根据星座图进行映射

    QPSK1 =fDSQPSKModulator(bits1,Goldseqs(:,1),phi);

    QPSK2 =fDSQPSKModulator(bits2,Goldseqs(:,2),phi);

    QPSK3 =fDSQPSKModulator(bits3,Goldseqs(:,3),phi);

    %扩频处理

    All_Photo = [QPSK1 QPSK2 QPSK3];

    %扩频,信道处理                                       

    R_Channel = fChannel(Path_Num,All_Photo, DOA, Delay, Beta, Goldseqs, Array_Position, SNR);

    %信道估计

    [DOAest,Delayest] = fChannelEstimation(R_Channel,GoldSeq1,Array_Position,Path_Num(1));

    %接收机解扩

    R = func_Reciver(R_Channel,DOAest,Delayest,Array_Position,GoldSeq1,Path_Num(1));

    %De QPSK

    DeQPSK = fDSQPSKDemodulator(R,GoldSeq1,phi);

    %DeQPSK = Decoder(R, 'QPSK');

    %最后接收到的数据

    Final_Rec(databox*(nframes-1)+1:databox*nframes) = DeQPSK;

    %传输错误个数

    sum(abs(bits1(3:end-2)-DeQPSK'))

end

......................................

A159

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168