我有 2 个系统的 800000 个输入和输出数据样本数组。一种在 0 到 10 伏之间工作的烤箱中的系统。采样时间为 0.001 秒。
我必须确定这个系统的模型,但首先,鉴于数据显然很脏,我想过滤掉噪音。
如何使用 Matlab 的系统识别工具箱做到这一点?此外,如何估计截止频率以消除噪声?
先感谢您。
PS:鉴于这有点离题,请在此处发布您的答案,谢谢。
在最简单的情况下,噪声被建模为白高斯分布。如果您估计噪声能量,您可以通过调用
noise = A*randn(1,N);
这里,A 是幅度,N 是样本数。然后只取这个信号的 fft 并从输入信号的 fft 中减去它并取反 fft (ifft)
截止频率直接由您的采样时间或采样频率给出。您的采样频率为 1/(采样时间),并且必须至少是感兴趣的最高频率的 2 倍: http ://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem
f_s = 1/T_s >= 2*f_cutOff
然后,在您的采样频率足够高的情况下,您可以简单地进行相同的频域处理。最简单的方法是查看频域(使用函数 fft() )。并首先检查您有高噪声组件的位置。然后过滤掉这些分量(归零),然后将其转换回时域(使用函数 ifft() )。