⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system_upsend24.m

📁 cdma 系统级仿真
💻 M
字号:
%  数 据 发 送 端 %发送24路扩频信号
clc;
clear all;
close all;
%*** 产生随机数字比特流x***%
amplitude=1;
longth=16*8;
channel=2;
spreadtimes=24;
k2=8;
k3=k2*spreadtimes;
sourcedata=amplitude*randsrc(channel,longth,[0,1]);%长为100的随机数
%*** 将sourcedata进行串并变换,分成sourcedataI、sourcedataQ两路 ***%
sourcedataI=zeros(channel,(ceil(longth/6))*3);%ceil(x)为取整,即大于或等于x的整数
sourcedataQ=zeros(channel,(ceil(longth/6))*3);
for var4=1:channel
    for var1=1:length(sourcedata)/2
        sourcedataI(var4,var1)=sourcedata(var4,2*var1-1);  %奇数点
        sourcedataQ(var4,var1)=sourcedata(var4,2*var1);    %偶数点
    end;
    %***进行3-8walsh码正交变换***%
    walshdataI(var4,:)=walshcode(sourcedataI(var4,:));
    walshdataQ(var4,:)=walshcode(sourcedataQ(var4,:));
    %将walsh码输出数据进行spreadtimes倍扩展以备扩频
    for var2=1:length(walshdataI(1,:))
        var3=1:spreadtimes;
        walshdata96I(var4,(var2-1)*spreadtimes+var3)=walshdataI(var4,var2);
        walshdata96Q(var4,(var2-1)*spreadtimes+var3)=walshdataQ(var4,var2);
    end
end
%产生15位扩频短码
shortPNcode=shortcode(length(walshdata96I(1,:)));
%产生42位扩频长码
for var4=1:channel
    longPNcode(var4,:)=longcode1(length(walshdata96I(1,:)),var4);
    DSSoutdataI(var4,:)=mod(walshdata96I(var4,:)+longPNcode(var4,:),2);
    DSSoutdataQ(var4,:)=mod(walshdata96Q(var4,:)+longPNcode(var4,:),2);
    shortPNoutI(var4,:)=mod(DSSoutdataI(var4,:)+shortPNcode(1,:),2);
    shortPNoutQ(var4,:)=mod(DSSoutdataQ(var4,:)+shortPNcode(2,:),2);
end
%变为双极性码,0->1,1->-1
shortPNout1I=-2*(shortPNoutI-0.5);
shortPNout1Q=-2*(shortPNoutQ-0.5);
%%
%基带滤波和OQPSK调制
for var4=1:channel
    [oqpskdataI(var4,:),oqpskdataQ(var4,:)]=filer_QPSK4q(shortPNout1I(var4,:),shortPNout1Q(var4,:));
    oqpskdata(var4,:)=oqpskdataI(var4,:)+oqpskdataQ(var4,:);
end
upsenddataI=sum(oqpskdataI);
upsenddataQ=oqpskdataQ(1,:);% upsenddataQ=sum(oqpskdataQ);
upsenddata=sum(oqpskdata);
save send_data2

%%

figure(1)
subplot(3,1,1)
plot(oqpskdataI(1,:))
%axis([0 k3*8 -1.5 1.5])
axis([k3/2 k3*2-k3/2 -2 2])
title('OQPSK1')
grid on
subplot(3,1,2)
plot(oqpskdataI(2,:))
axis([k3/2 k3*2-k3/2 -2 2])
title('OQPSK2')
grid on
subplot(3,1,3)
plot(upsenddataI)
axis([k3/2 k3*2-k3/2 -3.5 3.5])
title('OQPSK输出信号')
grid on

% subplot(4,1,4)
% plot(upsenddata)
% axis([k3/2 k3*2-k3/2 -2 2])
% title('滤波输出信号')
% grid on
% 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -