📄 radarsignal_hough.m
字号:
clear all
close all
clc
%对脉冲序列采样,每一个发射脉宽内采样10个单元(相当于取10个距离单元),采样时间间隔Ts=5e-7(相当于每个距离单元为Ts*c/2=75m).
c1=3e8; %speed of light
Te=5e-6; %发射脉冲宽度0.1ms
Be=1e6; %带宽 1M
mu=Be/Te; %调频斜率10G Hz
Ts=1/(2*Be); %采样频率 2M Hz 利用Ts*c/2可求得采样间隔为75m,相当于每个距离单元为75m
s=Ts*c1/2;
Ro=60e3; % 起始距离60 km
fo=c1/0.03; % 中心频率
Vr=500; %径向速度500m/s
Tr=1/100; %脉冲重复周期
K=300; %300个脉冲回波
t=0:Ts:Te-Ts; %在一个发射脉宽内只能采样10个单元
w=exp(j*pi*mu*t.^2);%参考信号
Wf=fft(w,512);
n=fix(Te/Ts);
vr=ones(1,K);
nng=ones(1,K);
taoi=ones(K,n);
for k=1:K
vr(k)=Vr+k;
for i=1:n
taoi(k,i)=Ts*i-2*Ts*vr(k)*(k-1)/c1;%?
nng(k)=fix((Ro-Tr*vr(k)*(k-1)-30e3)/s);%?
end
end
echo=0.2*0.707*(randn(K,512)+j*randn(K,512)); %回波信号中的噪声
for i=1:K %回波信号
echo(i,nng(i):nng(i)+n-1)=echo(i,nng(i):nng(i)+n-1)+...
1.0.*exp(-j*2*pi*fo*taoi(i,:)+j*pi*mu*taoi(i,:).^2);
end
figure(1)
%mesh(abs(echo))
mesh(abs(echo)/max(max(abs(echo))))
title('雷达回波信号');
xlabel('距离单元数/个');
ylabel('脉冲回波数/个');
% axis([1 512 1 300]);
zlabel('幅度/mv');
sp2=ones(K,512);
for i=1:K %脉冲压缩
sp2(i,:)=ifft(fft(echo(i,:),512).*conj(Wf),512); %%%%%每个脉冲回波信号与参考信号在频域相乘后进行傅立叶反变换进行脉冲压缩
%%%%%%变成64*1024其中64是脉冲回波数,1024对应着距离单元%%%%
end
figure(2)
mesh(abs(sp2));
title('脉冲压缩结果'); %脉冲压缩结果
xlabel('距离单元数/个')
ylabel('脉冲回波数/个')
axis([1 512 1 300]);
figure(3)
colormap(winter);
[ht,rho,theta]=htl(sp2,300,512,1);
mesh(abs(ht));
title('hough变换检测雷达信号');
xlabel('rho');
ylabel('theta');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -