matlab costas环,MATLAB写COSTAS环的问题。
X1=0;X2=0;X3=1;
m=350; %重复50遍的7位单极性m序列
for i=1:m
Y3=X3; Y2=X2; Y1=X1;
X3=Y2; X2=Y1;
X1=xor(Y3,Y1);
L(i)=Y1;
end
for i=1:m
M(i)=1-2*L(i); %将单极性m序列变为双极性m序列
end
k=1:1:m;
% figure(1)
% subplot(3,1,1) %做m序列图
% stem(k-1,M);
% axis([0,7,-1,1]);
% xlabel('k');
% ylabel('M序列');
% title('移位寄存器产生的双极性7位M序列') ;
% subplot(3,1,2)
ym=fft(M,4096);
magm=abs(ym); %求双极性m序列频谱
fm=(1:2048)*200/2048;
% plot(fm,magm(1:2048)*2/4096);
% title('双极性7位M序列的频谱')
% axis([90,140,0,0.1]);
% [a,b]=xcorr(M,'unbiased');
% subplot(3,1,3) %求双极性m序列自相关函数
% plot(b,a);
% axis([-20,20,-0.5,1.2]);
% title('双极性7位M序列的自相关函数');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=50;a=0;
x_rand=rand(1,N); %产生50个0与1之间随机数
for i=1:N
if x_rand(i)>=0.5 %大于等于0.5的取1,小于0.5的取0
x(i)=1;a=a+1;
else x(i)=0;
end
end
t=0:N-1;
% % figure(2) %做信息码图
% % subplot(2,1,1)
% stem(t,x);
% title('扩频前待发送二进制信息序列');
tt=0:349;
% subplot(2,1,2)
l=1:7*N;
y(l)=0;
for i=1:N
k=7*i-6;
y(k)=x(i); k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);
end
s(l)=0;
for i=1:350 %扩频后,码率变为100/7*7=100Hz(这不等于没变么。。)
s(i)=xor(L(i),y(i));
end
tt=0:7*N-1;
% stem(tt,s);
% axis([0,112000,0,1]);
% title('扩频后的待发送序列码');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% figure(3)
subplot(2,1,2)
% num=0.5e6;
fc=5.6e4;
ts=0:0.00001:3.5-0.00001;%为了使信号看起来更光滑,作图时采样频率为100kHz
% ps=cos(2*pi*fs*ts);
s_b=rectpulse(s,1000); %将冲激信号补成矩形信号
s_bpsk=(1-2.*s_b).*cos(2*pi*fc*ts);%扩频后信号BPSK调制时域波形,(1-2.*s_b)是1,-1序列
plot(ts,s_bpsk);
xlabel('s');
% axis([0.055,0.085,-1.2,1.2])
title('扩频后bpsk信号时域波形');
% subplot(2,1,1)
% s_bb=rectpulse(x,7000);
% s_bpskb=(1-2.*s_bb).*cos(2*pi*fs*ts);%无扩频信号BPSK调制时域波形
% plot(ts,s_bpskb);
% xlabel('s');
% axis([0.055,0.085,-1.2,1.2]);
% title('扩频前bpsk信号时域波形')
更多推荐

所有评论(0)