clear
clc
C=3e8; %光速
Tp=10e-6; %脉冲时宽
T=100e-6; %脉冲重复周期
k=16; %脉冲数
B=4e6; %发射信号带宽
Fs=5*B;Ts=1/Fs; %采样频率,时间
K=B/Tp; %线性调频率
N=T*Fs;
r0=3000; %目标点距离
r1=6000;
r2=10000;
t0=2*r0/C; %时间上延迟
t1=2*r1/C;
t2=2*r2/C;
t=0:Ts:T-Ts;
amp=1;%衰减系数
win=((t>=0)&(t<=Tp));%窗函数
y=amp*win.*exp(j*pi*K*t.^2);%发射信号
figure;plot(t*1e3,real(y));
xlabel('时间/us');
ylabel('幅度');
title('发射信号');
win0=((t-t0)>=0)&((t-t0)<=Tp);%窗函数
win1=((t-t1)>=0)&((t-t1)<=Tp);%窗函数
win2=((t-t2)>=0)&((t-t2)<=Tp);%窗函数
y0=amp*win0.*exp(j*pi*K*(t-t0).^2);%回波信号
y1=amp*win1.*exp(j*pi*K*(t-t1).^2);%回波信号
y2=amp*win2.*exp(j*pi*K*(t-t2).^2);%回波信号
Y=y0+y1+y2;
figure;plot(t*C/2*1e-3,real(Y));
xlabel('距离/km');
ylabel('幅度');
title('回波信号(一个周期)');
set(gca,'XTick', [0:2:15])
f=linspace(-Fs/2,Fs/2,N);
y_f=fftshift(abs(fft(y)));
figure,plot(f*1e-6,y_f);
title('发射信号频谱');
y0_f=fftshift(abs(fft(y0)));
figure,plot(f*1e-6,y0_f);
title('y0频谱');
Y_f=fftshift(abs(fft(Y)));
figure,plot(f*1e-6,Y_f);
xlabel('频率/MHz');
ylabel('幅度');
title('回波信号频谱');
% %%%%噪声
noise=wgn(1,length(Y),-10);
Y=Y+noise;
figure;
plot(t*C/2*1e-3,real(Y));
xlabel('距离/km');
ylabel('幅度');
title('回波信号+噪声(一个周期)');
set(gca,'XTick', [0:2:15])
Y_f=fftshift(abs(fft(Y)));
figure,plot(f,Y_f);
%%滤波 hamming
Wc=2*B/Fs; %截止频率 B
[b,a]=butter(4,Wc);
Y=filter(b,a,Y);
figure;
plot(t*C/2*1e-3,real(Y));
xlabel('距离/km');
ylabel('幅度');
title('巴特沃斯滤波后的回波信号(一个周期)');
set(gca,'XTick', [0:2:15])
Y_f=fftshift(abs(fft(Y)));
figure,plot(f,Y_f);
Sf1 = fftshift(fft(Y)); % 实际信号的傅里叶变换
win_f=((f)>=0)&((f)<=B);%窗函数
%Hf = win_f.*exp(1i*pi*f.^2/K); % 方式3的匹配滤波器:直接在频域生成匹配滤波器
Hf = exp(1i*pi*f.^2/K);
out1 = ifft(ifftshift(Sf1.*Hf));
figure,plot(f,abs(Sf1.*Hf));
title('匹配滤波后的频谱');
out1=out1/max(out1);
figure,plot(t*C/2*1e-3,out1);
xlabel('距离/km');
ylabel('幅度');
title('匹配滤波后的信号');
set(gca,'XTick', [0:2:15])
out1=10*log10(out1);
figure,plot(t*C/2*1e-3,out1);
xlabel('距离/km');
ylabel('幅度/dB');
title('匹配滤波后的信号');
set(gca,'XTick', [0:2:15]);
评论12