微信公众号:EW Frontier
关注可了解更多的雷达、通信、人工智能相关代码。问题或建议,请公众号留言;
如果你觉得EW Frontier对你有帮助,欢迎加入我的知识星球或面包多,更多代码等你来学
知识星球:https://wx.zsxq.com/dweb2/index/group/15552518881412
面包多:https://mbd.pub/o/author-a2mYl2tsbA==/work
QQ交流群:192253249
主要原理
相位编码信号载频不变,通过在不同的码元采用不同的相位实现调制。相位编码 技术实现简单且抗干扰性强,通常分为二相编码和多相编码。其中二相编码更为简单, 多相编码则在码字的选择上有着更大的灵活,但是实现相对而言也较复杂,因此目前 大多数相位编码体制雷达的选择仍然是二相编码。二相编码信号可表示为:
式中,u(t)为信号的复包络,可表示为:
其中φ(t)为相位调制函数。二相编码中,φ(t)可取0或π两个值,可用相位序列 或二进制序列 表示。因此二相编码信号可表示为:
上述二进制序列即是BARKER13码序列。
MATLAB代码
%finished:2020-10-17 20:42:18
%created by xxx
clear all;
close all;
clc;
% function Bpsk_barker13=barker13(fc,fs,Baud)
%要求信号脉宽0.65us,也就是Baud=2e7
%脉宽=码元数*码元宽度
g=[1,1,1,1,1,0,0,1,1,0,1,0,1];%13位巴克码
fc=2e8; %载波频率
fs=2e9; %采样率
Baud=2e7; %波特率
t=0:1/fs:(fs/Baud-1)/fs; %这一步是关键,它决定了载波采样点和码元采样点长度一致
%生成序列
cp=[];
mod1=[];
for n=1:length(g)
if g(n)==0
A=zeros(1,fs/Baud);
else
A=ones(1,fs/Baud);
end
c=sin(2*pi*fc*t);
cp=[cp A];%code sequence generated
mod1=[mod1 c];
end
cm=[];
mod=[];
subplot(311);plot(cp);
%% 根据序列进行sin反相
for n=1:length(g)
if g(n)==0
B=ones(1,fs/Baud); %每个值100个点
c=sin(2*pi*fc*t); %载波信号
else
B=ones(1,fs/Baud);
c=sin(2*pi*fc*t+pi); %载波信号
end
cm=[cm B]; %s(t)码元宽度100
mod=[mod c]; %与s(t)等长的载波信号
end
Bpsk_barker13=cm.*mod;
subplot(312);plot(Bpsk_barker13);
y=fft(Bpsk_barker13);
f = (0:length(y)-1)*fs/length(y);
n = length(Bpsk_barker13);
fshift = (-n/2:n/2-1)*(fs/n);
yshift = fftshift(y);
subplot(313);plot(fshift,(abs(yshift)));
MATLAB仿真结果
1.BARK码序列及BSPK-BARKER13信号生成波形
2.时频图
相关学习资料见面包多链接https://mbd.pub/o/author-a2mYl2tsbA==/work。
欢迎加入我的知识星球:https://wx.zsxq.com/dweb2/index/group/15552518881412,永久获取更多相关资料、代码。
