匹配滤波器的仿真——原理说明与仿真
文章目录
- (1) 匹配滤波器的公式推导与解释
- 1.使用匹配滤波器的目的
- 2.推导匹配滤波器的公式
- 3.从频域直观理解匹配滤波器的效果
- (2) 匹配滤波器的冲激响应
- (3) 匹配滤波器的输出信噪比
- (4) 匹配滤波器的时间适应性
- (5) 匹配滤波器与自相关
- (6) 匹配滤波器进行频域滤波
- 参考
- 通信之道——从微积分到5G
- 匹配滤波器及其在雷达信号处理中的应用
- 随机过程概论(PPT) 第四章
- 线性调频信号
(1) 匹配滤波器的公式推导与解释
解释实际上是要分三步进行:首先要说明要用匹配滤波器干了一个什么事,其次要通过匹配滤波器要做的事说明为什么匹配滤波器的公式是这个形式,最后又要从直观的角度来说明匹配滤波器的这个公式为什么能让它做成这个事情。
1.使用匹配滤波器的目的
- 当有用信号通过信道传输后,混杂有许多高斯白噪声,信号被噪声淹没。通过匹配滤波器提高信噪比,使有用信号在时域上更加明显,更易被检测到。
2.推导匹配滤波器的公式
- 推导公式从匹配滤波器要实现的功能出发:提高信噪比。
- 一个实信号 s(t)s(t)s(t) 通过 AWGN 信道,得到 r(t)=s(t)+n(t)r(t) = s(t) + n(t)r(t)=s(t)+n(t)。其中 n(t)n(t)n(t) 是高斯白噪声。同时已知的高斯白噪声的相关函数 R(τ)=N02δ(τ)R(\tau) = \displaystyle\frac{N_0}{2}\delta(\tau)R(τ)=2N0δ(τ)
让被污染的信号通过一个时域冲激响应为 h(t)h(t)h(t) 的系统并在 t0t_0t0 时刻采样可以得到
y(t0)=∫−∞∞r(τ)h(t0−τ)dτ=∫−∞∞s(τ)h(t0−τ)dτ+∫−∞∞n(t)h(t0−t)dt=ys(t0)+yn(t0)\begin{aligned} y(t_0) &= \int_{-\infin}^{\infin}r(\tau)h(t_0-\tau)d\tau\\ &=\int_{-\infin}^{\infin}s(\tau)h(t_0-\tau)d\tau + \int_{-\infin}^{\infin}n(t)h(t_0-t)dt\\ &=y_s(t_0) + y_n(t_0) \end{aligned} y(t0)=∫−∞∞r(τ)h(t0−τ)dτ=∫−∞∞s(τ)h(t0−τ)dτ+∫−∞∞n(t)h(t0−t)dt=ys(t0)+yn(t0)
很容易发现,ys(t0)y_s(t_0)ys(t0) 是有用信号,yn(t0)y_n(t_0)yn(t0) 是噪声信号,由此定义信噪比SNR=ys2(t0)E[yn2(t0)]SNR = \displaystyle\frac{y_s^2(t_0)}{E[y_n^2(t_0)]}SNR=E[yn2(t0)]ys2(t0)
同时可以推导出 E[yn2(t0)]E[y_n^2(t_0)]E[yn2(t0)] 的表达式
E[yn2(t0)]=E[∫−∞∞n(τ)h(t0−τ)dτ∫−∞∞n(t)h(t0−t)dt]=∫−∞∞∫−∞∞N02δ(t−τ)h(t0−τ)h(t0−t)dτdt=N02∫−∞∞h2(t0−τ)dτ\begin{aligned} E[y_n^2(t_0)] &= E[\int_{-\infin}^{\infin}n(\tau)h(t_0-\tau)d\tau\int_{-\infin}^{\infin}n(t)h(t_0-t)dt]\\ &=\int_{-\infin}^{\infin}\int_{-\infin}^{\infin}\frac{N_0}{2}\delta(t-\tau)h(t_0-\tau)h(t_0-t) d\tau dt\\ &=\frac{N_0}{2}\int_{-\infin}^{\infin}h^2(t_0-\tau) d\tau \end{aligned} E[yn2(t0)]=E[∫−∞∞n(τ)h(t0−τ)dτ∫−∞∞n(t)h(t0−t)dt]=∫−∞∞∫−∞∞2N0δ(t−τ)h(t0−τ)h(t0−t)dτdt=2N0∫−∞∞h2(t0−τ)dτ
回代并求出最大值
SNR=2[∫−∞∞s(τ)h(t0−τ)dτ]2N0∫−∞∞h2(t0−τ)dτ≤2∫−∞∞s2(τ)dτ∫−∞∞h2(t0−τ)dτN0∫−∞∞h2(t0−τ)dτ=2N0∫−∞∞s2(τ)dτ\begin{aligned} SNR&=\displaystyle\frac{2[\displaystyle\int_{-\infin}^{\infin}s(\tau)h(t_0-\tau)d\tau]^2}{N_0\displaystyle\int_{-\infin}^{\infin}h^2(t_0-\tau)d\tau}\le \displaystyle\frac{2\displaystyle\int_{-\infin}^{\infin}s^2(\tau)d\tau\displaystyle\int _{-\infin}^{\infin}h^2(t_0-\tau)d\tau}{N_0\displaystyle\int_{-\infin}^{\infin}h^2(t_0-\tau)d\tau}\\ &=\displaystyle\frac{2}{N_0}\displaystyle\int_{-\infin}^{\infin}s^2(\tau)d\tau \end{aligned} SNR=N0∫−∞∞h2(t0−τ)dτ2[∫−∞∞s(τ)h(t0−τ)dτ]2≤N0∫−∞∞h2(t0−τ)dτ2∫−∞∞s2(τ)dτ∫−∞∞h2(t0−τ)dτ=N02∫−∞∞s2(τ)dτ
上面的式子在放缩的过程中使用了柯西不等式,所以想要达到最大值就需要根据柯西不等式等号成立的条件得到 h(t0−τ)=s(τ)⇒h(t)=ks(t0−t)h(t_0-\tau) = s(\tau)\Rightarrow h(t) = ks(t_0-t)h(t0−τ)=s(τ)⇒h(t)=ks(t0−t)
3.从频域直观理解匹配滤波器的效果
- 由时域表达式可以推出频域表达式 H(ω)=kS∗(ω)e−jωt0H(\omega) = kS^*(\omega)e^{-j\omega t_0}H(ω)=kS∗(ω)e−jωt0,可以发现有 ∣H(ω)∣=k∣S(ω)∣|H(\omega)| = k|S(\omega)|∣H(ω)∣=k∣S(ω)∣,也就是说系统的增益和信号的幅度谱是一样的。
- 由于白噪声的频谱是常数,就是说在哪里都一样,所以系统在信号幅度谱更大的地方(含有的有用信号会更多)使用更大的增益就可以让有用信号在总的信号中增长的更多,也就是说提高了信噪比。
(2) 匹配滤波器的冲激响应
由之前的推证可以知道,冲激响应的时域表达式为 h(t)=ks(t0−t)h(t) = ks(t_0-t)h(t)=ks(t0−t)。
注意 h(t)h(t)h(t) 与 t0t_0t0 值选取需要遵循的准则:
因果关系
h(t)={s(t0−t),t≥00,t<0h(t) = \begin{cases} s(t_0-t),t\ge 0\\ 0,t<0 \end{cases} h(t)={s(t0−t),t≥00,t<0
为了使输入信号的全部都能对输出信号有所贡献,采样时刻 t0t_0t0 应满足 s(t)=0,t>t0s(t)=0,t>t_0s(t)=0,t>t0。比如信号产生的时间是 [0,10μs][0,10\mu s][0,10μs],采样时刻 t0t_0t0 就至少是 10μs10\mu s10μs。这里假定采样时刻 T = 12μ\muμs,信号带宽 B = 20MHz,信号时宽 TimeWidth = 10μ\muμs,信号的采样频率 FsF_sFs = 50MHz,起始频率为 0Hz。
matlab 代码
%% 产生线性调频波 TimeWidth = 10e-6; %脉冲持续时间10us T = 8e-6; %T在8us BandWidth = 20e6; %线性调频信号的频带宽度20MHz Fs = 50e6; %采样频率,注意需要满足奈奎斯特频率 sample_dot_num = round(TimeWidth * Fs);%表示采样点的个数f0 = 0;%初始频率 f1 = f0 + BandWidth;%终止频率 t=0:1/Fs:TimeWidth;%根据结束时间生成时间序列 signal = chirp_signal(t,f0,f1); plot(t*1e6,signal,'LineWidth',2); %% 匹配滤波器的脉冲响应 %这里 k 假定取 1 h = signal(end:-1:1); t = -t(end:-1:1) + T; plot(t*1e6,h,'LineWidth',2);
仿真结果
(3) 匹配滤波器的输出信噪比
匹配滤波器的输出功率信噪比只取决于输入信号的能量和白噪声功率谱密度而与输入信号形状和噪声分布规律无关。
这里在仿真时均假定
snr=0
,并且通过增添频率移动量保证整体能量基本相等,均为 125.5125.5125.5 左右。matlab 代码:
%% 产生线性调频信号 TimeWidth = 10e-6; %脉冲持续时间10us BandWidth = 20e6; %线性调频信号的频带宽度20MHz Fs = 50e6;Ts = 1/Fs; %采样频率,注意需要满足奈奎斯特频率 N = fix(TimeWidth/Ts); f0 = 0;%初始频率 f1 = f0 + BandWidth;%终止频率%设定频率偏移量 f_shifta = 5e6; f_shiftb = 10e6; t=0:1/Fs:TimeWidth;%根据结束时间生成时间序列 %采用不同的频率偏移量生成两个能量(几乎)相同的信号 signal1 = chirp_signal(t,f0+f_shifta,f1); signal2 = chirp_signal(t,f0+f_shiftb,f1); plot(t*1e6,signal1); plot(t*1e6,signal2); %% 加入噪声后 %加入噪声 snr = 0; y1 = awgn(signal1, snr, 'measured'); y2 = awgn(signal2, snr, 'measured'); plot(t*1e6,y1); plot(t*1e6,y2); % 经过匹配滤波器 mf=fliplr(signal1); %输入序列取反序(匹配滤波器的脉冲响应) sr_noise_mf=conv(mf,y1); %有噪声回波信号匹配滤波(使用脉冲响应和输入信号进行卷积) plot((0:length(sr_noise_mf)-1)/Fs*1e6,20*log10(abs(sr_noise_mf))) mf=fliplr(signal2); %输入序列的复共轭(匹配滤波器的脉冲响应) sr_noise_mf=conv(mf,y2); %有噪声回波信号匹配滤波(使用脉冲响应和输入信号进行卷积) plot((0:length(sr_noise_mf)-1)/Fs*1e6,20*log10(abs(sr_noise_mf)))
仿真结果
可以看到在信号能量基本相等的情况下,通过匹配滤波器后的信噪比最大的位置基本相同。
(4) 匹配滤波器的时间适应性
- 匹配滤波器对振幅和时延参量不同的信号具有适应性,具体来说就是与信号 s(t)s(t)s(t) 相匹配的滤波器的系统函数 H(ω)H(\omega)H(ω) ,对于信号 s1(t)=As(t−τ)s_1(t) = As(t-\tau)s1(t)=As(t−τ) 来说也是匹配的,只不过最大输出功率信噪比出现的时刻延迟了 τ\tauτ。
- matlab 代码
%% 产生线性调频信号 TimeWidth = 10e-6; %脉冲持续时间10us TimeEmpty = 20e-6; BandWidth = 20e6; %线性调频信号的频带宽度20MHz Fs = 50e6;Ts = 1/Fs; %采样频率,注意需要满足奈奎斯特频率 N = fix(TimeWidth/Ts);f0 = 0;%初始频率 f1 = f0 + BandWidth;%终止频率 t=0:1/Fs:TimeWidth;%根据结束时间生成时间序列 signal = chirp_signal(t,f0,f1); t_total = linspace(0,2*(TimeEmpty+TimeWidth),2*(TimeEmpty+TimeWidth)/Ts); signal_total = [signal(1:end-1),zeros(1,fix(TimeEmpty/Ts)),signal(1:end-1),zeros(1,fix(TimeEmpty/Ts))]; plot(t_total*1e6,signal_total,'LineWidth',2); %% 加入噪声后 %加入噪声 snr = 0; signal_with_noise = awgn(signal_total, snr, 'measured'); plot(t_total*1e6,signal_with_noise,'LineWidth',2); %% 经过匹配滤波器后(信号波形通过与其对应的匹配滤波器) %这里 k 假定取 1 h=zeros(1,N); t1 = fix(TimeWidth/Ts); for tt=0:N-1h(tt+1)=signal_total(t1-tt);%匹配滤波器 end % 经过匹配滤波器 sr_noise_mf=conv(h,signal_with_noise); %有噪声回波信号匹配滤波(使用脉冲响应和输入信号进行卷积) plot((0:length(sr_noise_mf)-1)/Fs*1e6,20*log10(abs(sr_noise_mf)),'LineWidth',2);
- 仿真结果
可以看出来,对于有一个时延的信号,使用相同的匹配滤波器会导致输出在信噪比最大的地方也有一个响应的时延。
(5) 匹配滤波器与自相关
- matlab代码
%% 产生线性调频信号 TimeWidth = 10e-6; %脉冲持续时间10us BandWidth = 20e6; %线性调频信号的频带宽度20MHz Fs = 50e6;Ts = 1/Fs; %采样频率,注意需要满足奈奎斯特频率 N = fix(TimeWidth/Ts); f0 = 0;%初始频率 f1 = f0 + BandWidth;%终止频率 t=0:1/Fs:TimeWidth;%根据结束时间生成时间序列 signal = chirp_signal(t,f0,f1); signal = awgn(signal,0,'measured');%这里添加白噪声 plot(t*1e6,signal,'LineWidth',2); %% 匹配滤波 %计算匹配滤波器的冲激响应函数 h = zeros(1,N); t1 = fix(TimeWidth/Ts); for tt=0:N-1h(tt+1) = signal(t1-tt);%匹配滤波器 end signal_match = abs(conv(h,signal)); t_match = (0:length(signal_match)-1)/Fs; plot(t_match*1e6,signal_match,'LineWidth',2); %% 求自相关函数 signal_autocorrelation = abs(xcorr(signal)); t_autocorrelation = (0:length(signal_autocorrelation)-1)/Fs; plot(t_autocorrelation*1e6,signal_autocorrelation,'LineWidth',2);
- 仿真结果:
- 从波形上来看两者是完全相同的,但是一定要注意前提条件。在 t=t0t=t_0t=t0 并且噪声 n(t)n(t)n(t) 为零均值白噪声的条件下匹配滤波器与相关器的输出是相等的。
(6) 匹配滤波器进行频域滤波
matlab 代码
%% 产生线性调频信号 TimeWidth = 10e-6; %脉冲持续时间10us BandWidth = 20e6; %线性调频信号的频带宽度20MHz Fs = 50e6;Ts = 1/Fs; %采样频率,注意需要满足奈奎斯特频率 N = fix(TimeWidth/Ts); f0 = 0;%初始频率 f1 = f0 + BandWidth;%终止频率 t=0:1/Fs:TimeWidth;%根据结束时间生成时间序列 signal = chirp_signal(t,f0,f1);snr = 0; signal_with_noise = awgn(signal, snr, 'measured'); %回波信号实际上就是给原信号增加了噪声 plot(t*1e6,signal_with_noise,'LineWidth',2);freq=linspace(0,Fs,N); plot(freq*1e-6,fftshift(abs(fft(signal_with_noise(1:end-1)))),'LineWidth',2);%% 进行匹配滤波 %计算匹配滤波器的冲激响应函数 h = zeros(1,N); t1 = fix(TimeWidth/Ts); for tt=0:N-1h(tt+1) = signal(t1-tt);%匹配滤波器 end subplot(311) plot(freq*1e-6,abs(fftshift(fft(h)).* fftshift(fft(signal_with_noise(1:end-1)))),'LineWidth',2);%% 求相关 temp = abs(ifft(fftshift(fft(h)).* fftshift(fft(signal_with_noise(1:end-1))))); temp = [temp,temp(end:-1:1)]; plot((0:length(temp)-1)*Ts*1e6,temp,'LineWidth',2); %% 求匹配 subplot(313) temp = abs(conv(h,signal_with_noise(1:end-1))); plot((0:length(temp)-1)*Ts*1e6,temp,'LineWidth',2);
仿真结果:
- 对淹没在 0dB 高斯白噪声中的信号直接进行 FFT,可以看到在频域并不能很好的分出信号。
- 频域乘积:对加噪信号和匹配滤波器脉冲响应分别进行 FFT 变换,得到两组频谱后点乘然后进行 IFFT 变换即可得出滤波结果。
- 从时域卷积:让加噪信号和匹配滤波器进行卷积,直接得到结果,可以看得这两种操作使结果 基本相同。
匹配滤波器的仿真——原理说明与仿真相关推荐
- FPGA之道(82)功能仿真之仿真原理
文章目录 前言 功能仿真篇 仿真原理 串行模仿并行思路分析 有限模仿无限思路分析 组合逻辑仿真原理 时序逻辑仿真原理 HDL的仿真原理 仿真时间与物理时间 前言 本文摘自<FPGA之道>. ...
- matlab 脉冲压缩算法,线性调频脉冲压缩原理及其MATLAB仿真+程序
摘 要:脉冲压缩技术在现代雷达系统和超带宽通信系统等领域具有越来越重要的应用.本文首先阐述了线性调频脉冲压缩的基本原理,并提出了增大信号等效带宽可以提高雷达距离分辨率,然后分析了匹配滤波器的特性,给出 ...
- 基于Matlab的模拟通信实验平台设计,【通信原理仿真实验】通信原理虚拟实验仿真平台的设计和实现_玛雅作文网...
作文「通信原理虚拟实验仿真平台的设计和实现」共有 4564 个字,其中有 2704 个汉字,1316 个英文,162 个数字,382 个标点符号.作者佚名,请您欣赏.玛雅作文网荟萃众多优秀学生作文,如 ...
- DDS信号发生器原理与vivado仿真
DDS信号发生器原理与vivado仿真 1. DDS简介 DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳 ...
- 积分和微分电路结构原理带Multisim仿真
积分和微分电路结构原理带Multisim仿真 文章目录 积分和微分电路结构原理带Multisim仿真 一.电路与波形 二.作用及原理 1.积分电路 2.微分电路 3.用途 三.仿真实例 一.电路与波形 ...
- 光栅原理及其c语言仿真,光栅原理及MATLAB仿真
<光栅原理及MATLAB仿真>由会员分享,可在线阅读,更多相关<光栅原理及MATLAB仿真(8页珍藏版)>请在人人文库网上搜索. 1.取样光纤光栅的原理及基于MATLAB的反射 ...
- matlab 光栅 傅里叶,光栅原理及MATLAB仿真汇编.doc
光栅原理及MATLAB仿真汇编 取样光纤光栅的原理及基于MATLAB的反射谱仿真 取样光纤光栅其实与相称光纤光栅基本上一致,不同的地方在于,相移光栅是在均匀布拉格光栅的某一点处引入相移,导致在反射谱中 ...
- MATLAB BPSK通信系统调制解调仿真原理及代码(二)
此仿真是瑞丽衰落信道与高斯信道的仿真对比,高斯信道的原理及仿真代码前文已有讲述. 高斯信道下的原理及代码请见 MATLAB BPSK通信系统调制解调仿真原理及代码(一)_惜洛-Jankin的博客-CS ...
- 热电偶技术及热电偶仿真原理
目录 一.热电偶的定义及原理 1.热电偶的定义 2.热电偶的测温原理 3.热电偶的技术优势 二.热电偶仿真的意义及优势 三.热电偶仿真的技术实现 一.热电偶的定义及原理 1.热电偶的定义 热电偶(th ...
- 使用计算机仿真的作用是什么,计算机仿真原理及其应用
<计算机仿真原理及其应用>是2005年华中科技大学出版社出版的图书,作者是周明.胡斌. 书 名 计算机仿真原理及其应用 作 者 周明.胡斌 出版社 华中科技大学出版社出版时间 ...
最新文章
- 写一个“特殊”的查询构造器 - (四、条件查询:复杂条件)
- source insight3.5显示中文_Doxygen 中文文档
- JS高级-闭包-this指向
- 关于checkbox
- Linux学习笔记之一————什么是Linux及其应用领域
- Docker-Compose 一键部署Ningx+.Net Core+Redis集群
- android 開發人員模式,Android
- Spring AOP功能的实现
- ZeroMQ实例-使用ZMQ(ZeroMQ)进行局域网内网络通信
- Tomcat学习总结(14)—— Tomcat常见面试题
- ASP.NET深入浅出系列3- Page类
- python制作印刷体数据集:数字符号数据集(字符串转图片)
- 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 2.7 代理模式...
- CardView覆盖问题
- 【文化课每周学习记录】2019.3.10——2019.3.16
- 数据库--MySQL
- 微信小程序getUserProfile,获取头像和昵称实现登录
- Excel表列名称(基本实现)
- 看看乔帮主留下的世界
- 第三届全国中医药院校大学生程序设计竞赛(部分题解)更新中~