zsy1026 发表于 2007-6-18 10:36

求教使用fft和ifft的滤波程序

求教达人
偶希望实现:
对包含谐波的离散数据信号,通过fft和ifft变换,实现保留基波、滤除谐波的目的
程序是什么样子的?
请不吝赐教。
谢谢。

zsy1026 发表于 2007-6-18 10:41

或者换一个问法:

偶现在希望对一组包含谐波的离散信号数据滤波
要求只保留50Hz基波,滤除其他所有频段的波形
输出可以是离散的,也可是连续波形信号
但需要明确50Hz信号的有效值

请问达人
用什么方式实现这样的要求比较方便?
谢谢。

花如月 发表于 2007-6-18 12:20

clear;
w=100*pi;
t=0:0.0001:0.04;
y=sin(w*t)+sin(2*w*t)+sin(3*w*t);%定义原始信号
F=fft(y);
F(find(F>5))=0;%滤除高频分量
y1=ifft(F);
figure
subplot(121),plot(t,y);title('原信号')
subplot(122),plot(t,y1);title('滤波后')
原信号包含100HZ和150HZ的谐波,滤除后只有50HZ的正弦波

[ 本帖最后由 花如月 于 2007-6-18 12:22 编辑 ]

zsy1026 发表于 2007-6-18 14:57

F(find(F>5))=0

这句怎么理解?
谢谢

eight 发表于 2007-6-18 15:47

原帖由 zsy1026 于 2007-6-18 14:57 发表 http://www.chinavib.com/forum/images/common/back.gif
F(find(F>5))=0

这句怎么理解?
谢谢

help find

wgun 发表于 2007-7-14 10:16

F是复数,find(F>5)是什么意思?

花如月 发表于 2007-7-15 14:29

回复 #6 wgun 的帖子

程序是我写的,不过当时看到滤波效果还可以,所以没有细想物理意义上的解释!F是复数和常数比较时虚部就被忽略掉了。信号处理我基础也不好,版友可以关于这个帖子:
http://forum.vibunion.com/forum/thread-48557-1-1.html
   应该会后得到满意的答案的

倔强的笨蛋 发表于 2012-11-12 16:30

这样做引起的信号畸变改怎么处理啊?
页: [1]
查看完整版本: 求教使用fft和ifft的滤波程序