首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤器性能分析

过滤器性能分析
EN

Stack Overflow用户
提问于 2014-12-08 22:02:24
回答 1查看 202关注 0票数 0

我正在处理一些实验数据,在某种程度上,这些数据需要进行时间积分,然后进行高通滤波(以消除积分引入的低频干扰和不需要的直流分量)。

我的工作的目的与过滤无关,但我仍然想更详细地分析我正在使用的过滤器,以给出一些理由(例如,激励我为什么选择使用四阶滤波器而不是更高/更低的滤波器)。

这是我正在使用的过滤器:

代码语言:javascript
复制
delta_t = 1.53846e-04;
Fs = 1/delta_t;
cut_F = 8; 
Wn = cut_F/(Fs/2);
ftype = 'high';
[b,a] = butter(4,Wn,ftype);
filtered_signal = filtfilt(b,a,signal);

我已经在这里看过了:High-pass filtering in MATLAB来学习一些关于滤波器的知识(我从来没有上过信号处理的课程),我使用

代码语言:javascript
复制
fvtool(b,a)

要查看脉冲响应,请使用阶跃响应ecc。我用过的过滤器。

问题是我不知道如何“读懂”这些情节。

我要找些什么?

我如何了解一个过滤器是好是坏?(我没有任何关于滤波器性能的规范,我只知道我能接受的最低频率是5 Hz)

通过比较不同过滤器的哪些功能可以激励您做出选择?

EN

回答 1

Stack Overflow用户

发布于 2014-12-09 00:27:19

我看到你的Uni DSP类是关于滤波器的:)首先你需要记住的是,Matlab只能使用有限的值进行模拟,所以从技术上讲,你看到的结果都是离散的。在设计有限响应滤波器时,有4件事会影响你的过滤结果(或告诉你你的过滤器是好是坏),你需要了解/必须考虑这些事情:

1,滤波器的类型(即Hamming,Butterworth (您正在使用的滤波器),Blackman,Hanning .etc) 2,滤波器系数的数量(决定您的滤波器分辨率) 3,原始信号的采样频率(理想情况下,如果您有无限的采样频率,您可以拥有完美的滤波器;由于上述原因,在Matlab中不可能,但您可以通过将其设置得非常高来模拟其效果) 4,截止频率

你可以使用这4个参数,这样你的过滤器就可以做你想做的事情了。

所以理论来了:在你的主瓣宽度和滤波器的频谱泄漏方面有一个权衡。这个想法是,你有一些频率的信号,你想过滤掉不需要的(即你的直流噪声),并保留你想要的,但如果你想要的信号频率很低,它非常接近直流噪声怎么办。如果你有一个糟糕的滤波器设计,你将无法过滤出直流分量。为了设计一个好的滤波器,你需要找到你的滤波器系数,滤波器类型,甚至截止频率的最佳数量,以确保你的滤波器按你想要的那样工作。

这是我以前写的一个低通滤波器,你可以通过过滤不同类型的信号并绘制响应图来玩弄滤波器。

代码语言:javascript
复制
N = 21; %number of filter coefficients
fc = 4000;  %cut-off frequency
f_sampling = fs; %sampling freq
Fc = fc/f_sampling;
n = -(N-1)/2:(N-1)/2;
delta = [zeros(1,(N-1)/2) 1 zeros(1,(N-1)/2)];
h = delta - 2*Fc*sinc(2*n*Fc);
output = filter(h,1,yoursignal);

要绘制响应图,您需要使用DFT或FFT(在Matlab中)绘制频域输出,并查看由于泄漏等原因导致的信号失真情况。

代码语言:javascript
复制
NFFT=256;           % FFT length
output=1/N*abs(fft(output,NFFT)).^2;      % PSD estimate using FFT

这就是所谓的周期图,当你绘制时,你可能想对它做10*log10,这样看起来就更好了

希望你在课堂上表现好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27359672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档