MATLAB:在阵列中应用低通或高通滤波器

问题描述:

有没有简单的方法在MATLAB中将低通或高通滤波器应用到数组中?我有点被MATLAB的强大功能(或者数学的复杂性?)所困扰,并且需要一个简单的功能或一些指导,因为我无法从文档或搜索网络中找到它。MATLAB:在阵列中应用低通或高通滤波器

当然,请看filter函数。

如果你只需要一个单极低通滤波器,这是

xfilt = filter(a, [1 a-1], x); 

其中a = T/τ,T =采样之间的时间,和τ(TAU)是滤波器的时间常数。

这里有相应的高通滤波器:

xfilt = filter([1-a a-1],[1 a-1], x); 

如果你需要设计一个过滤器,并有信号处理工具箱许可证,有a bunch of functions,看fvtoolfdatool

+0

我知道那会很简单。非常感谢! – Christian 2009-11-23 16:34:31

您可以使用butter()函数在运行时设计低通巴特沃斯滤波器,然后将其应用于信号。

fc = 300; % Cut off frequency 
fs = 1000; % Sampling rate 

[b,a] = butter(6,fc/(fs/2)); % Butterworth filter of order 6 
x = filter(b,a,signal); % Will be the filtered signal 

高通和带通滤波器也可以用这种方法。见https://www.mathworks.com/help/signal/ref/butter.html

+0

警告。这需要信号处理工具箱。 – rayryeng 2017-01-24 14:51:11