匹配滤波器结合Matlab实现

matlab匹配滤波器的制作

在一次课设中使用到了匹配滤波器进行LFM信号处理,所以打算记下来,如果有错误,希望评论区指出。时间(12月21日)

clear all,clc;
%基本变量的申请
fs = 2000 * 100000;   %采样的频率
Ts = 1/fs;   %采样周期
N = 2000;  %采样点数
t = (-N:N)*Ts;    %时间向量
T = 0.00001;   %信号周期

%创建一个LFM信号,
syms S_a S_b real; %申请两个实数变量,a为实部,b为虚部
S_a = 1;            %设置幅度
S_b = 1;
B = 40 * 1000000;
k = B/T;
S_amplitude = 1;  %信号s的幅值
L=length(t);

for ii=1:L
if abs(t(ii)) < T/2 
    S_signal(ii) = exp(1j * pi * k * t(ii)* t(ii));  %创建一个指数信号 
else 
    S_signal(ii) = 0;
end
end

%创建一个高斯白噪声信号 
noise = awgn(S_signal,10);

%创建冲击相应
K = 1;
t0 = 0;
h = S_signal';       %因为载波频率是0,所以这里取共轭

%经过傅里叶变化
N1 = L; %采样点
y = fftshift(fft(noise));
x = fftshift(fft(S_signal));%对原信号进行fft

ff = 0:fs/(L-1):fs;
ff = ff-fs/2;
            
%经过系统的输出信号
Sout = conv(noise,h,'same');
%Sout = Sout/max(Sout);
SoutFFT = fftshift(fft(Sout));

%***************************************%
%下面是画图操作

%LFM信号的幅度谱
figure(1);subplot(1,1,1);plot(ff,abs(x));
title('LFM信号的频谱');
xlabel('w/hz');
ylabel('幅度');


%LFM信号的图
%实数部分
figure(2);subplot(2,1,1);plot(t,real(S_signal));
title('LFM信号real part');
xlabel('t/s');
ylabel('幅度');   
axis([-1/100000/2 1/100000/2 -1.2 1.2]);
%虚数部分
subplot(2,1,2);plot(t,imag(S_signal));
title('LFM信号imainary part');
xlabel('t/s');
ylabel('幅度');
axis([-1/100000/2 1/100000/2 -1.2 1.2]);

%+噪声后输出信号的波形
%实数部分
figure(3);subplot(2,1,1);plot(t,real(noise));
title('LFM信号+高斯高斯白噪声信号real part');
xlabel('t/s');
ylabel('幅度');
axis([-1/100000/2 1/100000/2 -1.5 1.5]);
%虚数部分
subplot(2,1,2);plot(t,imag(noise));
title('LFM信号+高斯高斯白噪声信号imaginary part');
xlabel('t/s');
ylabel('幅度');
axis([-1/100000/2 1/100000/2 -1.5 1.5]);

%频谱图
figure(4);subplot(1,1,1);
plot(ff,abs(y));
title('LFM信号+噪声后频谱图');
xlabel('w/hz');
ylabel('幅度');

%冲激响应的波形
%实数部分
figure(5);subplot(2,1,1);plot(t,real(h));
title('h(t)real part');
xlabel('t/s');
ylabel('幅度');
axis([-1/100000/2 1/100000/2 -1.2 1.2]);
%虚数部分
subplot(2,1,2);plot(t,imag(h));
title('h(t)imaginary part');
xlabel('t/s');
ylabel('幅度');
axis([-1/100000/2 1/100000/2 -1.2 1.2]);

%过系统后输出信号的波形
%实数部分
figure(6);subplot(2,1,1);plot(t,real(Sout));
title('Sout real part');
xlabel('t/s');
ylabel('幅度');
axis([-1/100000/2 1/100000/2 -150 150]);
%虚数部分
subplot(2,1,2);plot(t,imag(Sout));
title('Sout imaginary part');
xlabel('t/s');
ylabel('幅度');
axis([-1/100000/2 1/100000/2 -120 120]);

%频谱
figure(7);subplot(1,1,1);
plot(ff,abs(SoutFFT));
title('经过匹配滤波器后的频谱');
xlabel('w/hz');
ylabel('幅度');

匹配滤波器的理论分析

一、线性调频信号
LFM(线性调频)大时宽带宽积的信号,广泛应用于雷达中,我们先看一下线性调频信号的数学表达式:
在这里插入图片描述

	可以很容易看出,线性调频信号的频率随着时间的推移而增大,而LFM信号的w满足式子:

在这里插入图片描述
可以看到,w和t满足线性关系,其中K为w的变化率,fc则是w的初值。
二、理论分析
1.高斯白噪声
由于我们加入的是高斯白噪声信号,高斯白噪声信号的功率谱密度在各个频段都是一个恒定的值,即满足N~(μ,σ2),其中σ2表示噪声的平均功率;
2.设置匹配滤波器
匹配滤波器的公式:
在这里插入图片描述
下面我们来简单推到一下匹配滤波器:
我们先进行卷积运算:
在这里插入图片描述
信噪比:
在这里插入图片描述
匹配滤波器结合Matlab实现_第1张图片匹配滤波器结合Matlab实现_第2张图片
最后的小结:
所以我们利用匹配滤波器的作用是什么,其实我们利用匹配滤波器不是为了还原这个波形,我们需要的,是得到这个信号的部分信息;很明显利用匹配滤波器,我们可以使LFM信号在接受时,形成脉冲,并且可以获取LFM的时间信息,这样我们就可以得到我们需要的测量值。
本文章为读者的课程设计笔记,如果有错误的地方,希望大家指出。

你可能感兴趣的:(matlab)