声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 21618|回复: 24

[滤波] 高通滤波在matlab中如何实现啊?

[复制链接]
发表于 2008-11-14 11:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
有一个信号,需要对它进行高通滤波,在matlab中如何实现呢?
用什么语句呢?求高手指点一下!非常感谢!
回复
分享到:

使用道具 举报

发表于 2008-11-14 12:51 | 显示全部楼层
用滤波器工具箱FDAtool,一切都解决
 楼主| 发表于 2008-11-14 15:23 | 显示全部楼层

请问matlab里自带有这个工具箱么?

请问matlab里自带有这个工具箱么?在哪里怎么找呢?谢谢!我很弱。。。
发表于 2008-11-14 15:57 | 显示全部楼层
help filter, butter, cheby1,cheby2, ellip ...
 楼主| 发表于 2008-11-14 18:14 | 显示全部楼层

那么高通滤波是哪个函数呢?

那么要对一个信号进行高通滤波应该用您说的这些函数中的哪个呢?谢谢!
发表于 2008-11-14 22:43 | 显示全部楼层

回复 5楼 weiyuperfect 的帖子

高通是highpass吧!?
全部都可lowpass, bandpass, highpass, and bandstop!
发表于 2008-11-15 18:20 | 显示全部楼层
这几个函数(butter, cheby1,cheby2, ellip)都可以设计高通滤波器的,例如:
[b,a]=butter(n,Wn,'high');
给出高通滤波器的系数。
 楼主| 发表于 2008-11-15 20:58 | 显示全部楼层

请问这里的变量各代表什么呢?

不好意思,在下很弱,
请问这里的n是采样点数,Wn是信号值是么?high是代表高通么?还是要具体赋值?
算出来的b和a分别是什么呢?
谢谢告知,对您们表示敬意!
发表于 2008-11-16 08:27 | 显示全部楼层
在表达式中
[b,a]=butter(n,Wn,'high');
n是滤波器的阶数,Wn是归一化的截止频率,high是代表高通。b和a是滤波器系数。请楼主用help butter看一下。
 楼主| 发表于 2008-11-16 10:27 | 显示全部楼层

那么如何进行80hz的高通滤波,如何得到滤波后的信号呢?

其实我的意思是想问信号x,时程为6s;采样率fs=100hz;
请问如何对信号x进行80hz的高通滤波?如何得到滤波后的信号呢?
用什么命令具体怎么使用呢?
楼上能帮我写一下语句么?
我比较弱,抱歉,给您添麻烦了。
发表于 2008-11-16 11:45 | 显示全部楼层
不懂采样频率才100hz, 表示可得到之最高频率仅50Hz! 为何对80hz以上(高通滤波)的频率有兴趣?!
 楼主| 发表于 2008-11-16 14:10 | 显示全部楼层

写错了

写错了,抱歉,应该是30hz;
我只是举个例子;
其实我的意思是想问信号x,时程为6s;采样率fs=100hz;
请问如何对信号x进行30hz的高通滤波?如何得到滤波后的信号呢?
用什么命令具体怎么使用呢?
楼上能帮我写一下语句么?
我比较弱,抱歉,给您添麻烦了。
发表于 2008-11-16 15:20 | 显示全部楼层
本帖最后由 VibInfo 于 2016-11-7 15:56 编辑
原帖由 weiyuperfect 于 2008-11-16 14:10 发表
写错了,抱歉,应该是30hz;
我只是举个例子;
其实我的意思是想问信号x,时程为6s;采样率fs=100hz;
请问如何对信号x进行30hz的高通滤波?如何得到滤波后的信号呢?
用什么命令具体怎么使用呢?
楼上能帮我写 ...

fs=100;
fc=30;
[b,a]=butter(4,0.6,'high');
[h,w]=freqz(b,a);
plot(w/pi*fs/2,abs(h)); grid;
title('Amplitude Response');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
figure;
x=randn(1,fs*6);
y=filter(b,a,x);
subplot 211; plot(x); title('Original Signal');
subplot 212; plot(y); title('Output of High-pass filter');
其中信号是用随机数产生的,长6s。笫1张图是高通滤波器的幅值响应曲线,笫2张图是信号滤波前后的波形。
wy1a.jpg
wy1b.jpg
发表于 2008-11-16 15:38 | 显示全部楼层
fs=100; t=[0:1/fs:6]; x=sin(2*pi*0.5*t)+sin(2*pi*15*t)+sin(2*pi*40*t);
nOrderF = 6; [Fb,Fa]=butter(nOrderF,2*30/fs,'high'); xf = filtfilt(Fb,Fa,x);
xh=sin(2*pi*40*t);
subplot(311); plot(t,x); ylabel('original')
subplot(312); plot(t,xf);  ylabel('filter')
subplot(313); plot(t,xh);

**** 刚刚试了下, 发帖完才发现宋老师已经回了! 对不起! 怎麽删帖? ****

[ 本帖最后由 ChaChing 于 2008-11-16 15:44 编辑 ]
发表于 2008-11-17 21:39 | 显示全部楼层
这些问题自己
help  butter, cheby1,cheby2, ellip 一下
就都可以出来了。

有一本实验书叫做数字信号处理 -实验指导书  这本书的例子一个个看下来,
对信号处理就会有一个很清晰的概念~~
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 11:41 , Processed in 0.060280 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表