weiyuperfect 发表于 2008-11-14 11:05

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

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

fighterjzh 发表于 2008-11-14 12:51

用滤波器工具箱FDAtool,一切都解决

weiyuperfect 发表于 2008-11-14 15:23

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

请问matlab里自带有这个工具箱么?在哪里怎么找呢?谢谢!我很弱。。。

ChaChing 发表于 2008-11-14 15:57

help filter, butter, cheby1,cheby2, ellip ...

weiyuperfect 发表于 2008-11-14 18:14

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

那么要对一个信号进行高通滤波应该用您说的这些函数中的哪个呢?谢谢!

ChaChing 发表于 2008-11-14 22:43

回复 5楼 weiyuperfect 的帖子

高通是highpass吧!?
全部都可lowpass, bandpass, highpass, and bandstop!

songzy41 发表于 2008-11-15 18:20

这几个函数(butter, cheby1,cheby2, ellip)都可以设计高通滤波器的,例如:
=butter(n,Wn,'high');
给出高通滤波器的系数。

weiyuperfect 发表于 2008-11-15 20:58

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

不好意思,在下很弱,
请问这里的n是采样点数,Wn是信号值是么?high是代表高通么?还是要具体赋值?
算出来的b和a分别是什么呢?
谢谢告知,对您们表示敬意!

songzy41 发表于 2008-11-16 08:27

在表达式中
=butter(n,Wn,'high');
n是滤波器的阶数,Wn是归一化的截止频率,high是代表高通。b和a是滤波器系数。请楼主用help butter看一下。

weiyuperfect 发表于 2008-11-16 10:27

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

其实我的意思是想问信号x,时程为6s;采样率fs=100hz;
请问如何对信号x进行80hz的高通滤波?如何得到滤波后的信号呢?
用什么命令具体怎么使用呢?
楼上能帮我写一下语句么?
我比较弱,抱歉,给您添麻烦了。

ChaChing 发表于 2008-11-16 11:45

不懂采样频率才100hz, 表示可得到之最高频率仅50Hz! 为何对80hz以上(高通滤波)的频率有兴趣?!

weiyuperfect 发表于 2008-11-16 14:10

写错了

写错了,抱歉,应该是30hz;
我只是举个例子;
其实我的意思是想问信号x,时程为6s;采样率fs=100hz;
请问如何对信号x进行30hz的高通滤波?如何得到滤波后的信号呢?
用什么命令具体怎么使用呢?
楼上能帮我写一下语句么?
我比较弱,抱歉,给您添麻烦了。

songzy41 发表于 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;
=butter(4,0.6,'high');
=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张图是信号滤波前后的波形。

ChaChing 发表于 2008-11-16 15:38

fs=100; t=; x=sin(2*pi*0.5*t)+sin(2*pi*15*t)+sin(2*pi*40*t);
nOrderF = 6; =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 编辑 ]

Pole 发表于 2008-11-17 21:39

这些问题自己
helpbutter, cheby1,cheby2, ellip 一下
就都可以出来了。

有一本实验书叫做数字信号处理 -实验指导书这本书的例子一个个看下来,
对信号处理就会有一个很清晰的概念~~
页: [1] 2
查看完整版本: 高通滤波在matlab中如何实现啊?