鱼在在藻 发表于 2007-5-27 01:53

求助:设计出了滤波器,怎么对已知信号滤波?

设计出了滤波器,怎么对已知信号滤波?
这是我设计的40阶带通滤波器
w=;b=fir1(40,w);
figure;winrect=;
freqz(b,1,512)

运行无误,但我要对附件中的信号进行滤波,
像这样编程:
FidRead=fopen('tek0000.fig');
fread(FidRead,'int32');
w=;b=fir1(40,w);
figure;winrect=;
freqz(b,1,512)
好像运行不出来.

请高手指教一下
要对附件中的信号进行滤波该怎么样修改?

yangzj 发表于 2007-5-27 11:54

看你发过的帖,看起来你是对图像进行滤波,是的话还是找一本matlab图像处理的书先看看

鱼在在藻 发表于 2007-5-28 10:29

不是啊,我要对水底激光回波的数字信号滤波...

不是啊,我要对水底激光回波的数字信号滤波...

yangzj 发表于 2007-5-28 10:55

用filter

tujian510 发表于 2007-5-28 15:30

sf = filter(b,1,s);%对信号s进行滤波,s是你要滤波的信号

鱼在在藻 发表于 2007-5-28 18:08

sf = filter(b,1,s);%对信号s进行滤波,s是你要滤波的信号

()中的b是什么意思啊?

鱼在在藻 发表于 2007-5-28 18:11

哦,你是接着我的程序说的:)

我刚才试过了

好像程序没有错,可以得不到滤波后的信号图...

yangzj 发表于 2007-5-28 19:47

从fig文件里读数据,是不是搞错了呢,你试试在matlab里直接打开这个fig文件看看

w89986581 发表于 2007-5-28 19:54

如果是采集信号,那么量化误差是不是太大了?量程选择得不合适,分析结果的误差很大。

yangzj 发表于 2007-5-28 20:04

我觉得楼主是把一个图当数据来读,读出来的根本就是乱的。

鱼在在藻 发表于 2007-5-29 22:28

谢谢大家,我修改了一下
I=open('tek0000.fig');
w=;b=fir1(40,w);%40阶,通带为0.2-0.4,
figure;winrect=;
sf = filter(b,1,I);
plot(sf)
但是好像滤波后的图像显示不出来

songzy41 发表于 2007-5-30 08:28

我不了解从fig文件中读出的是什么数据,该数据用plot的图和fig图一样吗?

yangzj 发表于 2007-5-30 11:00

楼主把这个文件帖出来吧,可能我孤陋寡闻,我不知道fig文件里怎么存数据的,呵呵

yangzj 发表于 2007-5-30 11:03

本帖最后由 wdhd 于 2016-9-6 13:57 编辑

原帖由 鱼在在藻 于 2007-5-29 22:28 发表
谢谢大家,我修改了一下
I=open('tek0000.fig');
w=;b=fir1(40,w);%40阶,通带为0.2-0.4,
figure;winrect=;
sf = filter(b,1,I);
plot(sf)
但是好像滤波后的图像显示不出来
你还是先弄清楚你的数据是怎么存的,你这样打开得到的I只是一个图的句柄。

鱼在在藻 发表于 2007-5-30 23:57

原来的文件是一个dat文件,
我用:
FidRead=fopen('tek0000.dat','rb');
fread(FidRead,'int32')
读出了ans:是一列一维数组.

再用
plot(ans)
得到了再在用的fig文件,也就是上面的那个信号图.
不知道这个过程对不对?
我本来是做单片机和sopc的,可是学校把我的毕业设计分到了信号处理的这一方面.我也是刚接触这东西:)
页: [1] 2
查看完整版本: 求助:设计出了滤波器,怎么对已知信号滤波?