matlab中filter的用法 filter怎么用

1-D digital filter
Syntaxy = filter(b,a,X)[y,zf] = filter(b,a,X)[y,zf] = filter(b,a,X,zi)y = filter(b,a,X,zi,dim)[...]
= filter(b,a,X,[],dim)DescriptionThe filter function filters a data sequence
using a digital filter which works for both real and complex inputs.
The filter is a direct form II transposed implementation
of the standard difference equation (see "").y = filter(b,a,X) filters
the data in vector X with the filter described
by numerator coefficient vector b and denominator
coefficient vector a. If a(1) is
not equal to 1, filter normalizes
the filter coefficients by a(1). If a(1) equals 0, filter returns
an error.If X is a matrix, filter operates
on the columns of X. If X is
a multidimensional array, filter operates on the
first nonsingleton dimension.[y,zf] = filter(b,a,X) returns
the final conditions, zf, of the filter delays.
If X is a row or column vector, output zf is
a column vector of max(length(a),length(b))-1.
If X is a matrix, zf is an array
of such vectors, one for each column of X, and
similarly for multidimensional arrays.[y,zf] = filter(b,a,X,zi) accepts
initial conditions, zi, and returns the final conditions, zf,
of the filter delays. Input zi is a vector of length max(length(a),length(b))-1,
or an array with the leading dimension of size max(length(a),length(b))-1 and
with remaining dimensions matching those of X.y = filter(b,a,X,zi,dim) and [...]
= filter(b,a,X,[],dim) operate across the dimension dim.ExamplesYou can use filter to find a running average
without using a for loop. This example finds the
running average of a 16-element vector, using a window size of 5. data = [1:0.2:4]';
windowSize = 5;
filter(ones(1,windowSize)/windowSize,1,data)
3.6000More AboutThe filter function is implemented as a
direct form II transposed structure,a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)where n-1 is the filter order, which handles
both FIR and IIR filters , na is the feedback filter order,
and nb is the feedforward filter order. Due to
normalization, assume a(1) = 1.or
The operation of filter at sample m is
given by the time domain difference equations
The input-output description of this filtering operation in
the z-transform domain is a rational transfer function,
References[1] Oppenheim, A. V. and R.W. Schafer. Discrete-Time
Signal Processing, Englewood Cliffs, NJ: Prentice-Hall,
1989, pp. 311-312. See Also |
欢迎转载,转载请注明来自:
与matlab filter用法相关的文章
版权归所有|
友链等可联系 |查看: 39523|回复: 10|关注: 0
用matlab实现低通滤波,filter函数的用法
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
下面是我编的一段IIR数字低通滤波的程序,filter以后的输出跟输入相比没有变化,高频波没有被滤掉!请各位大神指点一二,感激涕零~~~
Fs=8000;%滤波器参数设置
[n,Wn]=ellipord(Wp/(Fs/2),Ws/(Fs/2),Rp,Rs);& & %确定滤波器的最小阶数;
[num,den]=ellip(n,Rp,Rs,Wn);
[H,W]=freqz(num,den);
f=W/pi*(Fs/2);
t=0:1/.005-1/240000);
x=cos(2*pi*800*t)+cos(2*pi*3000*t);
y=filter(num,den,x);
subplot(311)
plot(f,20*log10(abs(H)));grid
subplot(312)
plot(t,x);
axis([0 0.005 -2 2]);grid
subplot(313)
plot(t,y);
axis([0 0.005 -2 2]);grid
<h1 style="color:# 麦片财富积分
求教!求教!求教!
<h1 style="color:# 麦片财富积分
songzy41 发表于
如果LZ不希望有滤波器的延迟,可用filtfilt函数进行滤波.
论坛优秀回答者
关注者: 431
如果LZ不希望有滤波器的延迟,可用filtfilt函数进行滤波.
<h1 style="color:# 麦片财富积分
求助啊求助啊~~~
论坛优秀回答者
关注者: 431
LZ对时间的设置为
t=0:1/.005-1/240000);
采样频率为240000,而滤波器的Fs=8000,两者对不上。
<h1 style="color:# 麦片财富积分
songzy41 发表于
LZ对时间的设置为
t=0:1/-1/240000);
采样频率为240000,而滤波器的Fs=8000,两者对不上。 ...
谢谢你,谢谢啊~~~
<h1 style="color:# 麦片财富积分
songzy41 发表于
LZ对时间的设置为
t=0:1/-1/240000);
采样频率为240000,而滤波器的Fs=8000,两者对不上。 ...
你好,滤波之后波形有延迟,你是怎么处理的?不好意思啊,又麻烦你了~
<h1 style="color:# 麦片财富积分
折腾了一天也没找出问题,求各位大神点播,感激涕零啊
<h1 style="color:# 麦片财富积分
kimad 发表于
求教!求教!求教!
有啥可以帮你的
站长推荐 /2
基于模型设计的需求管理和验证
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区请问在Matlab中filter的用法是什么?
请问在Matlab中filter的用法是什么?
09-03-04 &
filter(A,a,C),此处只说明a为单个值的情况,a为单个值,即为权值,在最终结果上乘上这个值即可,这是个滤波器,将C向量左右向反转后,依次经过A,对应值相乘后再相加,。。相当于我们所说的卷积运算。
请登录后再发表评论!关于使用MATLAB做FFT filter滤波【matlab吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:180,076贴子:
关于使用MATLAB做FFT filter滤波收藏
我有一个很白痴的问题。就是我有一组数据,差不多就是X[1000000],Y[1000000]这样的数据,X是时间列,存的就是时间,0.001,0.002……Y里边是某一个物理量的数据。我想对数据做相当于origin里边的FFT filter,滤波到某一个频率,比如扔掉5Hz以上的。怎么做呢?求指教~
免费下载官方MATLAB中文试用版,让工程师和科学家更高效地进行科学计算.
直接把变换后的5Hz以上的数据置零即可
首先谢谢你的回答,然后你说的那个我也知道的。然后是我不知道哪些数字是5hz以上的。FFT变换之后的数据是整个一个数组里的。。横轴应该是频率轴吧,然后频率轴有哪些频率的值呢?
对,建议你先去看一看FFT的算法;FFT可以进行简单滤波。下面针对你的问题解答一下。
fft处理实际上是傅里叶变换的一种算法,他算出的结果是以频率作为横轴,Y轴是幅值情况,因此FFT算出的图像称为幅频特性图;Y轴数值取模方即得功率谱。
fft滤波的是这样操作的,首先对原信号进行FFT变换,得到频域的幅值函数,然后再确定需要的频段,将函数中不需要的频率段幅值置零;然后进行逆傅里叶变换,即得到滤波后的图像。
你所说的问题有一个处理办法,利用循环做,先设定阈值,然后用循环依次检测数据,滤掉不需要的频率。你可以参考一下网上的FFT滤波函数来写
祝你早日成功
嗯~我已经解决啦,谢谢你!
登录百度帐号推荐应用温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(13930)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'MATLAB filter2',
blogAbstract:'1fftshift,fftshift(M),是作用是将,M矩阵的左右对换,上下对换..
filter2(B,X),B为滤波器.X为要滤波的数据,这里将B放在X上,一个一个移动进行模板滤波. 可以看出,这里是将d对c 进行模板滤,重叠区相*,然后相加,得到的值,38=4*1+2*3+5*2+3*6; 24=4*6;.........这时默认滤婆器的左上角,首先将与数据的左上角相重合,然后移动模板进行滤波.还有其它设置.filter2(c,d ,\'same\')与上一致.same是默认的.filter2(c,d,\'valid\'),这时默认滤婆器的左上角,首先将与数据的左上角相重合,然后移动模板进行滤波.但是要保证移动过程中,滤波器所有地方都要与数据重合,都是全部重合的,filter(c,d,\'full\')这与same相反,它首先使滤波器的右下角与数据的左上角重合,然后移动模板进行滤波.',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:2,
mainCommentCount:2,
recommendCount:5,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 matlab中filter 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信