【发布时间】:2020-03-10 21:22:01
【问题描述】:
我试图分解带通函数如何进行过滤并在这条线上遇到困难(在创建过滤器之后)。
y = signal.internal.filteringfcns.filterData(x,opts);
x 是数据,opts 具有过滤器结构。
我一直在环顾四周,找不到任何关于 signal.internal.filteringfcns.filterData 函数的信息。我将该输出与filter(opts.FilterObject,x) 进行了比较,它们并不相同。
接下来是一个最小的工作示例 (data2.txt)。
load('data2.txt')
srate=64;
freqrange=[0.4 3.5];
var{1}=freqrange;
var{2}=srate;
m=numel(data2);
x=data2;
R=0.1;%10% of signal
Nr=50;
NR=min(round(m*R),Nr);%At most 50 points
x1=2*x(1)-flipud(x(2:NR+1));%maintain continuity in level and slope
x2=2*x(end)-flipud(x(end-NR:end-1));
x=[x1;x;x2];
opts=signal.internal.filteringfcns.parseAndValidateInputs(x,'bandpass',var);
opts = designFilter(opts);
xx = signal.internal.filteringfcns.filterData(x,opts);
x_fil=xx(NR+1:end-NR);
xx = filter(opts.FilterObject,x);
x_fil2=xx(NR+1:end-NR);
plot([data x_fil x_fil2])
legend('raw','filterData','filter')
剧情如下:
这是两个滤波信号的 psd 图(首先是 filtData)。
那么,对这个 ...filtData 函数有什么帮助,或者我在分析中做错了什么?
【问题讨论】:
-
我会删除您从
bandpass.m复制的子函数,因为这是来自 The MathWorks 的受版权保护的代码。 -
@rinkert 新问题:stackoverflow.com/questions/58958392/…
标签: matlab filtering signal-processing bandpass-filter