※※※※※※※※※ ※※
※※
2010级数字信号处理
课程设计
※ ※
※※※※※※※※※
数字信号处理课程设计报告书
基于MATLAB的IIR滤波器的设计
课题名称
及应用(图像去噪)
姓 名 学 号 院、系、部 专 业 指导教师
段永乐 20106475 电气工程系 电子信息工程
刘鑫淼
2013年 6 月28日
基于MATLAB的IIR滤波器的设计及应用(图像去噪)
20106475 段永乐
一、 设计目的
1.学会MATLAB的使用,掌握MATLAB的程序设计方法; 2.掌握数字信号处理的基本概念、基本理论和基本方法; 3. 在MATLAB环境下产生噪声图像;
4.掌握MATLAB设计IIR数字滤波器的方法; 5.学会用MATLAB对信号进行分析和处理。
二、设计要求
1.噪声图像的频谱分析;
2.设计数字滤波器和画出频率响应,低通滤波器性能指标,fp=1000Hz,
fs=1200 Hz,As=100dB,Ap=1dB;
在MATLAB中,可以利用函数butte、cheby1和ellip设计IIR滤器;最后,利用MATLAB中的函数freqz画出各滤波器的频率响应;
3.用滤波器对噪声图像进行滤波;
4.比较几种滤波器去滤波前后噪声图像及频谱。
三、主要实验仪器及材料
微型计算机、MATLAB6.5教学版。
四、系统原理
设计IIR数字滤波器一般采用间接法脉冲响应不变法和双线性变换法,用脉冲响应不变法和双线性变换法设计IIR数字低通滤波器的思想是:先设计一个过渡模拟低通滤波器Ha(s),再将设计好的模拟低通滤波器根据脉冲响应不变法和双线性变换法,转换成数字低通滤波器。本次设计使用脉冲响应不变法设计低通滤波器滤除图像信号噪声。
将H(s)进行部分分式展开:Ha(s)?N?i?1NAi (4.1)
s?sisith(t)?Ae对H(s)进行拉氏反变换:a?iu(t) (4.2)
i?1sinTAeu(nT) (4.3) ?ii?1N由h(t)获得:h(n)?ha(nT)?对h(n)取z变换得:H(z)??NAi (4.4) siT?1zi?11?e五、程序设计
1、用巴特沃斯滤波器设计数字滤波器实现图像去噪:(Ws=0.8,Wp=0.9)
Fs=10000;T=1/Fs; I=imread('moon.tif');
J=imnoise(I,'salt & pepper',0.01); figure(1),imshow(J) st=double(J); fp=4000; fs=4500; wp=2*fp/Fs;
ws=2*fs/Fs;rp=1;rs=100; [N,wc]=buttord(wp,ws,rp,rs); [B,A]=butter(N,wc); h=impz(B,A);
II=reshape(I,1,537*358); ylt=filter(B,A,double(II)); yy=reshape(ylt,537,358); figure(2),imshow(uint8(yy)) [hw,w]=freqz(h,1);
figure(3),plot(w/pi,(abs(hw)));title('频率响应hw')
图5.1去噪前原图 图5.2巴特沃斯滤波器去噪后图像
图5.3频率响应图
2、用切比雪夫模拟滤波器设计数字滤波器实现图像去噪:(Ws=0.8,Wp=0.9)
Fs=10000;T=1/Fs; I=imread('moon.tif');
J=imnoise(I,'salt & pepper',0.02); figure(1),imshow(J) st=double(J); fp=4000; fs=4500; wp=2*fp/Fs;
ws=2*fs/Fs;rp=1;rs=100;
[N,wpo]=cheb1ord(wp,ws,rp,rs); [B,A]=cheby1(N,rp,wpo); h=impz(B,A);
II=reshape(I,1,537*358); ylt=filter(B,A,double(II)); yy=reshape(ylt,537,358); figure(2),imshow(uint8(yy)); [hw,w]=freqz(h,1);
figure(3),plot(w/pi,(abs(hw)));title('频率响应hw')

