matlab匹配滤波器的仿真

@toc

任务

在信号与系统的信号矢量空间一章提到了匹配滤波器的应用,尝试用matlab将典型例题做仿真。

例题

例6-7在测距系统中,发送信号s(t),以匹配滤波器接收回波信号,利用滤波器输出信号峰值出现的时间折算目标距离。如果有两种可供选择的s(t)信号,分别如图6- 22(a)的s|(t)和(b)的s2(t)。求:
(1)分别画出s|(t)和s2(t)自相关函数波形R11(t)和R22(t)。
(2)为改善测距精度,你认为应选用s1(t)或s2(t)两种脉冲的哪一种信号?
matlab匹配滤波器的仿真_第1张图片

matlab代码

clear all
%fake inferior
finf=100;
%取样时间-0.1s到0.1s
%t=-0.1:1/fs:0.1;
T=2;
syms t tau;
%定义输入函数
s1(t)=heaviside(t)-heaviside(t-2);
s2(t)=heaviside(t)-2*heaviside(t-1)+heaviside(t-2);
%绘制
subplot(421)
fplot(s1)
title('first signal')
%xlim([-1,3])
ylim([-1,2])
grid on

subplot(422)
fplot(s2)
title('second signal')
%xlim([-1,3])
ylim([-2,2])
grid on


%定义相关函数
R1(tau)=int(s1(t)*s1(t-tau),t,-finf,finf);
R2(tau)=int(s2(t)*s2(t-tau),t,-finf,finf);
%绘制
subplot(423)
fplot(R1)
title('信号s1的自相关函数R1')
ylabel('R1(\tau)')
xlabel('\tau')
ylim([-2,3])
subplot(424)
fplot(R2)
title('信号s2的自相关函数R2')
ylabel('R2(\tau)')
xlabel('\tau')
ylim([-2,3])

%定义相关函数
R12(tau)=int(s1(t)*s2(t-tau),t,-finf,finf);
R21(tau)=int(s2(t)*s1(t-tau),t,-finf,finf);
%绘制
subplot(425)
fplot(R12)
title('信号s1与信号s2的互相关函数R12')
ylabel('R1(\tau)')
xlabel('\tau')
ylim([-2,3])
subplot(426)
fplot(R21)
title('信号s2与信号s1的互相关函数R2')
ylabel('R2(\tau)')
xlabel('\tau')
ylim([-2,3])

%对于匹配滤波器的输出为时移T后的结果
subplot(427)
fplot(R1(tau-T))
title('信号s1对应匹配滤波器的输出结果')
ylabel('R1(\tau-T)')
xlabel('\tau')
subplot(428)
fplot(R2(tau-T))
title('信号s2对应匹配滤波器的输出结果')
ylabel('R2(\tau-T)')
xlabel('\tau')


%保存图片
filename=strcat('matchedFilter.png');
saveas(gca,filename,'png')

结果图

matlab匹配滤波器的仿真_第2张图片

你可能感兴趣的:(基础知识,课程)