二维 高斯低通滤波器matlab程序设计
- 格式:docx
- 大小:18.24 KB
- 文档页数:3
某合成信号,表达式如下:f=10cos(2pi*30t)+cos(2pi*150t)+5cos(2pi*600t),请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通过这三个滤波器后信号的时域波形和频谱这个信号的频率分量分别为30、150和600Hz,因此可分别设计一个低通、带通和高通的滤波器来提取。
以FIR滤波器为例,程序如下:clear;fs=2000;t=(1:1000)/fs;x=10*cos(2*pi*30*t)+cos(2*pi*150*t)+5*cos(2*pi*600*t);L=length(x);N=2^(nextpow2(L));Hw=fft(x,N);figure(1);subplot(2,1,1);plot(t,x);grid on;title('滤波前信号x');xlabel('时间/s');% 原始信号subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw));% 查看信号频谱grid on;title('滤波前信号频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');%% x_1=10*cos(2*pi*30*t)Ap=1;As=60;% 定义通带及阻带衰减dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];% 计算偏移量mags=[1,0];% 低通fcuts=[60,100];% 边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数hh1=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计x_1=filter(hh1,1,x);% 滤波x_1(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分L=length(x_1);N=2^(nextpow2(L));Hw_1=fft(x_1,N);figure(2);subplot(2,1,1);plot(t(1:L),x_1);grid on;title('x_1=10*cos(2*pi*30*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_1));% 查看信号频谱grid on;title('滤波后信号x_1频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');%% x_2=cos(2*pi*150*t)Ap=1;As=60;% 定义通带及阻带衰减dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];% 计算偏移量mags=[0,1,0];% 带通fcuts=[80,120,180,220];% 边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计x_2=filter(hh2,1,x);% 滤波x_2(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分L=length(x_2);N=2^(nextpow2(L));Hw_2=fft(x_2,N);figure(3);subplot(2,1,1);plot(t(1:L),x_2);grid on;title('x_2=cos(2*pi*150*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_2));% 查看信号频谱grid on;title('滤波后信号x_2频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');%% x_3=5*cos(2*pi*600*t)Ap=1;As=60;% 定义通带及阻带衰减dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1)];% 计算偏移量mags=[0,1];% 高通fcuts=[500,550];% 边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计x_3=filter(hh2,1,x);% 滤波x_3(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分L=length(x_3);N=2^(nextpow2(L));Hw_3=fft(x_3,N);figure(4);subplot(2,1,1);plot(t(1:L),x_3);grid on;title('x_3=5*cos(2*pi*600*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_3));% 查看信号频谱grid on;title('滤波后信号x_3频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');。
第17卷 第2期厦门理工学院学报Vol .17 No .2 2009年6月Journal of Xia men University of Technol ogy Jun .2009 [收稿日期]2009-04-07 [修回日期]2009-05-26[基金项目]厦门市科技计划指导性项目(3502Z20077007);厦门理工学院教改项目(JG200807)[作者简介]陈金西(1963-),男,副教授,福建安溪人,从事电子信息技术教学与科研.基于Matlab 的数字图像二维滤波软件设计陈金西(厦门理工学院电子与电气工程系,福建厦门361024)[摘 要]本设计采用M atlab 程序,设计数字图像二维滤波平台,用户可任意给定滤波参数及图像,即可观察滤波器特征图像、图像的滤波效果,并可根据需要存储结果.这种可视化处理过程,形象直观,便于理解和学习图像处理过程、二维滤波器系统特征.本设计开发目的是给数字图像滤波处理的学习与分析研究提供一个软件平台.[关键词]二维滤波器;数字图像;Mat L ab;仿真;多媒体教学[中图分类号]T N91116;TP31 [文献标志码]A [文章编号]1008-3804(2009)02-0040-060 引言数字图像滤波器是二维滤波器,数学模型复杂,不易理解,本设计采用Matlab 语言,设计数字图像二维滤波器平台,用户可任意给定滤波参数,即可观察二维滤波器的系统特征图像、图像的滤波效果,并可根据需要存储结果.这种可视化处理过程,形象直观便于理解图像处理过程和二维滤波器系统特征,方便图像滤波处理的研究和学习.1 系统设计与仿真111 理想低通滤波设计理想低通滤波器是指小于D 0的频率可以完全不受影响地通过滤波器,而大于D 0的频率则完全通不过.理想低通滤波函数:H (u,v )=1当D (u,v )≤D 00当D (u,v )>D 0,其中D 0为截断频率,D (u,v )=u 2+v 2是从点(u,v )到频率平面原点的距离.程序算法:输入图像及滤波器设计指标即X 、D 0;[M ,N ]=size (x );if D0>M /2|D0>N /2,err ordlg (’输入边缘频率太大,请重新输入!’);end;filt =zer os (M ,N );for i =1:M ,f or j =1:N ,r =sqrt ((i -M /2)^2+(j -N /2)^2);if (r <=D0),filt (i,j )=1;end;end;end;freq_i m =fft2(x );freq_i m =fftshift (freq_i m );y =(1/(M 3N ))3freq_i m ;filt_i m =freq_i m .3filt;ne w _freq =ifftshift (filt_i m );ne w _i m =ifft2(ne w _freq,M ,N );y1=abs (filt_i m );axes (handles .axes1);i m show (x );axes (handles .axes2);i m show (abs (y ));axes (handles .axes3);i m s 2how (abs (filt ),[]);axes (handles .axes4);i m show (abs (ne w_i m ),[]);axes (handles .axes5);i m show (y1/(M 3N ));程序运行仿真结果如图1所示.程序仿真结果分析:改变滤波半径,仿真结果与图像处理理论相符合.当滤波半径D 0越小,理想低通滤波器的平滑作用越明显.但由于频谱中有一个陡峭的波形,它的反变换h (x,y )有强烈的振 第2期陈金西:基于Matlab的数字图像二维滤波软件设计铃特性,使滤波后图像产生模糊效果,因此这种理想低通滤波在实际应用中不能采用.低通滤波的能量和D 0的关系:以理想低通滤波作用于N ×N 的数字图像,图像总能量为E =∑N -1u =0∑N -1v =0F (u,v ),当理想低通滤波的D 0变化时,通过的能量与图像总能量之比是D 0的函数.实验表明,图像能量大部分集中在低频区,能量关系如表1所示.表1 滤波半径D 0与包含能量关系Ta b.1 The re l a ti o n be t w ee n filte r sem i d i am e te r a nd pow e r 滤波半径D 0占总频带的百分比/%包含总能量/%滤波半径D 0占总频带的百分比/%包含总能量/%590.03699.01196.05399.52298.09899.9112 理想高通滤波设计理想高通滤波器是指大于D 0的频率可以完全不受影响地通过滤波器,而小于D 0的频率则完全通不过.理想高通滤波函数:H (u,v )=1当D (u,v )≤D 00当D (u,v )>D 0,其中D 0为截断频率,D (u,v )=u 2+v 2是从点(u,v )到频率平面原点的距离.程序算法:输入图像及滤波器设计指标即X 、D 0;[M ,N ]=size (x );if D0>M /2|D0>N /2,err ordlg (’输入边缘频率太大,请重新输入!’);end;filt =zer os (M ,N );for i =1:M ,f or j =1:N ,if ((sqrt (((i -M /2)^2)+((j -N /2)^2)))>D0),filt (i,j )=1;end;end;end;freq_i m =fft2(x );freq_i m =fftshift (freq_i m );y =(1/(M 3N ))3freq_i m ;filt_i m =freq_i m .3filt;ne w _freq =ifftshift (filt_i m );ne w _i m =ifft2(ne w _freq,M ,N );y1=abs (filt_・14・厦门理工学院学报2009年i m );图像输出程序与理想低通滤波程序相同.程序运行仿真结果如图2所示.程序仿真结果分析:改变滤波器边缘频率,仿真结果与图像处理理论相符合.当滤波半径D 0越大,理想高通滤波器的锐化作用越明显,但由于频谱有一个陡峭的波形,它的反变换h (x,y )有强烈的振铃特性,使滤波后图像产生模糊效果.113 理想带通滤波设计理想带通滤波器是指大于D 0且小于D 1的频率可以完全不受影响地通过滤波器,而小于D 0或大于D 1的频率则完全通不过.理想带通滤波函数为H (u,v )=0当D (u,v )<D 0或D (u,v )>D 11当D (u,v )≥D 0和D (u,v )≤D 1,其中D 0、D 1为截断频率,D (u,v )=u 2+v 2是从点(u,v )到频率平面原点的距离.程序算法:输入图像及滤波器设计指标即X 、D 0、D 1;[M ,N ]=size (x );if D0>D1,err ordlg (’输入边缘频率错误,请重新输入!’);end;filt =zer os (M ,N );f or i =1:M for j =1:N r =sqrt ((i -M /2)^2+(j-N /2)^2);if r >=D0&r <=D1,filt (i,j )=1;end;end;end;freq_i m =fft2(x );freq_i m =fftshift (freq_i m );y =(1/(M 3N ))3freq_i m ;filt_i m =freq_i m .3filt;ne w_freq =ifftshift (filt_i m );ne w_i m =ifft2(ne w_freq,M ,N );y1=abs (filt_i m );图像输出程序与理想低通滤波程序相同.程序运行仿真结果如图3所示.程序仿真结果分析:改变滤波器边缘频率,仿真结果与图像处理理论相符合.当滤波半径D 0=0,理想带阻滤波器转化为理想低通滤波器;当滤波半径D 1=∞,理想带阻滤波器转化为理想高通滤波器.但由于频谱中存在一个陡峭的波形,它的反变换h (x,y )有强烈的振铃特性,使滤波后图像产生模糊效果.114 理想带阻滤波设计理想带阻滤波器是指小于D 0或大于D 1的频率可以完全不受影响地通过滤波器,而大于D 0且小于D 1的频率则完全通不过.理想带阻滤波函数为H (u,v )=0当D (u,v )>D 0和D (u,v )<D 11当D (u,v )≤D 0或D (u,v )≥D 1,・24・ 第2期陈金西:基于Matlab 的数字图像二维滤波软件设计其中D 0、D 1为截断频率.程序算法:输入图像及滤波器设计指标即X 、D 0、D 1;[M ,N ]=size (x );if D0>M /2|D0>N /2|D0>D1,err ordlg (’输入边缘频率错误,请重新输入!’);end;filt =zer os (M ,N );f or i =1:M f or j =1:N r =sqrt ((i -M /2)^2+(j -N /2)^2);if r <=D0&r >=D1,filt (i,j )=1;end;end;end;freq_i m =fft2(x );freq_i m =fftshift (freq_i m );y =(1/(M 3N ))3freq_i m ;filt_i m =freq_i m .3filt;ne w_freq =ifftshift (filt _i m );ne w_i m =ifft2(ne w_freq,M ,N );y1=abs (filt_i m );图像输出程序与理想低通滤波程序相同.程序运行界面类似图3(图中带通改为带阻).程序仿真结果分析:改变滤波边缘频率D 0、D 1,仿真结果与图像处理理论相符合.当滤波半径D 0=0,理想带阻滤波器转化为理想高通滤波器;当滤波半径D 1=∞,理想带阻滤波器转化为理想低通滤波器.但由于频谱中存在一个陡峭的波形,它的反变换h (x,y )有强烈的振铃特性,使滤波后图像产生模糊效果.115 巴特沃斯低通滤波设计巴特沃斯低通滤波函数为H (u,v )=11+(D (u,v )/D 0)2n ,其中D 0为截断频率,D (u,v )=u 2+v 2是从点(u,v )到频率平面原点的距离.程序算法:输入图像及滤波器设计指标即X 、D 0、n;[M ,N ]=size (x );if D0>M /2|D0>N /2,err ordlg (’输入边缘频率太大,请重新输入!’);end;filt =zer os (M ,N );for i =1:M ,f or j =1:N ,r =sqrt ((i -M /2)^2+(j -N /2)^2);filt (i,j )=1/(1+(r/D0).^(23n ));end;end;freq_i m =fft2(x );freq_i m =fftshift (freq_i m );y =(1/(M 3N ))3freq_i m ;filt_i m =freq_i m .3filt;ne w_freq =ifftshift (filt_i m );ne w_i m =ifft2(ne w_freq,M ,N );y1=abs (filt_i m );图像输出程序与理想低通滤波程序相同.程序运行仿真结果如图4所示.・34・厦门理工学院学报2009年程序仿真结果分析:改变滤波半径及阶数,仿真结果与图像处理理论相符合.当滤波半径D 0越小,低通滤波器的平滑作用越明显,当阶数n 越大,则图像越模糊,这是由于阶数越大越接近理想滤波器,频谱存在一个越陡峭的波形,它的反变换h (x,y )有越强烈的振铃特性,使滤波后图像产生越模糊效果.116 指数函数低通滤波设计指数低通滤波函数为H (u,v )=e -(D (u,v )/D 0)n ,其中D 0为截断频率,D (u,v )=u 2+v 2是从点(u,v )到频率平面原点的距离.程序算法:输入图像及滤波器设计指标即X 、D 0、n;[M ,N ]=size (x );filt =zer os (M ,N );f or i =1:M ,f or j =1:N ,r =sqrt ((i -M /2)^2+(j -N /2)^2);filt (i,j )=exp (-(r/D0).^n );end;end;freq_i m =fft2(x );freq_i m =fftshift (freq_i m );y =(1/(M 3N ))3freq_i m ;filt_i m =freq_i m .3filt;ne w_freq =ifftshift (filt _i m );ne w_i m =ifft2(ne w_freq,M ,N );y1=abs (filt_i m );图像输出程序与理想低通滤波程序相同.程序运行界面与图4相似.程序仿真结果分析:改变滤波半径及阶数,仿真结果与图像处理理论相符合.当n =2时,指数低通滤波器就是高斯低通滤波器.指数低通滤波器从通过频率到截止频率之间没有明显的不连续性,而是存在一个平滑的过渡带,所以无明显的振铃现象.相比巴特沃斯低通滤波器,指数低通滤波器随频率增加在开始阶段衰减得比较快,对高频分量的滤除能力较强,对图像造成的模糊较大,产生的振铃现象比巴特沃斯滤波器小,但平滑效果不如巴特沃斯滤波器,实用效果比巴特沃斯低通滤波器稍差.2 软、硬件运行环境及调试运行硬件要求:P Ⅱ以上CP U;512M 以上内存;20G 以上硬盘空间.・44・ 第2期陈金西:基于Matlab 的数字图像二维滤波软件设计软件要求:W indows2000及以上版本操作系统;采用可视化面向对象程序设计的Matlab2006为系统开发平台.本系统经过调试修改及实践验证,已能全面满足设计需要,提高了对数字图像处理学习研究的工作效率,显示较高的实用价值,可在“数字信号处理”、“数字图像处理”、“通信原理”和“医学图像处理”等课程教学辅助中推广使用.3 结论本系统具有如下技术特点:①把原始图像,原始图像二维频谱图,理想滤波器二维频谱图,滤波处理后图像,滤波处理后图像二维频谱图绘在同一界面上,方便用户观察比较,其图像处理运算过程清晰,运算结果形象直观,对图像处理过程的抽象数学理解能起到启发作用.各滤波器设计的仿真结果满足设计指标要求,频谱特性符合滤波器理论.②界面友好,使用方便,操作简单,运行效率高.③可方便改变滤波器参数,方便选择原始图像,快速绘出处理后的图像及滤波器的二维频域特性,方便观察与研究.④采用菜单形式,模块之间的联系清晰,调用方便.各系统采用独立模块,方便不同系统间比较观察研究.⑤对滤波器设计方法进行分类归纳,并进行简单明确的说明,方便“数字图像处理”、“数字信号处理”、“通信原理”、“医学图像处理”的教学辅助,也方便利用本软件进行滤波器设计的自学与研究.⑥滤波器频谱特性用二维图像表示,形象直观,对学习研究滤波器各特征之间相互关系很有帮助.⑦作者利用此平台作为多媒体教学辅助,把抽象的图像处理过程及滤波器数学模型用形象的图形来表征,较大提高教学效率,获得学生好评.[参考文献][1]章毓晋.图像处理[M ].北京:清华大学出版社,2006.[2]刘卫国.M atlab 程序设计[M ].北京:高等教育出版社,2006.[3]陈金西.F I R 数字滤波器设计可视化平台开发[J ].厦门理工学院学报,2008,16(4):37242.[4]李俊山,李旭辉.数字图像处理[M ].北京:清华大学出版社,2007.[5]何凯,等.基于高斯曲面拟合的影像渐晕复原方法[J ].电子学报,2009,37(1):67271.The D esi gn of the 22d i m en si on F ilter for D i g ita l I mage Ba sed on M a tl abCHE N J in 2xi(Depart m ent of Electr onic and Electrical Engineering,Xia men University of Technol ogy,Xia men 361024,China )Abstract:This design uses Matlab language t o build an e m luating p latf or m of filter f or digital i m age .It may modify one or more para meters t o study the character and effects of 22di m ensi on filter syste m.It acts as a t ool for analysis and study of filter syste m design and as a good p latf or m for multi m edia teaching f or digital i m 2age p r ocessing .Key words:22di m ensi on filter;digital i m age;matlab;si m ulati on;multi m edia teaching ・54・。
实验一:数字图像的频域滤波器设计一、实验目的掌握matlab 程序设计语言,掌握matlab 基本数据类型、核心函数及辅助函数的使用。
掌握理想和高斯低通滤波器的设计方法。
二、实验内容利用理想和高斯低通滤波器实现图像的频域滤波;利用理想和高斯高通滤波器实现图像的频域滤波;三、实验原理二维理想低通滤波器的传递函数为:001.(,)(,)0.(,)D u v D H u v D u v D ≤⎧=⎨>⎩D0是指定非负数值,D (u ,v )是(u ,v )点距频率中心的距离。
如果要研究的图像尺寸为M X N ,则它的变换也有相同的尺寸。
在半径为D0的圆内,所有频率无衰减地通过滤波器,而在此半径之外的所有频率完全被衰减掉。
高斯高通滤波器传递函数为:220(,)/2(,)D u v D H u v e -=D (u ,v )是距傅立叶变换中心原点的距离。
D0是截止频率。
高斯低通滤波器的傅立叶变换也是高斯的。
二维理想高通滤波器的传递函数为:000.(,)(,) 1.(,)D u v D H u v D u v D ≤⎧=⎨>⎩D0是从频率矩形中点测得的截止频率长度,它将以D0为半径的圆周内的所有频率置零,而毫不衰减地通过圆周外的任何频率。
但其物理上是不可实现的。
高斯高通滤波器传递函数为:220(,)/2(,)1D u v D H u v e -=-高通滤波器能够用高斯型低通滤波器的差构成。
这些不同的滤波器有更多的参数,因此能够对滤波器的形状进行更多的控制。
四.实验设备和仪器1.计算机2. matlab开发平台五.关键代码及注释1.理想低通滤波器RGB = imread('saturn.png');I0 = rgb2gray(RGB);subplot(2,3,1),imshow(I0);title('原图');I1 = imnoise(I0,'gaussian'); %对原图像加噪声subplot(2,3,2),imshow(I1);title('加入噪声后')%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心s=fftshift(fft2(I1));subplot(2,3,3),imshow(log(1+abs(s)),[]);title('fftshift');[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整%ILPF滤波(程序中以d0=15为例)d0=50; %初始化d0for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离if d<=d0 %点(i,j)在通带内的情况h(i,j)=1; %通带变换函数else %点(i,j)在阻带内的情况h(i,j)=0; %阻带变换函数ends(i,j)=h(i,j)*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));subplot(2,3,4),imshow(h);title('传递函数'); %显示GHPF滤波器的传递函数subplot(2,3,5),imshow(s); title('ILPF滤波(d0=50)'); %显示ILPF滤波后的图像2.高斯低通滤波器RGB = imread('saturn.png');I0 = rgb2gray(RGB);subplot(2,3,1),imshow(I0);title('原图');I1 = imnoise(I0,'gaussian'); %对原图像加噪声subplot(2,3,2),imshow(I1);title('加入噪声后')%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心s=fftshift(fft2(I1));subplot(2,3,3),imshow(log(1+abs(s)),[]);title('fftshift');[M,N]=size(s); %分别返回s的行数到M中,列数到N中%GLPF滤波d0=50; %初始化d0n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离h(i,j)=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数s(i,j)=h(i,j)*s(i,j); %GLPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));subplot(2,3,4),imshow(h);title('传递函数'); %显示GHPF滤波器的传递函数subplot(2,3,5),imshow(s);title('GLPF滤波(d0=50)'); %显示GLPF滤波处理后的图像3.理想高通滤波器RGB = imread('saturn.png');I0 = rgb2gray(RGB);subplot(2,3,1),imshow(I0);title('原图');I1 = imnoise(I0,'gaussian'); %对原图像加噪声subplot(2,3,2),imshow(I1);title('加入噪声后')%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心s=fftshift(fft2(I1));subplot(2,3,3),imshow(log(1+abs(s)),[]);title('fftshift');[M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整%IHPF滤波d0=15; %初始化d0for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离if d<=d0 %点(i,j)在通带内的情况h(i,j)=0; %通带变换函数else %点(i,j)在阻带内的情况h(i,j)=1; %阻带变换函数ends(i,j)=h(i,j)*s(i,j); %ILPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));subplot(2,3,4),imshow(h);title('传递函数'); %显示GHPF滤波器的传递函数subplot(2,3,5),imshow(s); title('IHPF滤波(d0=15)'); %显示IHPF滤波后的图像4.高斯高通滤波器RGB = imread('saturn.png');I0 = rgb2gray(RGB);subplot(2,3,1),imshow(I0);title('原图');I1 = imnoise(I0,'gaussian'); %对原图像加噪声subplot(2,3,2),imshow(I1);title('加入噪声后')%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心s=fftshift(fft2(I1));subplot(2,3,3),imshow(log(1+abs(s)),[]);title('fftshift');[M,N]=size(s); %分别返回s的行数到M中,列数到N中%GHPF滤波d0=15; %初始化d0n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 h(i,j)=1-1*exp(-1/2*(d^2/d0^2)); %GHPF滤波函数s(i,j)=h(i,j)*s(i,j); %GHPF滤波后的频域表示endends=ifftshift(s); %对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));subplot(2,3,4),imshow(h);title('传递函数'); %显示GHPF滤波器的传递函数subplot(2,3,5),imshow(s);title('GHPF滤波(d0=15)'); %显示GHPF滤波处理后的图像六.实验结果图一理想低通滤波器图二高斯低通滤波器图三理想高通滤波器图四高斯高通滤波器。
MATLAB IIR 数字低通滤波器的设计方法1、IIR 数字低通滤波器滤波器分两大类:经典滤波器和现代滤波器。
经典滤波的概念,是根据傅里叶分析和变换提出的一个工程概念。
根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。
换句话说,就是工程信号是不同频率的正弦波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。
现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。
经典滤波器分为低通、高通、带通、带阻滤波器。
每一种又有模拟滤波器(AF )和数字滤波器(DF )。
对数字滤波器,又有IIR 滤波器和FIR 滤波器。
我们要实现的是IIR 数字滤波器。
IIR 数字滤波器采用递归型结构,即结构上带有反馈环路。
IIR 滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。
单位响应:IIR 滤波器的单位脉冲响应为无限长,网络中有反馈回路。
幅频特性:IIR 数字滤波器幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上IIR DF 的转移函数是:∑∑=-=-+==N k kk Mr rr z a zb z X z Y z H 101)()()(IIR 滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。
2、滤波器的技术要求低通滤波器:p ω:通带截止频率(又称通带上限频率) s ω:阻带下限截止频率 p α:通带允许的最大衰减 s α:阻带允许的最小衰减 (p α,s α的单位dB )p Ω:通带上限角频率 s Ω:阻带下限角频率(s p pT ω=Ω,s s s T ω=Ω)即 Cpp F ωπ2=Ω CssF ωπ2=Ω3、IIR 数字滤波器的设计方法IIR 数字滤波器的设计方法有两类:间接设计法和直接设计法。
计算机视觉(⼆)-matlab之理想低通滤波器,布特沃斯低通、⾼斯低通,理想⾼通、布特沃斯。
未整理完!在滤波器之前,先讲解傅⾥叶变换理想低通滤波器f = imread('Fig0441.tif');f = im2double(f);% 计算填充图像⼤⼩[M,N] = size(f);M2 = 2*M;N2 = 2*N;% 傅⾥叶变换F = fftshift(fft2(f,M2,N2));figure;imshow(mat2gray(log(1+abs(F))));title('傅⾥叶频谱');% 设计滤波器% ⽣成⽹格坐标u = -N:N-1;v = -M:M-1;[U,V] = meshgrid(u,v);% 设计滤波器D = hypot(U,V);D0 = 30; % 截⽌频率[10 30 60 160 460]H = mat2gray( D <= D0 );% 理想低通滤波器figure;imshow(H);title('理想低通滤波器');% 频域滤波G = F.*H;figure;imshow(mat2gray(log(1+abs(G))));title('频域滤波'); 1-sum(sum(abs(G).^2))/sum(sum(abs(F).^2))g0 = ifft2(fftshift(G));g = g0(1:M,1:N);g = real(g);figure;imshow(g);title('滤波后的图像');figure;subplot(121);imshow(f);title('原图');subplot(122);imshow(g);title('滤波后的图像');结果:原图:布特沃斯低通滤波器f = imread('Fig0441.tif');f = im2double(f);% 计算填充图像⼤⼩[M,N] = size(f);M2 = 2*M;N2 = 2*N;% 傅⾥叶变换F = fftshift(fft2(f,M2,N2));figure;imshow(mat2gray(log(1+abs(F))));title('傅⾥叶频谱'); % 设计滤波器% ⽣成⽹格坐标u = -N:N-1;v = -M:M-1;[U,V] = meshgrid(u,v);% 设计滤波器D = hypot(U,V);D0 = 30; % 截⽌频率[10 30 60 160 460]H = mat2gray(1./(1+((D./D0).^4)));figure;imshow(H);title('布特沃斯低通滤波器(n=2)');% 频域滤波G = F.*H;figure;imshow(mat2gray(log(1+abs(G))));title('频域滤波'); 1-sum(sum(abs(G).^2))/sum(sum(abs(F).^2))g0 = ifft2(fftshift(G));g = g0(1:M,1:N);g = real(g);figure;imshow(g);title('滤波后的图像');figure;subplot(121);imshow(f);title('原图');subplot(122);imshow(g);title('滤波后的图像'); matlab结果:⾼斯低通滤波器⾼斯低通滤波器代码:H = exp((-D.^2)/(2*(D0).^2));figure;imshow(H);title('滤波器(D0=100)');结果:理想⾼通滤波器理想⾼通滤波器代码:H = mat2gray( D >= D0 );%理想⾼通滤波器figure;imshow(H);title('滤波器()');结果:布特沃斯⾼通滤波器布特沃斯⾼通滤波器代码:H = 1./(1+((D0./D).^4));%布特沃斯⾼通滤波器figure;imshow(H);title('滤波器(n=2)');结果:⾼斯⾼通滤波器⾼斯⾼通滤波器代码:H = 1-exp((-D.^2)/(2*(D0).^2));%⾼斯⾼通滤波器figure;imshow(H);title('滤波器');matlab结果:混合⾼频强调滤波[file,path] = uigetfile({'*.png';'*.jpg';},'选择图⽚');f = imread([path,file]);f = im2double(f);%计算填充图像⼤⼩[M,N] = size(f);M2 = 2*M;N2 = 2*N;% 傅⾥叶变换F = fftshift(fft2(f,M2,N2));figure;imshow(mat2gray(log(1+abs(F))));title('傅⾥叶频谱'); % 设计滤波器% ⽣成⽹格坐标u = -N:N-1;v = -M:M-1;[U,V] = meshgrid(u,v);% 设计滤波器D = hypot(U,V);D0 = 40; %截⾄频率[10 30 60 160 460]H = 1-exp((-D.^2)/(2*(D0).^2));%¸⾼斯⾼通滤波G = (F.^(-1)).*((0.5+0.75.*H).*F);%figure;imshow(H);title('滤波器');figure;imshow(mat2gray(log(1+abs(G))));title('频率滤波'); % 傅⾥叶逆变换g0 = ifft2(fftshift(G));g = g0(1:M,1:N);g = real(g);i=histeq(g);figure;imshow(g);title('滤波后的图像');figure;imshow(i);title('直⽅图均衡');结果:原图:reference:李卫军,肖宛昂,董肖莉,覃鸿⽼师《视觉信息处理及FPGA 实现》课程等越是憧憬,越要风⾬兼程。
吉首大学信息科学与工程学院课程设计报告书课程通信系统设计与仿真课题:基于MATLAB的低通IIR滤波器设计姓名:曾杰、刘潇雄、刘送杰学号: 20124055079、 2012405507620124055077 专业:通信工程年级: 2012级指导教师:雷可君基地指导教师:雷可君2015年11 月一、项目介绍与设计目的Matlab 信号工具箱提供了几个直接设计IIR 数字滤波器的函数,直接调用这些函数就可以很方便地对滤波器进行设计。
用切比雪夫Ⅱ设计数字滤波器的函数如下: ChebysheveⅡ型滤波器:[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs)[b,a]=cheby2(N,Rs,Wn)[b,a]=cheby2(N,Rs,Wn,′ftype′)[h,f]=freqz(b,a,n,Fs)IIR数字滤波器具有无限宽的冲击响应, 与模拟滤波器相匹配。
所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。
例如利用脉冲响应不变法设计IIR数字滤波器, 其基本设计思路是直接设计一个数字滤波器并让它的时间特性逼近一个模拟滤波器。
为了达到时间特性的最佳逼近, 把模拟滤波器的冲击响应均匀取值, 作为数字滤波器的单位脉冲响应, 即:h(n) =h(t) |t-nT然后将h(n)通过z变换即求得H(z)。
因此, 脉冲响应不变法实际是时域取样法, 整个过程是先根据给定的指标设计一个模拟滤波器, 进而按下列变换的顺序, 最后求得数字滤波器的系统函数H(z), 即:H(s) → h(t) → h(n) →H(z)在对滤波器进行实际设计时, 整个过程运算量是很大的。
设计完成后要对已设计的滤波器的频率响应进行校核, 得到幅频相频响应特性, 运算量也是很大的。
通常, 待设计的数字滤波器, 阶数和类型并不一定是完全给定的, 很多时候都是要根据设计要求和滤波效果不断进行调整, 以达到设计的最优化。
在这种情况下, 滤波器的设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成设计。
2010/2011学年第 2 学期学院:信息与通信工程学院专业:电子信息科学与技术学生姓名:学号:课程设计题目:低通滤波器设计起迄日期: 6 月 13 日~6月 24日课程设计地点:指导教师:系主任:下达任务书日期: 2011 年 6 月12 日课程设计任务书课程设计任务书目录1 设计目的及要 (5)1.1设计目的 (5)1.2设计内容和要求 (5)2设计原理 (5)2.1 FIR滤波器 (5)2.2窗函数 (6)2.3矩形窗 (7)3设计过程 (8)3.1设计流程图 (8)3.2 产生原始信号并分析频谱 (8)3.3 使用矩形窗设计不同特性的数字滤波器 (10)3.4 信号滤波处理 (11)4 实验结果及分析 (12)5 课程设计心得体会 (12)6 参考文献 (13)附录: (14)低通滤波器的设计1 设计目的及要求1.1设计目的设计一种低通滤波器并对信号进行滤波。
低通滤波器的作用是滤去信号中的中频和高频成分,增强低频成分。
要求做到:1.了解MATLAB的信号处理技术;2.使用MATLAB设计低通滤波器,掌握其滤波处理技术;3.对滤波前和滤波后的波形进行时域和频域比较。
1.2设计内容和要求1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析;2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进行滤波,对比分析滤波前后信号的频谱;3.实现信号频谱分析和滤波等有关MATLAB函数;2设计原理本次课程设计,我们主要是基于矩形窗的FIR滤波器来设计一个低通滤波器。
2.1 FIR滤波器FIR滤波器即有限抽样响应因果系统,其单位抽样响应h<n>是有限长的;极点皆位于z=0处;结构上不存在输出到输入的反馈,是非递归型的。
其系统函数表示为:普通的FIR滤波器系统的差分方程为:式中:N为FIR滤波器的抽头数;x<n>为第n时刻的输入样本;h<i>为FIR滤波器第i级抽头系数。
MATLAB IIR低通滤波器设计IIR滤波器是一种数字滤波器,其中包含反馈环,它可以提供更窄的过渡带和更低的滤波器阶数。
MATLAB是一种广泛使用的工程软件,能够帮助工程师和科学家设计和分析IIR低通滤波器。
本文将介绍如何使用MATLAB来设计IIR低通滤波器。
1. 理论基础在设计IIR低通滤波器之前,首先需要理解滤波器的基本原理。
IIR滤波器是一种递归滤波器,其输出取决于当前输入和过去的输出。
在设计IIR低通滤波器时,需要确定滤波器的截止频率和通带波纹等参数。
通常情况下,设计人员会根据特定的要求来确定这些参数,然后使用MATLAB来实现这些要求。
2. 设计步骤设计IIR低通滤波器通常需要以下几个步骤:(1)确定要求的滤波器规格,包括截止频率、通带波纹和阻带衰减等参数。
(2)选择合适的滤波器结构,如Butterworth、Chebyshev或Elliptic等。
(3)使用MATLAB中的滤波器设计工具箱来实现滤波器设计。
(4)对设计的滤波器进行验证和性能评估,确保其符合要求。
3. MATLAB工具箱MATLAB提供了丰富的滤波器设计工具箱,其中包括了各种滤波器设计方法和函数。
下面是一些常用的MATLAB滤波器设计函数:(1)butter:用于Butterworth滤波器设计。
(2)cheby1和cheby2:分别用于Chebyshev Type I和Type II滤波器设计。
(3)ellip:用于Elliptic滤波器设计。
(4)fir1和fir2:分别用于线性相位和最小相位FIR滤波器设计。
4. 实例演示接下来以一个实例来演示如何使用MATLAB设计IIR低通滤波器。
假设我们需要设计一个15阶Butterworth低通滤波器,截止频率为500Hz,通带最大衰减为3dB,阻带最小衰减为40dB。
我们可以按照以下步骤使用MATLAB来实现这一设计:```matlab定义滤波器参数order = 15; 滤波器阶数fc = 500; 截止频率A_p = 3; 通带最大衰减A_s = 40; 阻带最小衰减设计Butterworth低通滤波器[b, a] = butter(order, fc/(Fs/2));绘制滤波器幅频响应freqz(b, a, 1024, Fs);```通过上述代码,我们可以使用MATLAB设计出满足要求的IIR低通滤波器,并绘制出其幅频响应图。
matlab实现⼀阶低通滤波器,⽤matlab设计的IIR滤波器源程序-IIR⼀阶低通⾼通⽤matlab设计的IIR滤波器源程序(1)IIR⼀阶低通滤波器 P576clear;fi=1;fs=10;Gc2=0.9;wc=2*pi*fi/fs;omegac=tan(wc/2);alpha=(sqrt(Gc2)/sqrt(1-Gc2))*omegac;a=(1-alpha)/(1+alpha);b=(1-a)/2;w=0:pi/300:pi;Hw2=alpha^2./(alpha^2+(tan(w/2)).^2);plot(w/pi,Hw2);grid;hold on;(2)⼀阶⾼通滤波器 P581clear;fi=1;fs=10;Gc2=0.5;wc=2*pi*fi/fs;omegac=tan(wc/2);alpha=(sqrt(1-Gc2)/(sqrt(Gc2)))*omegac;a=(1-alpha)/(1+alpha);b=(1+a)/2;w=0:pi/300:pi;Hw2=(tan(w/2).^2)./(alpha^2+(tan(w/2)).^2);plot(w/pi,Hw2);grid;hold on;(3)Notch 嵌波滤波器clear;deltaw=0.1*pi;b=1/(1+tan(deltaw/2)*(sqrt(1-Gb2)/sqrt(Gb2))); B=[1 -2*cos(w0) 1].*b;A=[1 -2*b*cos(w0) (2*b-1)];w=0:pi/500:pi;H=freqz(B,A,w);plot(w/pi,abs(H));grid;(4)Peak 滤波器clear;Ac=3;Gb2=10^(-Ac/10);w0=0.35*pi;deltaw=0.1*pi;b=1/(1+tan(deltaw/2)*(sqrt(Gb2)/sqrt(1-Gb2))); B=[1 0 -1].*(1-b);A=[1 -2*b*cos(w0) (2*b-1)];w=0:pi/500:pi;H=freqz(B,A,w);plot(w/pi,abs(H));grid;(5)IIR低通滤波(Butterworth)% IIR Lowpass Use Butterworth% copyright by Etualclear;fs=20;fpass=4;fstop=5;Ap=0.5;As=10;wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;omegap=tan(wp/2);omegas=tan(ws/2);ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);N=ceil(log(es/ep)/log(omegas/omegap));for i=1:Ktheta(i)=pi*(N-1+2*i)/(2*N);endfor i=1:KG(i)=omega0^2/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka1(i)=2*(omega0^2-1)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka2(i)=(1+2*omega0*cos(theta(i))+omega0^2)/(1-2*omega0*cos(theta(i))+omega0^2); endif KG0=omega0/(omega0+1);a0=(omega0-1)/(omega0+1);endw=0:pi/300:pi;Hw2=1./(1+(tan(w/2)/omega0).^(2*N));plot(w/pi,Hw2);grid;(6)IIR⾼通滤波(Butterworth)% IIR Hightpass Use Butterworth% copyright by Etualclear;fs=20;fpass=5;fstop=4;Ap=0.5;As=10;wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;omegap=cot(wp/2);omegas=cot(ws/2);ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);N=ceil(log(es/ep)/log(omegas/omegap));omega0=omegap/ep^(1/N);K=floor(N/2);endfor i=1:Ka1(i)=-2*(omega0^2-1)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka2(i)=(1+2*omega0*cos(theta(i))+omega0^2)/(1-2*omega0*cos(theta(i))+omega0^2); endif KG0=omega0/(omega0+1);a0=-(omega0-1)/(omega0+1);endw=(0+eps):pi/300:pi;Hw2=1./(1+(cot(w/2)/omega0).^(2*N));plot(w/pi,Hw2);grid;(7)IIR带通滤波(Butterworth)% IIR Bandpass Use Butterworth% copyright by Etualclear;fs=20;fpa=2;fpb=4;fsa=1.5;fsb=4.5;Ap=0.0877;As=16.9897;wpa=2*pi*fpa/fs;wpb=2*pi*fpb/fs;wsa=2*pi*fsa/fs;wsb=2*pi*fsb/fs;c=sin(wpa+wpb)/(sin(wpa)+sin(wpb));omegap=abs((c-cos(wpb))/sin(wpb));omegasa=(c-cos(wsa))/sin(wsa);omegasb=(c-cos(wsb))/sin(wsb);omegas=min(abs(omegasa),abs(omegasb));ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);N=ceil(log(es/ep)/log(omegas/omegap));omega0=omegap/ep^(1/N);K=floor(N/2);endfor i=1:Ka1(i)=4*c*(omega0*cos(theta(i))-1)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka2(i)=2*(2*c^2+1-omega0^2)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka3(i)=-(4*c*(omega0*cos(theta(i))+1))/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka4(i)=(1+2*omega0*cos(theta(i))+omega0^2)/(1-2*omega0*cos(theta(i))+omega0^2); endif KG0=omega0/(1+omega0);a0(1)=-2*c/(1+omega0);a0(2)=(1-omega0)/(1+omega0); endw=(0+eps):pi/300:pi;Hw2=1./(1+((c-cos(w))./(omega0*sin(w))).^(2*N));plot(w/pi,Hw2);grid;(8)IIR带阻滤波(Butterworth)% IIR Bandstop Use Butterworth% copyright by Etualclear;fs=20;fpa=1.5;fpb=4.5;fsa=2;fsb=4;Ap=0.5;As=10;wpa=2*pi*fpa/fs;wpb=2*pi*fpb/fs;wsa=2*pi*fsa/fs;wsb=2*pi*fsb/fs;c=sin(wpa+wpb)/(sin(wpa)+sin(wpb));omegap=abs(sin(wpb)/(c-cos(wpb)));ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);N=ceil(log(es/ep)/log(omegas/omegap));omega0=omegap/ep^(1/N);K=floor(N/2);theta=zeros(1,K);for i=1:Ktheta(i)=pi*(N-1+2*i)/(2*N);endG=zeros(1,K);a1=zeros(1,K);a2=zeros(1,K);for i=1:KG(i)=omega0^2/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka1(i)=2*(omega0^2-1)/(1-2*omega0*cos(theta(i))+omega0^2);endfor i=1:Ka2(i)=(1+2*omega0*cos(theta(i))+omega0^2)/(1-2*omega0*cos(theta(i))+omega0^2); endif KG0=omega0/(omega0+1);a0=(omega0-1)/(omega0+1);endw=(0+eps):pi/300:pi;Hw2=1./(1+(sin(w)./(omega0*(c-cos(w)))).^(2*N));plot(w/pi,Hw2);grid;(9)IIR低通滤波(chebyshev 1)% IIR Lowpass Use Chebyshev Type 1% copyright by Etualclear;fs=20;fpass=4;fstop=5;Ap=0.5;As=10;wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;es=sqrt(10^(As/10)-1);e=es/ep;w=omegas/omegap;N=ceil(log(e+sqrt(e^2-1))/log(w+sqrt(w^2-1)));a=log(1/ep+sqrt(1/ep^2+1))/N;omega0=omegap*sinh(a);K=floor(N/2);theta=zeros(1,K);omega=zeros(1,K);for i=1:Ktheta(i)=pi*(N-1+2*i)/(2*N);endfor i=1:Komega(i)=omegap*sin(theta(i));endG=zeros(1,K);a1=zeros(1,K);a2=zeros(1,K);for i=1:KG(i)=(omega0^2+omega(i)^2)/(1-2*omega0*cos(theta(i))+omega0^2+omega(i)^2);endfor i=1:Ka1(i)=2*(omega0^2+omega(i)^2-1)/(1-2*omega0*cos(theta(i))+omega0^2+omega(i)^2);endfor i=1:Ka2(i)=(1+2*omega0*cos(theta(i))+omega0^2+omega(i)^2)/(1-2*omega0*cos(theta(i))+omega0^2+omega(i)^2); endif KG0=omega0/(omega0+1);a0=(omega0-1)/(omega0+1);elseH0=sqrt(1/(1+ep^2));endf=0:1/300:10;Hf2=1./(1+ep^2*(cheby(N,tan(pi*f/fs)/omegap)).^2);plot(f,abs(Hf2));grid;% copyright by Etualclear;fs=20;fpass=4;fstop=5;Ap=0.5;As=10;wp=2*pi*fpass/fs;ws=2*pi*fstop/fs;omegap=tan(wp/2);omegas=tan(ws/2);ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1);e=es/ep;w=omegas/omegap;N=ceil(log(e+sqrt(e^2-1))/log(w+sqrt(w^2-1)));a=log(es+sqrt(es^2+1))/N;omega0=omegas/sinh(a);K=floor(N/2);for i=1:Ktheta(i)=pi*(N-1+2*i)/(2*N);endfor i=1:Komega(i)=omegas/sin(theta(i));endfor i=1:KG(i)=(1+omega(i)^-2)/(1-2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2);endfor i=1:Ka1(i)=2*(1-omega0^-2+omega(i)^-2)/(1-2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2);endfor i=1:Ka2(i)=(1+2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2)/(1-2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2); endfor i=1:Kb1(i)=2*(1-omega(i))/(1+omega(i));endif KH0=sqrt(1/(1+ep^2));endf=(0+eps):1/100:10;Hf2=(cheby(N,omegas./tan(pi*f/fs))).^2./((cheby(N,omegas./tan(pi*f/fs))).^2+es^2); plot(f,abs(Hf2));grid;(10)chebyshev 中⽤到的函数 cheby.mfunction CN=cheby(N,x)if x<=1CN=cos(N*acos(x));elseCN=cosh(N*log(x+sqrt(x.^2-1)));end。
Matlab低通滤波器简介低通滤波器是一种用于信号处理和图像处理的常见滤波器类型之一。
它通过去除高频成分,将输入信号中高频部分的能量降低,从而实现对信号的平滑处理。
Matlab作为一个功能强大的数值计算和数据分析工具,提供了丰富的函数和工具箱,可以方便地实现低通滤波器的设计和应用。
原理低通滤波器通过消除高频成分,将输入信号中高频部分的能量降低,以获得平滑的输出信号。
其基本原理是将输入信号与低通滤波器的频率响应进行卷积运算,从而得到滤波后的输出信号。
在频域中,低通滤波器具有截止频率,通常用截止频率处的功率谱密度衰减到其最大值的一半的点来描述。
截止频率之上的高频成分将被滤除,截止频率之下的信号成分则保留。
在时域中,低通滤波器可以使用差分方程表示。
常见的差分方程形式为:y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2] - a1*y[n-1] - a2*y[n-2]其中,y[n]为输出信号,x[n]为输入信号,a1、a2为滤波器的反馈系数,b0、b1、b2为滤波器的前馈系数。
Matlab实现Matlab提供了多种实现低通滤波器的方法,包括基于IIR和FIR两种结构。
下面将介绍这两种结构的实现方法。
IIR结构IIR(Infinite Impulse Response)滤波器是一种递归滤波器,其输出由当前和过去的输入和输出值决定。
在Matlab中,可以使用designfilt函数和filter函数来设计和应用IIR低通滤波器。
设计滤波器designfilt函数可以用于设计IIR低通滤波器。
首先,需要指定滤波器的类型、截止频率、衰减和滤波器阶数。
例如,要设计截止频率为100Hz、阶数为4的Butterworth低通滤波器,可以使用以下代码:fs = 1000; % 采样率fc = 100; % 截止频率order = 4; % 滤波器阶数[b, a] = butter(order, fc/(fs/2), 'low');应用滤波器设计好滤波器后,可以使用filter函数将其应用到信号上。
二维高斯滤波器图像滤波MTATLAB程序设计
用MATLAB设计一个3×3模板标准差为0.5,1.5,2.5的二维高斯低通滤波器(Gaussion low pass filter分别对灰度图像,真彩色图像,伪彩色图像进行滤波处理
%二维高斯低通滤波器
%文件为glpf.m
function glpf(J)
%处理索引图像
if isind(J)
[I,map]=imread(J);
I=imnoise(I,'gaussian',0.005);
subplot(2,2,1)
imshow(I,map);
title('a.原始图像');
K1=filter2(fspecial('gaussian',3*3,0.5),I);
K2=filter2(fspecial('gaussian',3*3,1.5),I);
K3=filter2(fspecial('gaussian',3*3,2.5),I);
subplot(2,2,2)
imshow(K1,map);
title('b.滤波器3*3,sigma=0.5')
subplot(2,2,3)
imshow(K2,map);
title('c.滤波器3*3,sigma=1.5')
subplot(2,2,4)
imshow(K3,map);
title('d.滤波器3*3,sigma=2.5')
end
%处理灰度,真彩色图像
if ~isind(J)
J=imread(J);%读入图像
I=imnoise(J,'gaussian');%加入高斯噪声
%输出原始图像
subplot(2,2,1)
imshow(I);
title('a.原始图像')
h1 = fspecial('gaussian',[3,3], 0.5);%用预定义的gaussian函数
[m n p]=size(I);
%[m n p] m,n代表像素点的位置,p代表空间分量
%p=1,代表亮度分量,即灰度图像
%p=3,代表亮度分量(Y),色差分量(Cr,Cb)
if p==1%处理灰度图像
I=double(I);
I=conv2(I,h1,'same');%I与h的二维离散卷积
end
if p==3%处理真彩色
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h1,'same');
I(:,:,2)=conv2(I(:,:,2),h1,'same');
I(:,:,3)=conv2(I(:,:,3),h1,'same');
end
I=uint8(I);%8位无符号整型
%经过3*3,sigma=0.5二维高斯低通滤波器滤波后的图像subplot(2,2,2)
imshow(I);
title('b.滤波器3*3,sigma=0.5')
h2 = fspecial('gaussian',[3,3],1.5);
[m n p]=size(I);
if p==1
I=double(I);
I=conv2(I,h2,'same');%二维离散卷积
end
if p==3
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h2,'same');
I(:,:,2)=conv2(I(:,:,2),h2,'same');
I(:,:,3)=conv2(I(:,:,3),h2,'same');
end
I=uint8(I);
%经过3*3,sigma=1.5二维高斯低通滤波器滤波后的图像subplot(2,2,3)
imshow(I);
title('c.滤波器3*3,sigma=1.5')
h3 = fspecial('gaussian',[3,3], 2.5);
[m n p]=size(I);
if p==1
I=double(I);
I=conv2(I,h3,'same');
end
if p==3
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h3,'same');
I(:,:,2)=conv2(I(:,:,2),h3,'same');
I(:,:,3)=conv2(I(:,:,3),h3,'same');
end
I=uint8(I);
%经过3*3,sigma=2.5二维高斯低通滤波器滤波后的图像subplot(2,2,4)
imshow(I);
title('d.滤波器3*3,sigma=2.5')
end
程序调用
%glpfUse.m
%调用function glpf()处理灰度,真彩色,索引(伪彩色)图像并绘图glpf('填写你需要处理图像的路径')%灰度图像
glpf('填写你需要处理图像的路径')%真彩色图像
glpf('填写你需要处理图像的路径')%索引(伪彩色)图像本程序适用于数字图像处理多媒体课程设计。