求教使用fft和ifft的滤波程序
求教达人偶希望实现:
对包含谐波的离散数据信号,通过fft和ifft变换,实现保留基波、滤除谐波的目的
程序是什么样子的?
请不吝赐教。
谢谢。 或者换一个问法:
偶现在希望对一组包含谐波的离散信号数据滤波
要求只保留50Hz基波,滤除其他所有频段的波形
输出可以是离散的,也可是连续波形信号
但需要明确50Hz信号的有效值
请问达人
用什么方式实现这样的要求比较方便?
谢谢。 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 编辑 ] F(find(F>5))=0
这句怎么理解?
谢谢 原帖由 zsy1026 于 2007-6-18 14:57 发表 http://www.chinavib.com/forum/images/common/back.gif
F(find(F>5))=0
这句怎么理解?
谢谢
help find F是复数,find(F>5)是什么意思?
回复 #6 wgun 的帖子
程序是我写的,不过当时看到滤波效果还可以,所以没有细想物理意义上的解释!F是复数和常数比较时虚部就被忽略掉了。信号处理我基础也不好,版友可以关于这个帖子:http://forum.vibunion.com/forum/thread-48557-1-1.html
应该会后得到满意的答案的 这样做引起的信号畸变改怎么处理啊?
页:
[1]