如何过滤数据以消除matlab中的噪音?

时间:2013-03-22 10:17:17

标签: matlab

我有2个阵列,包含800000个系统的输入和输出数据样本。该系统采用0至10伏特的烤箱。采样时间为0.001秒。

我必须确定这个系统的模型,但首先,鉴于数据显然很脏,我想过滤噪音。

如何使用Matlab的系统识别工具箱进行操作? 此外,我如何估算截止频率以消除噪音?

提前谢谢。

PS:鉴于这有点偏离主题,请发表您的回答here谢谢。

2 个答案:

答案 0 :(得分:0)

截止频率直接由采样时间或采样频率给出。 您的采样频率是1 /(采样时间),并且必须至少为2个感兴趣的最高频率因子: http://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem

f_s = 1 / T_s> = 2 * f_cutOff

在采样频率足够高的情况下,您可以简单地进行相同的频域处理。最简单的方法是查看频域(使用函数fft())。并首先检查高噪声成分的位置。然后过滤掉这些组件(归零),然后将其转换回时域(使用函数ifft())。

答案 1 :(得分:0)

在最简单的情况下,噪声被建模为白高斯分布。如果估计噪声能量,可以通过调用

来产生虚拟噪声
noise = A*randn(1,N); 

这里,A是幅度,N是样本计数。然后只取这个信号的fft并从输入信号的fft中减去它并取反fft(ifft)