拉曼光谱的尖峰噪声
拉曼光谱采集的过程中,常常会受到环境中 α \alpha α射线及 γ \gamma γ射线的影响,光谱仪在采集数据时,容易产生峰形尖锐的噪声,成为尖峰。
移动中值滤波法
原理:
对于数据中的每个点,取其左右一定大小的范围为“窗口”,选中的这个值将被窗口内的中值代替。
第一步,确定待处理的数据和滤波窗口大小。
待处理的数据肯定是确定的喽,它应该作为一个数组被输入;
窗口大小是一个超参数,自己设置,需要注意的是,窗口大小一定是一个基数;
另外,不同的窗口大小最终滤波的效果也会不一样,一般从3开始取,查看不同窗口大小的滤波效果,最终确定最符合自己要求的那个。
第二步,填充原始的数据。
输入的数据和输出的属于应该保持相同的长度,这种情况下会出现一个问题,就是前几个数据(和最后几个数据)的窗口可能只有右边的部分(或左边的部分),所以我们应该根据窗口大小来填充原始的数组。对于某个点,它左右两边应该有的长度是:
(窗口大小
−
1
)
/
2
(窗口大小-1)/2
(窗口大小−1)/2,这也是整个数组左右两边需要填充的长度,然后以边缘值也就是最左边和最右边那个值分别填充左右两边。
代码如下:
for i = 1:padding
arr = [y(1); arr; y(length(y))];
end
第三步,计算滤波后的值。
移动窗口,从原始列表的第一个值读取到最后一个值,用窗口内的中值代替本值。
代码如下:
for i = padding+1:length(arr)-padding
MWM_X(i-padding) = median(arr(i-padding:i+padding)); %#ok<AGROW>
end
效果展示
MWM滤波前:
MWM滤波后:
可以明显发现光谱的尖峰噪音大大消除。