应该使用什么标准进行平滑

信息处理 过滤器 过滤 平滑 自适应滤波器
2022-02-13 19:17:53

实际上,我有一些测量值,我想消除噪音我想使用不同的过滤技术,但我想知道我应该使用什么标准来检查我是否正在消除噪音,或者我选择的参数是否是最佳的。

我的测量是质谱数据。

2个回答

您想查看创新序列;过滤值(估计或预测)与测量值之间的差异。如果你有一个完美的滤波器来去除噪声,那么创新序列应该是白噪声(狄拉克脉冲自相关)。

https://en.wikipedia.org/wiki/Innovation_(signal_processing)

下面是一些 MATLAB 代码,说明了一些白色序列的这些属性。

N = 1e5;
n1 = -1 + 2*rand(1,N); % uniform noise
n2 = n1 + -1 + 2*rand(1,N); % triangular noise
n3 = randn(1,N); % Gaussian noise

[c1,l1] = xcorr(n1); [c2,l2] = xcorr(n2); [c3,l3] = xcorr(n3);
figure(1), plot(l1,c1,l2,c2,l3,c3) # autocorrelation (Dirac delta)
figure(2), clf, hold on
pwelch(n1,kaiser(N/1000,10),N/2000) # power spectral density (constant)
pwelch(n2,kaiser(N/1000,10),N/2000)
pwelch(n3,kaiser(N/1000,10),N/2000)

卡尔曼滤波技术要求您可以对信号(您感兴趣的事物)如何随时间演变以及噪声如何破坏信号进行建模。

信号模型通常具有以下形式

x_k+1=Ax_k+Bw_kzk=Cx_k+v_k
在哪里

  • x_k是您当时的系统状态k,
  • w_k是描述统计数据以及您的状态变化有多活跃的过程噪声,
  • v_k是测量噪声,它描述了你的测量是如何被破坏的,并且
  • A,B,C,是描述三者之间关系的矩阵。您的应用程序将告诉您如何选择这些矩阵。我根本不懂质谱,所以我不能在这里给出指导。

然后可以应用卡尔曼滤波器方程并估计x_k获得。

请注意,这些方程的通常应用在技术上并不是平滑的。

卡尔曼滤波器有三种应用;

  • 过滤:获得当时状态的估计k使用所有测量z_k直到时间k.
  • 平滑:获得对时间状态的估计k使用所有测量z_k直到时间k+K(使用K未来的测量)。
  • 预测:获得当时状态的估计k使用所有测量z_k直到时间kK(展望未来K样品)。

在一些(很多?)假设下,卡尔曼滤波器是最优的

在此处输入图像描述