完整word版,各类滤波器的MATLAB程序清单
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
各类滤波器的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');