基于MATLAB的FIR滤波器的图像去噪设计

「爱情、让人受尽委屈。」 2022-09-08 03:50 384阅读 0赞

一、实验目的

1.学会MATLAB的使用,掌握MATLAB的程序设计方法;

2.掌握数字信号处理的基本概念、基本理论和基本方法;

  1. 在MATLAB环境下产生噪声信号;

4.掌握MATLAB设计FIR数字滤波器的窗函数设计方法;

5.学会用MATLAB对图像进行分析和处理。

二、设计原理

1.利用窗函数法设计FIR滤波器的原理
如果所希望的滤波器的理想的频率响应函数为

v2-aaf3d1dac97cbc34b679da22c0f1f8bb\_b.jpg

,则其对应的单位脉冲响应为

v2-cb9524a4108f962c029099d6d4a2ca83\_b.png

(2.1)

窗函数设计法的基本原理是用有限长单位脉冲响应序列逼近

v2-9cf1f09d34ea8659d5bea9ef10ed51c6\_b.png

。由于

v2-9cf1f09d34ea8659d5bea9ef10ed51c6\_b.png

往往是无限长序列,而且是非因果的,所以用窗函数

v2-aa5fe71f390673b9475f16214c9f8167\_b.png

v2-9cf1f09d34ea8659d5bea9ef10ed51c6\_b.png

截断,并进行加权处理,得到:

v2-7c5009bb557d24c0fd1d7bd97b075d88\_b.png

(2.2)

v2-cb9524a4108f962c029099d6d4a2ca83\_b.png

就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数

v2-24effa184b0ca94efcda023e6fa9eda5\_b.png

v2-f3ab30a9624ea43268b6e219cfc92f3e\_b.jpg

(2.3)

式(2.3)中,N为所选窗函数

v2-aa5fe71f390673b9475f16214c9f8167\_b.png

的长度。

我们知道,用窗函数法设计的滤波器性能取决于窗函数

v2-aa5fe71f390673b9475f16214c9f8167\_b.png

的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表2.1。

表2.1 各种窗函数的基本参数














































窗函数 旁瓣峰值幅度/dB 过渡带宽 阻带最小衰减/dB
矩形窗 -13 4π/N -12
三角形窗 -25 8π/N -25
汉宁窗 -31 8π/N -44
哈明窗 -41 8π/N -53
布莱克曼窗 -57 12π/N -74
凯塞窗(α=7.865) -57 10π/N -80

v2-cf489c57c3077907961b0a046946bd16\_b.jpg

v2-bd01b01236b0c830949c7417771c5f86\_b.jpg

  1. 4、程序如下:
  2. I = imread('eight.tif');
  3. J = imnoise(I,'gaussian',0.1);
  4. figure(1) ;imshow(I);title('原始图像');
  5. figure(2);imshow(uint8(J));title('加噪图像');
  6. %窗函数法
  7. fp=1000;fs=2000;Fs=10000;
  8. wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;
  9. B=ws-wp;N=ceil(12*pi/B);wc=(wp+ws)/2/pi;
  10. hn=fir1(N-1,wc);
  11. n=0:N-1;
  12. figure(3)
  13. subplot(1,2,1);stem(n,hn,'.');title('h(n)波形'); grid on;
  14. [hw,w]=freqz(hn,1);
  15. subplot(1,2,2);
  16. plot(w/pi,20*log10(abs(hw)));title('频率响应hw');grid on;
  17. axis([0 1 -100 4]);
  18. yt=filter2(hn,J);
  19. figure(4);imshow(yt,[]);title('滤波后图像1');
  20. %用等波纹最佳逼近方法绘制滤波器损耗函数以及输出信号波形
  21. fp=120;fs=150;Ap=0.2;As=60;Fs=1000;
  22. wc=(fs+fp)/Fs;
  23. B=2*pi*(fs-fp)/Fs;
  24. Nb=ceil(11*pi/B);
  25. fb=[fp,fs];m=[1,0];
  26. dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];
  27. [Ne,fo,mo,W]=remezord(fb,m,dev,Fs); hn=remez(Ne,fo,mo,W);
  28. yet=filter2(hn,J);
  29. [H,W]=freqz(hn);
  30. m=abs(H);
  31. figure(5);subplot(3,1,1);
  32. plot(W/pi,20*log10(m/max(m)));grid on;
  33. xlabel('\omega/\pi');ylabel('幅度(dB)');
  34. axis([0,1,-100,0]);title('损耗函数曲线');
  35. subplot(3,1,2);plot(hn);title('输出信号波形');
  36. figure(6);imshow(yet,[]);title('滤波后图像2')

六、仿真结果及分析

v2-9801764e33802fb5b38a0a718382d9e6\_b.jpg

图6.1 原始图像               

v2-d790690f96b71b7624bf833d23e9dab5\_b.jpg

图6.2 加噪图像

v2-df773c527df1defcbf26344a7bc7f5eb\_b.jpg

图6.3

v2-b7c6bff0e00cca5c322f46ae460ac20d\_b.jpg

波形和频率响应

v2-702353c2aad427777bffb89f8bda4f68\_b.jpg

v2-7fec031ed202ee593f4356e899500bd4\_b.jpg

图6.4 滤波后图像1

v2-9cf37603e0c11c0ce7e71c19a1e9bf97\_b.jpg

图6.5 损耗函数曲线和输出信号波形

v2-82df0c43c9c90ccd0a6e73f1cd6b10b6\_b.jpg

图6.6 滤波后图像2

七、设计总结

1.该课题设计是先画出原始图像,然后画出加噪图像,然后由各项参数求出单位脉冲响应和其频率响应,再分别用布莱克曼窗函数法和等波纹最佳逼近法画出信号波形和去噪图像,并分析和比较,在分别求出损耗函数。

2.FIR滤波器的设计方法方法包括窗函数法、频率采样法和等波纹最佳逼近。本文设计主要采用的是布莱克曼窗函数法和等波纹最佳逼近法设计FIR滤波器对图像进行滤波去噪,通过布莱克曼窗函数这一过程,对滤波前后波形进行对比分析得到结论。等波纹最佳逼近法是一种优化设计方法,它克服了窗函数设计法和频率采样法的缺点,使最大误差最小化,并在整个逼近频段上均匀分布。设计的滤波器的幅频响应在通带和阻带都是等波纹的,而且可以分别控制通带和阻带波纹幅度。

3.经过用窗函数法和等波纹最佳逼近法设计FIR滤波器所得的图形可以看出,窗函数法设计出的滤波器效果更好。

八、参考文献

[1] 陈怀深,吴大正,高西全. MATLAB及在电子信息课程中的应用.3版.北京:电子工业出版社,2016.

[2] 王世一.数字信号处理.北京:北京工业学院出版社,2011.
[3] 胡广书.数字信号处理——理论、算法与实现.北京:清华大学出版社, 2010.

[4] 陈怀深.数字信号处理教程——MATLAB释疑与实现.北京:电子工业出版社,2014.

发表评论

表情:
评论列表 (有 0 条评论,384人围观)

还没有评论,来说两句吧...

相关阅读

    相关 基于Matlab图像算法仿真

    在信息化的社会里,图像在信息传播中所起的作用越来越大。所以,消除在图像采集和传输过程中而产生的噪声,保证图像受污染度最小,成了数字图像处理领域里的重要部分。 本文主要研究分析

    相关 基于Matlab图像算法仿真

    基于Matlab的图像去噪算法仿真 在信息化的社会里,图像在信息传播中所起的作用越来越大。所以,消除在图像采集和传输过程中而产生的噪声,保证图像受污染度最小,成了数