比较过滤后的数据:matlab 带通函数与过滤函数
comparing filtered data: matlab bandpass function vs filter function
我正在尝试分解带通函数如何进行过滤并在这条线上遇到困难(在创建过滤器之后)。
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
函数有什么帮助吗?或者我在分析中做错了什么?
您好:) 如果您输入edit signal.internal.filteringfcns.filterData
,您甚至可以查看filterData
函数中的内容。您将看到此函数(取决于选项 opts
)将
- 用
N/2
零填充信号并调用 filter
- 用信号
呼叫filtfilt
这在bandpass
的文档中也有描述。所以可能这个零填充解释了为什么 filter(opts.FilterObject,x)
的输出不同。
你在Matlab的文档中找不到这个函数的描述,因为它是信号处理工具箱内部函数的一部分。
我正在尝试分解带通函数如何进行过滤并在这条线上遇到困难(在创建过滤器之后)。
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
函数有什么帮助吗?或者我在分析中做错了什么?
您好:) 如果您输入edit signal.internal.filteringfcns.filterData
,您甚至可以查看filterData
函数中的内容。您将看到此函数(取决于选项 opts
)将
- 用
N/2
零填充信号并调用filter
- 用信号 呼叫
filtfilt
这在bandpass
的文档中也有描述。所以可能这个零填充解释了为什么 filter(opts.FilterObject,x)
的输出不同。
你在Matlab的文档中找不到这个函数的描述,因为它是信号处理工具箱内部函数的一部分。