线性调频信号回波处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%程序:线性调频信号回波处理
%LFMEchoProc.m
clc; %清楚命令窗口信息
clear; %清除工作区的变量
close all; %清除绘图
%****************参数设置*************%
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));
%窗是对称的,因此窗长为奇数
if rem(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');
hold on;
plot(whamming,'r’);
hold on;
plot(wblackman,'k’);
xlabel('采样点’);
ylabel(’幅度’);
figure;
plot(t*3e8/2/1e3,20*log10(abs(srectproc))-max(20*log10(abs(srectproc))),'b');
hold on;
plot(t*3e8/2/1e3,20*log10(abs(shammingproc))-max(20*log10(abs(shammingproc))),'r');hold on;
plot(t*3e8/2/1e3,20*log10(abs(sblackmanproc))—max(20*log10(abs(sblackmanproc))),’k'); xlabel(’距离/Km’);
ylabel(’幅度/dB');
Figure1为发射信号时域波形Figure2为发射信号幅频特性曲线。