cejv.m

来自「该程序是利用电磁波测得两处之间的距离」· M 代码 · 共 91 行

M
91
字号
close all;
clear all;
clc;
%%%%%%%%%产生雷达发射信号%%%%%%%%%%%%%%%%%%%
code=[1,1,1,1,1,-1,-1,1,1,-1,1,-1,1];
tao=0.5e-6;               %脉宽
fc=10e6;               %载波10MHz
fs=100e6;                %采样频率
ts=1/fs;                  %采样时间间隔
t_tao=0 :ts:tao-ts;
n=length(code);
pha=0;
t=0:ts:n*tao-ts
s=zeros(1,length(t));
for i=1:n
    if code(i)==1
        pha=0;
    else
        pha=pi;
    end
    s(1,(i-1)*length(t_tao)+1:i*length(t_tao))=cos(2*pi*fc*t_tao+pha);
end
figure,plot(t,s),xlabel('t(单位:S)'),title('二相码(13位巴克码)')

p=zeros(1,length(t))
det=1/10e7;
for i=1:n
    if code(i)==1
        pha=0;
    else
        pha=pi;
    end
    p(1,(i-1)*length(t_tao)+1:i*length(t_tao))=cos(2*pi*fc*(t_tao-det)+pha);
end

[c lags]=xcorr(s,p); 
[c_max t_max]=max(c); 
N=t_max-length(s); 
 N*(1/fs)
plot(lags/fs,c) 


close all;clear all;clc;
%%%%%%%%%产生雷达发射信号%%%%%%%%%%%%%%%%%%%
code=[1,1,1,1,1,exp(pi*j/2),-1,exp(3*pi*j/2),1,-1,1,-1,1,exp(3*pi*j/2),-1,exp(pi*j/2)];
tao=0.5e-6;               %脉宽
fc=10e6;               %载波10MHz
fs=100e6;                %采样频率
ts=1/fs;                  %采样时间间隔
t_tao=0 :ts:tao-ts;
n=length(code);
pha=0;
t=0:ts:n*tao-ts;
s=zeros(1,length(t));
for i=1:n
    if code(i)==1
        pha=0;
elseif code(i)==exp(pi*j/2)
        pha=pi/2;
elseif code(i)==exp(3*pi*j/2)
        pha=pi*3/2;
    else  pha=pi;
    end
    s(1,(i-1)*length(t_tao)+1:i*length(t_tao))=cos(2*pi*fc*t_tao+pha);
end
figure,plot(t,s),xlabel('t(单位:S)'),title('4相码(13位巴克码)')

p=zeros(1,length(t))
d=10e7
det=1/d;
for i=1:n
    if code(i)==1
        pha=0;
elseif code(i)==exp(pi*j/2)
        pha=pi/2;
elseif code(i)==exp(3*pi*j/2)
        pha=pi*3/2;
    else  pha=pi;
    end
    p(1,(i-1)*length(t_tao)+1:i*length(t_tao))=cos(2*pi*fc*(t_tao-det)+pha);
end

[c lags]=xcorr(s,p); 
[c_max t_max]=max(c); 
N=t_max-length(s); 
 N*(1/fs)
plot(lags/fs,c) 



⌨️ 快捷键说明

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