📄 recieve_onsat1.m
字号:
%**************************************************************************
%※ 星上数据接收端 ※%
%**************************************************************************
clc;
clear all;
close all;
load send_data1;
Rb=800000;%码元速率819.2k
k=1; %一个码元间隔包括1个载波周期/2
k2=8; %采样率
k3=spreadtimes*k2;
%正交下变频
%A/D模数变换
[recievdataI,recievdataQ]=QPSK_demodu(upsenddata);
datalength=length(upsenddata);
%FFT分路
%*******解扩不解调************%
%产生42位扩频长码
longPNcode=longcode(datalength/k2);
%DSSoutdataI=mod(walshdata96I+longPNcode,2);
%DSSoutdataQ=mod(walshdata96Q+longPNcode,2);
%产生15位扩频短码
shortPNcode=shortcode(datalength/k2);
%长短码进行摸2加,生成本地扰码
despreadcodeI=mod(longPNcode+shortPNcode(1,:),2);
despreadcodeQ=mod(longPNcode+shortPNcode(2,:),2);
%变为双极性码,0->1,1->-1
despreadcode1I=-2*(despreadcodeI-0.5);
despreadcode1Q=-2*(despreadcodeQ-0.5);
%对本地扰码进行8倍采样
for i=1:datalength/k2
despreadcode2I(1,1+(i-1)*k2:i*k2)=despreadcode1I(i);%将码元展宽x_size倍
despreadcode2Q(1,1+(i-1)*k2:i*k2)=despreadcode1Q(i);%将码元展宽x_size倍
end
%解扩
N=14;
Wn=1/8;
B = fir1(N,Wn);
despreadout1I=recievdataI.*despreadcode2I;
despreadout1Q=recievdataQ.*despreadcode2Q;
%下采样,spreadtimes=4;
for i=1:datalength/spreadtimes
despreadout4I(1,i)=despreadout1I(spreadtimes/2+1+spreadtimes*(i-1));%将码元展宽x_size倍
despreadout4Q(1,i)=despreadout1Q(spreadtimes/2+1+spreadtimes*(i-1));%将码元展宽x_size倍
end
despreadoutI=filter2(B,despreadout4I);
despreadoutQ=filter2(B,despreadout4Q);
%% *******判决********************%
for i=1:length(despreadout4I)/k2
despreadout2I(1,i)=sum(despreadoutI(1+k2*(i-1):k2*i));%积分判决
despreadout2Q(1,i)=sum(despreadoutQ(1+k2*(i-1):k2*i));
% despreadout2I(1,i)=despreadout4I(k2/2+1+k2*(i-1));%抽样判决
% despreadout2Q(1,i)=despreadout4Q(k2/2+1+k2*(i-1));
end
despreadout3I=-(sign(despreadout2I)-1)/2;
despreadout3Q=-(sign(despreadout2Q)-1)/2;
%*************星上交换**********%
%CWTDM复接,去下行调制器
%% *******************************%
figure(1)
subplot(3,1,1)
plot(despreadcode2Q)
%axis([0 k3*8 -1.5 1.5])
axis([0 k3*6 -1 1])
grid on
title('扩频码')
subplot(3,1,2)
plot(recievdataQ)
axis([0 k3*6 -1 1])
title('扩频输入信号')
grid on
subplot(3,1,3)
plot(despreadout1Q)
axis([0 k3*6 -1 1])
title('扩频输出信号')
grid on
figure(2)
subplot(2,1,1)
plot(despreadout4Q)
axis([0 k2*6 -1 1])
title('下采样输出信号')
grid on
subplot(2,1,2)
plot(despreadoutQ)
axis([0 k2*6 -1 1])
title('滤波输出信号')
grid on
%% *******************************%
figure(3)
subplot(2,1,1)
stairs(despreadout3Q)
%axis([0 k3*8 -1.5 1.5])
axis([1 7 -0.5 1.5])
grid on
title('扩频码')
subplot(2,1,2)
stairs(walshdataQ)
axis([1 7 -0.5 1.5])
title('扩频输入信号')
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -