线性调频信号回波处理.docx
《线性调频信号回波处理.docx》由会员分享,可在线阅读,更多相关《线性调频信号回波处理.docx(18页珍藏版)》请在冰豆网上搜索。
线性调频信号回波处理
%程序:
线性调频信号回波处理
%LFMEchoProc.m
clc;%清楚命令窗口信息
clear;%清除工作区的变量
closeall;%清除绘图
%****************参数设置*************%
fr=3e9;%射频
f0=10e6;%中频
pw=256e-6;%脉宽
bw=2e6;%带宽
pri=1e-3;%脉冲重复周期
fs=70e6;%采样率
R=100e3;%距离
v=0;%速度
Pt=10*log10(1e6);%功率
lamda=10*log10(0.1);%波长
G=30;%天线增益dB
L=6;%损耗dB
Fn=3;%噪声系数dB
RCS=10*log10
(2);%RCS
%***************信号参数计算*************%
Pr=Pt+2*G+2*lamda+RCS-3*10*log10(4*pi)-4*10*log10(R)-L;%回波功率计算
A=sqrt(10^(Pr/10));%回波信号幅度
tou=2*R/3e8;%收发时间
fd=2*v*fr/3e8;%回波多普勒频率
k=bw/pw;%调频带宽频率变化率
%************************发射信号产生*******************%
t=(0:
1/fs:
pri).';%时间
sampleTbegin=ceil(0*fs+1);%采样时间起始点
sampleTEnd=ceil(pw*fs+1);%采样时间结束点
sTrans=zeros(length(t),1);%产生发射信号
sTrans(sampleTbegin:
sampleTEnd,1)=...
sin(2*pi*(f0*t(sampleTbegin:
sampleTEnd,1)+k*t(sampleTbegin:
sampleTEnd,1).^2/2));
%图像展示
figure;
plot(t*1e6,sTrans);%发射信号时域波形
xlabel('时间/us');
ylabel('幅度');
freTrans=fftshift(fft(sTrans));%发射信号频域波形
f=linspace(-fs/2,fs/2,length(t));
figure;
plot(f/1e6,abs(freTrans));
xlabel('频率/MHz');
ylabel('幅度');
%***********************回波信号产生*******************%
beginsample=ceil(tou*fs);%采样起始点
endsample=ceil((tou+pw)*fs);%采样结束点
sEcho=zeros(length(t),1);%产生回波信号
sEcho(beginsample:
endsample,1)=...
A*sin(2*pi*((f0+fd)*(t(beginsample:
endsample,1)-tou)+k*(t(beginsample:
endsample,1)-tou).^2/2));
figure;
plot(t*1e6,sEcho);%回波信号时域波形
xlabel('时间/us');
ylabel('幅度');
freEcho=fftshift(fft(sEcho));
f=linspace(-fs/2,fs/2,length(t));
figure;
plot(f/1e6,abs(freEcho));%回波信号频域波形
xlabel('频率/MHz');
ylabel('幅度');
%**********************叠加接收机噪声*******************%
kn=1.38e-23;
T=290;
Bn=bw;
NoiseDev=kn*T*fs*10^(Fn/10);%噪声功率,因后续要通过滤波器,
%此处带宽用采样带宽,保证噪声功率密度
noise=sqrt(NoiseDev)*randn(length(sEcho),1);
sEcho=sEcho+noise;%信号混叠噪声
Wn=fir1(50,[(f0-bw)/(fs/2)(f0+2*bw)/(fs/2)]);%带通滤波器设计
sEcho=filter(Wn,1,sEcho);%带通滤波处理
figure;
plot(t*1e6,sEcho);
xlabel('时间/us');
ylabel('幅度');
freEcho=fftshift(fft(sEcho));
f=linspace(-fs/2,fs/2,length(t));
figure;
plot(f/1e6,abs(freEcho));
xlabel('频率/MHz');
ylabel('幅度');
%*******************正交鉴相****************%
LocalI=sin(2*pi*f0*t);
LocalQ=cos(2*pi*f0*t);
sI=sEcho.*LocalI;
sQ=sEcho.*LocalQ;
filtWn=fir1(50,0.2);%低通滤波器设计
filsI=filter(filtWn,1,sI);%低通滤波处理
filsQ=filter(filtWn,1,sQ);%低通滤波处理
fils=filsI+sqrt(-1).*filsQ;%组成复信号
figure;
plot(t*1e6,fils);%零中频信号
xlabel('时间/us');
ylabel('幅度');
frefilsI=fftshift(fft(fils));
f=linspace(-fs/2,fs/2,length(t));
figure;
plot(f,abs(frefilsI));
xlabel('频率/MHz');
ylabel('幅度');
%************匹配滤波**************%
tlocal=(0:
1/fs:
pw).';
slocal=exp(j*2*pi*(k*tlocal.^2/2));
%窗是对称的,因此窗长为奇数
ifrem(length(slocal),2)==0
slocal=[slocal;0];
end
wrect=window(@rectwin,length(slocal));
srect=slocal.*wrect;
srectproc=ifft(conj(fft(srect,length(sEcho))).*fft(fils));
figure;
plot(t*3e8/2/1e3,20*log10(abs(srectproc))-max(20*log10(abs(srectproc))),'b');
xlabel('距离/Km');
ylabel('幅度/dB');
%****************加窗处理***************%
wrect=window(@rectwin,length(slocal));
srect=slocal.*wrect;
srectproc=ifft(conj(fft(srect,length(sEcho))).*fft(fils));
whamming=window(@hamming,length(slocal));
shamming=slocal.*whamming;
shammingproc=ifft(conj(fft(shamming,length(sEcho))).*fft(fils));
wblackman=window(@blackman,length(slocal));
sblackman=slocal.*wblackman;
sblackmanproc=ifft(conj(fft(sblackman,length(sEcho))).*fft(fils));
figure;
plot(wrect,'b');
holdon;
plot(whamming,'r');
holdon;
plot(wblackman,'k');
xlabel('采样点');
ylabel('幅度');
figure;
plot(t*3e8/2/1e3,20*log10(abs(srectproc))-max(20*log10(abs(srectproc))),'b');
holdon;
plot(t*3e8/2/1e3,20*log10(abs(shammingproc))-max(20*log10(abs(shammingproc))),'r');
holdon;
plot(t*3e8/2/1e3,20*log10(abs(sblackmanproc))-max(20*log10(abs(sblackmanproc))),'k');
xlabel('距离/Km');
ylabel('幅度/dB');
Figure1为发射信号时域波形
Figure2为发射信号幅频特性曲线
Figure3为回波信号时域波形图
Figure4为回波信号幅频特性曲线
Figure5为叠加高斯噪声后的回波信号时域波形
Figure6为叠加噪声后的回波信号幅频特性曲线
Figure7为接收信号下变频至零中频信号时的波形图
Figure8为零中频信号的幅频特性曲线
Figure9为回波信号在接收机处经匹配滤波并作归一化处理后的显示结果。
蓝、红、黑线分别为不加窗、汉明窗、布莱克曼窗的窗形。
蓝、红、黑线分别为匹配滤波后的信号不加窗、汉明窗、布莱克曼窗的结果。
2、思考题
因为在MATLAB软件仿真的过程当中,时间、频率、采样点是离散的,且函数ceil的特性是+1取整,因此影响到fd,进而影响到最后的距离,从而出现了仿真之后的距离比设定距离稍多的情况。