如何消除匹配的过滤器背景?

信息处理 离散信号 匹配过滤器
2022-02-04 04:54:36

问题

我的目标是检测未知频率f1带有一个混频器和一个匹配的滤波器。我的模拟显示(下图)我正确识别了 50 kHz 外部信号 - 但它也会产生额外的信号,其中一些我用红色圈出。

匹配滤波器信号检测

如您所见,额外的信号很重要——高达峰值检测的 20%。它还会干扰峰的高度,这对我的应用至关重要。这些是我的问题:

1. 这是从哪里来的?
2、如何预防?


背景

有信号s1(t)=A1cos(2πf1t+ϕ1)频率未知f1, 阶段ϕ1, 和幅度A1. 在这个模拟中,f1介于 45 和 55 kHz 之间,或者简单地说45<f1<55.

该方案是乘s1(t)有信号nramp(t)在 10 秒内从 45 kHz 线性上升到 55 kHz。当两个信号频率相同时,余弦积法则会产生一个直流峰值。然后,将信号馈入匹配滤波器,并产生对应于外部信号的峰值。

这张图总结了我的方案:

在此处输入图像描述

代码

我用八度音阶制作了一个 MWE:

clear all;
close all;
pkg load signal;

%Constants
sampleRate=0.00005;
time=0:sampleRate:10;
frequency=45+time;
phase=45*time + 0.5*time.^2;

% Signals
s1=cos(2*pi*50*time+pi/3);
n_ramp=cos(2*pi*phase);
s2=s1.*n_ramp;
s3=filter(fir1(500, 16*sampleRate*2,'low'),1,s2); %Low Pass Filter

% Matched Filter
r1=cos(2*pi*52*time);
ref00=r1.*n_ramp;
r2=cos(2*pi*52*time+pi/2);
ref05=r2.*n_ramp;
matched_filter=fft(ref00+i*ref05);

% Apply Filter and Plot
filtering=matched_filter.*fft(s3);
sout=shift(abs(ifft(filtering)),3/sampleRate);

figure
plot(frequency,sout/max(sout),'b-','LineWidth',1);
axis([45 55 0 1.1])
xlabel('Frequency, kHz', "fontsize", 15)
ylabel('Amplitude, a.u.', "fontsize", 15)
set(gca, "linewidth", 2, "fontsize", 12)

想法

检测到的额外信号不是噪声;我的模拟中没有噪音。它从何而来?如何防止它弄乱我的输出幅度?

0个回答
没有发现任何回复~