- 积分
- 3287
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-5-10
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 夏夜 于 2017-6-3 20:02 编辑
这个问题有段时间了,来求助大家:
目的:想实现20-90day的带通滤波,附件中是一组涡动能数据(>0).
工具:matlab中的filtfilt滤波
问题:滤波的结果出现了负值。原始数据都是大于0的,滤波结果的负值怎么解释?
谢谢各位。
程序如下:
load ekei.mat
fh=90; %90day
hl=20; %
n=5; %阶数
dt=1; %采样间隔1day
wn_bandpass=[1/fh/(1/(2*dt)) 1/fl/(1/(2*dt))]; %转为频率
[filter_bandpassa,filter_bandpassb]=butter(n,wn_bandpass); % bandpass
fff_bandpass=filtfilt(filter_bandpassa,filter_bandpassb,ekei); %滤波结果,时间序列
plot(ekei)
hold on
plot(fff_bandpass,'r')
另,
大家可以尝试下附件中的lanczosfilter,可以做低通或者高通滤波,带通可以用低通减去高通得到。可以与已有结果比较,有问题欢迎继续讨论。
|
|