📄 system_upsend24.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 + -