matlab对图像频谱滤波,应用Matlab对图像信号进行频谱分析及滤波

subplot(4,1,2),plot(f,abs(Xf4)*2/L,'r-');title('加入噪声后灰度图像幅度谱');

subplot(4,1,3);plot(f,abs(Xf6)*2/L,'r-');title('IIR滤波器滤波后灰度图像幅度谱'); subplot(4,1,4);plot(f,abs(Xf8)*2/L,'r-');title('FIR滤波器滤波后灰度图像幅度谱'); figure(3);

subplot(3,2,1);plot(f,mag);grid;title('IIR滤波器幅度响应');xlabel('f/Hz');ylabel('幅度'); subplot(3,2,2);plot(f,mag2);grid;title('FIR滤波器幅度响应');xlabel('f/Hz');ylabel('幅度'); subplot(3,2,3);plot(f,pha);grid;title('IIR滤波器相位响应');xlabel('f/Hz');ylabel('相位'); subplot(3,2,4);plot(f,pha1);grid;title('FIR滤波器相位响应');xlabel('f/Hz');ylabel('相位'); subplot(3,2,5);plot(f,mag1);grid;title('IIR滤波器幅度响应(dB)');xlabel('f/Hz');ylabel('幅度/dB');

subplot(3,2,6);plot(f,mag3);grid;title('FIR滤波器幅度响应(dB)');xlabel('f/Hz');ylabel('幅度/dB');

实验结果及分析

5

6

从实验结果来看,滤波效果还是相当不错的。在满足相同的指标情况下FIR滤波器所需要的阶数远高于IIR滤波器,但是FIR滤波器的相位响应是线性的,滤波器通带群延时是常数,而IIR滤波器是非线性的,滤波器通带群延时非常数。FIR滤波器产生的群延迟样本数可以计算出来,并进行调整。IIR滤波器则不可以。 调整代码为:

grd=grpdelay(b1,1,f*2*pi/fs);%计算群延时

K=round(grd(1));%修正因子(冒号操作做索引时,需要整型数操作) x8=[x8((K+1):L),x8(1:K)];%对群延迟进行修正 FIR滤波器滤波后图像群延迟调整前后对比:

将两种滤波器滤波后的图片放大后对比:

对比可发现IIR滤波器滤波后使图片产生了重影,而FIR滤波器没有明显失真。

7

对于语音系统,対相位要求不是主要的,因此,选用IIR滤波器较为合适,可以充分发挥其经济和高效的特点;图像信号和数据传输等以波形携带信息的系统对线性相位要求较高,因此采用FIR滤波器较好。

实验总结

通过本次实验,加深了我们对信号频谱分析和数字滤波器设计的知识的理解,并对滤波器有了更进一步的认识,掌握了利用滤波器处理图片的方法,理解了设计指标的工程概念,认识到了不同类型滤波器的特性和适用范围。实验中,我们对Matlab中一些函数的用法还不清楚,后面经过查资料以及尝试后均得到了解决。

总的来说,本次实验基本上达到了预期的实验效果,是一次比较成功的实验。

8

你可能感兴趣的:(matlab对图像频谱滤波)