各类滤波器的MATLAB程序清单

  • 格式:doc
  • 大小:596.00 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各类滤波器的MATLAB程序清单

各类滤波器的MATLAB程序

一、理想低通滤波器

IA=imread('lena.bmp');

[f1,f2]=freqspace(size(IA),'meshgrid');

Hd=ones(size(IA));

r=sqrt(f1.^2+f2.^2);

Hd(r>0.2)=0;

Y=fft2(double(IA));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=ifft2(Ya);

figure

subplot(2,2,1),imshow(uint8(IA));

subplot(2,2,2),imshow(uint8(Ia));

figure

surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong') ;

二、理想高通滤波器

IA=imread('lena.bmp');

[f1,f2]=freqspace(size(IA),'meshgrid');

Hd=ones(size(IA));

r=sqrt(f1.^2+f2.^2);

Hd(r<0.2)=0;

Y=fft2(double(IA));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=real(ifft2(Ya));

figure

subplot(2,2,1),imshow(uint8(IA));

subplot(2,2,2),imshow(uint8(Ia));

figure

surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong') ;

三、B utterworth低通滤波器

IA=imread('lena.bmp');

[f1,f2]=freqspace(size(IA),'meshgrid');

D=0.3;

r=f1.^2+f2.^2;

n=4;

for i=1:size(IA,1)

for j=1:size(IA,2)

t=r(i,j)/(D*D);

Hd(i,j)=1/(t^n+1);

end

end

Y=fft2(double(IA));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=real(ifft2(Ya));

figure

subplot(2,2,1),imshow(uint8(IA));

subplot(2,2,2),imshow(uint8(Ia));

figure

surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong') ;

四、B utterworth高通滤波器

IA=imread('lena.bmp');

[f1,f2]=freqspace(size(IA),'meshgrid');

D=0.3;

r=f1.^2+f2.^2;

n=4;

for i=1:size(IA,1)

for j=1:size(IA,2)

t=(D*D)/r(i,j);

Hd(i,j)=1/(t^n+1);

end

end

Y=fft2(double(IA));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=real(ifft2(Ya));

figure

subplot(2,2,1),imshow(uint8(IA));

subplot(2,2,2),imshow(uint8(Ia));

figure

surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong') ;

五、高斯低通滤波器

IA=imread('lena.bmp');IB=imread('babarra.bmp');

[f1,f2]=freqspace(size(IA),'meshgrid');

D=100/size(IA,1);

r=f1.^2+f2.^2;

Hd=ones(size(IA));

for i=1:size(IA,1)

for j=1:size(IA,2)

t=r(i,j)/(D*D);

Hd(i,j)=exp(-t);

end

end

Y=fft2(double(IA));

Y=fftshift(Y);

Ya=Y.*Hd;

Ya=ifftshift(Ya);

Ia=real(ifft2(Ya));

figure

subplot(2,2,1),imshow(uint8(IA));

subplot(2,2,2),imshow(uint8(Ia));

figure

surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong')

;