求助:设计出了滤波器,怎么对已知信号滤波?
设计出了滤波器,怎么对已知信号滤波?这是我设计的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)
好像运行不出来.
请高手指教一下
要对附件中的信号进行滤波该怎么样修改? 看你发过的帖,看起来你是对图像进行滤波,是的话还是找一本matlab图像处理的书先看看
不是啊,我要对水底激光回波的数字信号滤波...
不是啊,我要对水底激光回波的数字信号滤波... 用filter sf = filter(b,1,s);%对信号s进行滤波,s是你要滤波的信号 sf = filter(b,1,s);%对信号s进行滤波,s是你要滤波的信号()中的b是什么意思啊? 哦,你是接着我的程序说的:)
我刚才试过了
好像程序没有错,可以得不到滤波后的信号图... 从fig文件里读数据,是不是搞错了呢,你试试在matlab里直接打开这个fig文件看看 如果是采集信号,那么量化误差是不是太大了?量程选择得不合适,分析结果的误差很大。 我觉得楼主是把一个图当数据来读,读出来的根本就是乱的。 谢谢大家,我修改了一下
I=open('tek0000.fig');
w=;b=fir1(40,w);%40阶,通带为0.2-0.4,
figure;winrect=;
sf = filter(b,1,I);
plot(sf)
但是好像滤波后的图像显示不出来 我不了解从fig文件中读出的是什么数据,该数据用plot的图和fig图一样吗? 楼主把这个文件帖出来吧,可能我孤陋寡闻,我不知道fig文件里怎么存数据的,呵呵 本帖最后由 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只是一个图的句柄。 原来的文件是一个dat文件,
我用:
FidRead=fopen('tek0000.dat','rb');
fread(FidRead,'int32')
读出了ans:是一列一维数组.
再用
plot(ans)
得到了再在用的fig文件,也就是上面的那个信号图.
不知道这个过程对不对?
我本来是做单片机和sopc的,可是学校把我的毕业设计分到了信号处理的这一方面.我也是刚接触这东西:)
页:
[1]
2