Matlab下各个滤波器传递函数透视图的绘制

本文主要绘制常用滤波器的透视图,包括低通,带阻和带通滤波器。而这三类滤波器又各自包含了理想、巴特沃兹和高斯滤波器。如,低通滤波器就可以分为理想低通滤波器、n阶巴特沃兹滤波器和高斯低通滤波器。

第一:低通滤波器

1)理想低通滤波器

传递函数:


透视图结果:


代码:

a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=10;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2); n=fix(N/2);
H=zeros(M,N);
n=8;
for u=1:M
    for v=1:N
     a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));%D(u,v)的值
            if(a<=D0)%理想陷波器
                H(u,v)=1;
            else
                H(u,v)=0;
            end
    end
end
%在绘制高斯曲面的时候,加上下述代码,显示得美观
figure;
surf(U,V,H)


2)n阶巴特沃兹低通滤波器

传递函数:


透视图结果:


代码:

a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=10;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2); n=fix(N/2);
H=zeros(M,N);
n=8;
for u=1:M
    for v=1:N
      a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));%D(u,v)的值
      b=1+(a/D0)^2*n;
      H(u,v)=1/b;%尝试下,非理想滤波器,如巴特沃兹或者高斯
    end
end
figure;
surf(U,V,H)
title('n=8')



3)高斯低通滤波器

传递函数:


透视图结果:


代码:

a=100;
b=100;
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=10; %D0是频带的中心半径;W是频带的宽度
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2); n=fix(N/2);
H=zeros(M,N);

for u=1:M
    for v=1:N
        D1=((u-m-x0)^2+(v-n-y0).^2)^0.5;
        D2=((u-m+x0)^2+(v-n+y0).^2)^0.5;
        D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
        D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;
        %高斯低通曲面
        H(u,v) = (U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50);
        
    end
end
%在绘制高斯曲面的时候,加上下述代码,显示得美观
fangcha=50;
H = -H/(2*fangcha);
H = exp(H) / (sqrt(2*pi) * sqrt(fangcha));

surf(U,V,H)


第二:带阻滤波器

1)理想带阻滤波器

传递函数:


透视图结果:


代码:

% %绘制函数剖面线
% [u,v] = meshgrid(-400:400, -400:400);
a=100;%图像的尺寸,长
b=100;%图像的尺寸,宽
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=30;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
% n=8;
W=10;%W是频带的宽度
for u=1:M
    for v=1:N
%         D1=((u-m-x0)^2+(v-n-y0).^2)^0.5;
%         D2=((u-m+x0)^2+(v-n+y0).^2)^0.5;
%         D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
%         D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;

%         % %设计带阻滤波器
%         H(u,v)=1-exp(-0.5*((D(u,v)^2-D0^2)/(D(u,v)*W))^2);
            D=sqrt((U(u) - m) .* (U(u)-m) + (V(v) - n) .* (V(v) - n));%D(u,v)的值
            if((D<D0-W/2) || (D>D0+W/2))%理想带阻滤波器
                H(u,v)=1;
            else
                H(u,v)=0;
            end

%         H(u,v)=1-exp(-0.5*((D1*D2/D0^2)));%尝试下,非理想滤波器,如巴特沃兹或者高斯
%       a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));%D(u,v)的值
%       b=1+(a/D0)^2*n;
%       H(u,v)=1/b;%尝试下,非理想滤波器,如巴特沃兹或者高斯
    end
end
%在绘制高斯曲面的时候,加上下述代码,显示得美观
% fangcha=50;
% H = -H/(2*fangcha);
% H = exp(H) / (sqrt(2*pi) * sqrt(fangcha));
figure;
surf(U,V,H)
title('理想带阻滤波器:D0=30,W=10')
% [X,Y] = meshgrid(-2:.2:2, -2:.2:5);                                
% Z = X .* exp(-X.^2 - Y.^2);                                        
% surf(X,Y,Z)

2)n阶巴特沃兹带阻滤波器

传递函数:


透视图结果:


代码:

% %绘制函数剖面线
% [u,v] = meshgrid(-400:400, -400:400);
a=100;%图像的尺寸,长
b=100;%图像的尺寸,宽
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=30;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=50;y1=50;
x0=-50;y0=-50;
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n1=1;%巴特沃兹的阶数
W=10;%W是频带的宽度
for u=1:M
    for v=1:N
%         D1=((u-m-x0)^2+(v-n-y0).^2)^0.5;
%         D2=((u-m+x0)^2+(v-n+y0).^2)^0.5;
%         D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
%         D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;

%         % %设计带阻滤波器
%         H(u,v)=1-exp(-0.5*((D(u,v)^2-D0^2)/(D(u,v)*W))^2);
            D=sqrt((U(u) - m) .* (U(u)-m) + (V(v) - n) .* (V(v) - n));%D(u,v)的值
%             if((D<D0-W/2) || (D>D0+W/2))%理想带阻滤波器
%                 H(u,v)=1;
%             else
%                 H(u,v)=0;
%             end
            temp=1+(D*W/(D^2-D0^2))^2*n1;
            H(u,v)=1/temp;
%         H(u,v)=1-exp(-0.5*((D1*D2/D0^2)));%尝试下,非理想滤波器,如巴特沃兹或者高斯
%       a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));%D(u,v)的值
%       b=1+(a/D0)^2*n;
%       H(u,v)=1/b;%尝试下,非理想滤波器,如巴特沃兹或者高斯
    end
end
%在绘制高斯曲面的时候,加上下述代码,显示得美观
% fangcha=50;
% H = -H/(2*fangcha);
% H = exp(H) / (sqrt(2*pi) * sqrt(fangcha));
figure;
surf(U,V,H)
title('1阶巴特沃兹带阻滤波器:D0=30,W=10')
% [X,Y] = meshgrid(-2:.2:2, -2:.2:5);                                
% Z = X .* exp(-X.^2 - Y.^2);                                        
% surf(X,Y,Z)
3)高斯带阻滤波器

传递函数:


透视图:


代码:

% %绘制函数剖面线
% [u,v] = meshgrid(-400:400, -400:400);
a=100;%图像的尺寸,长
b=100;%图像的尺寸,宽
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=30;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=10;y1=10;
u0=-20;v0=20;%(u0,v0)的值对应移动中心
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n1=2;%巴特沃兹的阶数
W=10;%W是频带的宽度
for u=1:M
    for v=1:N
%         D1=((u-m-u0)^2+(v-n-v0).^2)^0.5;%()
%         D2=((u-m+u0)^2+(v-n+v0).^2)^0.5;
        
%          D1=((U(u)-m-u0)^2+(V(v)-n-v0)^2)^0.5;%()
%         D2=((U(u)-m+u0)^2+(V(v)-n+v0)^2)^0.5;

%         D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
%         D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;

%         % %设计带阻滤波器
%         H(u,v)=1-exp(-0.5*((D(u,v)^2-D0^2)/(D(u,v)*W))^2);
%             D=sqrt((U(u) - m) .* (U(u)-m) + (V(v) - n) .* (V(v) - n));
            D=sqrt((U(u) - m) .* (U(u)-m) + (V(v) - n) .* (V(v) - n));%D(u,v)的值
%             if((D<D0-W/2) || (D>D0+W/2))%理想带阻滤波器
%                 H(u,v)=1;
%             else
%                 H(u,v)=0;
%             end
            temp=-0.5*((D^2-D0^2)/(D*W))^2;
            H(u,v)=1-exp(temp);
%         H(u,v)=1-exp(-0.5*((D1*D2/D0^2)));%尝试下,非理想滤波器,如巴特沃兹或者高斯
%       a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));%D(u,v)的值
%       b=1+(a/D0)^2*n;
%       H(u,v)=1/b;%尝试下,非理想滤波器,如巴特沃兹或者高斯
    end
end
%在绘制高斯曲面的时候,加上下述代码,显示得美观
% fangcha=50;
% H = -H/(2*fangcha);
% H = exp(H) / (sqrt(2*pi) * sqrt(fangcha));
figure;
surf(U,V,H)
title('高斯带阻滤波器:D0=30,W=10')


第三:陷波器

1)理想陷波器

传递函数:


透视图:


代码:

% %绘制函数剖面线
% [u,v] = meshgrid(-400:400, -400:400);
a=100;%图像的尺寸,长
b=100;%图像的尺寸,宽
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=10;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=10;y1=10;
u0=-30;v0=30;%(u0,v0)的值对应移动中心
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n1=2;%巴特沃兹的阶数
W=10;%W是频带的宽度
for u=1:M
    for v=1:N
%         D1=((u-m-u0)^2+(v-n-v0).^2)^0.5;%()
%         D2=((u-m+u0)^2+(v-n+v0).^2)^0.5;
        
         D1=((U(u)-m-u0)^2+(V(v)-n-v0)^2)^0.5;%()
        D2=((U(u)-m+u0)^2+(V(v)-n+v0)^2)^0.5;

%         D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
%         D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;

%         % %设计带阻滤波器
%         H(u,v)=1-exp(-0.5*((D(u,v)^2-D0^2)/(D(u,v)*W))^2);
%             D=sqrt((U(u) - m) .* (U(u)-m) + (V(v) - n) .* (V(v) - n));
%             D=sqrt((U(u) - m) .* (U(u)-m) + (V(v) - n) .* (V(v) - n));%D(u,v)的值
            if((D1<=D0) || (D2<=D0))%理想带阻滤波器
                H(u,v)=0;
            else
                H(u,v)=1;
            end
%             temp=-0.5*((D^2-D0^2)/(D*W))^2;
%             H(u,v)=1-exp(temp);
%         H(u,v)=1-exp(-0.5*((D1*D2/D0^2)));%尝试下,非理想滤波器,如巴特沃兹或者高斯
%       a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));%D(u,v)的值
%       b=1+(a/D0)^2*n;
%       H(u,v)=1/b;%尝试下,非理想滤波器,如巴特沃兹或者高斯
    end
end
%在绘制高斯曲面的时候,加上下述代码,显示得美观
% fangcha=50;
% H = -H/(2*fangcha);
% H = exp(H) / (sqrt(2*pi) * sqrt(fangcha));
figure;
surf(U,V,H)
title('理想带阻滤波器:D0=10,u0=-30;v0=30')
% [X,Y] = meshgrid(-2:.2:2, -2:.2:5);                                
% Z = X .* exp(-X.^2 - Y.^2);                                        
% surf(X,Y,Z)


2)n阶巴特沃兹陷波器:

传递函数:


透视图:

代码:

a=100;%图像的尺寸,长
b=100;%图像的尺寸,宽
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=20;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=10;y1=10;
u0=-30;v0=30;%(u0,v0)的值对应移动中心
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n1=2;%巴特沃兹的阶数
W=10;%W是频带的宽度
for u=1:M
    for v=1:N
        D1=((U(u)-m-u0)^2+(V(v)-n-v0)^2)^0.5;
        D2=((U(u)-m+u0)^2+(V(v)-n+v0)^2)^0.5;
            temp=1+(D0^2/(D1*D2))^n1;
            H(u,v)=1/temp;
    end
end
figure;
surf(U,V,H)
title('2阶巴特沃兹陷波器:D0=20,u0=-30;v0=30')


3)高斯陷波器

传递函数:


透视图:


代码:

% %绘制函数剖面线
% [u,v] = meshgrid(-400:400, -400:400);
a=100;%图像的尺寸,长
b=100;%图像的尺寸,宽
U=0:a;
V=0:b;
M=length(U);N=length(V);
D0=10;%W=200;%D0是频带的中心半径;W是频带的宽度
x1=10;y1=10;
u0=-20;v0=20;%(u0,v0)的值对应移动中心
m=fix(M/2);n=fix(N/2);
H=zeros(M,N);
n1=2;%巴特沃兹的阶数
W=10;%W是频带的宽度
for u=1:M
    for v=1:N
%         D1=((u-m-u0)^2+(v-n-v0).^2)^0.5;%()
%         D2=((u-m+u0)^2+(v-n+v0).^2)^0.5;
        
         D1=((U(u)-m-u0)^2+(V(v)-n-v0)^2)^0.5;%()
        D2=((U(u)-m+u0)^2+(V(v)-n+v0)^2)^0.5;
%         D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;
%         D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;

%         % %设计带阻滤波器
%         H(u,v)=1-exp(-0.5*((D(u,v)^2-D0^2)/(D(u,v)*W))^2);
%             D=sqrt((U(u) - m) .* (U(u)-m) + (V(v) - n) .* (V(v) - n));%D(u,v)的值
%             if((D<D0-W/2) || (D>D0+W/2))%理想带阻滤波器
%                 H(u,v)=1;
%             else
%                 H(u,v)=0;
%             end
            temp=-0.5*(D1*D2/D0^2);
            H(u,v)=1-exp(temp);
%         H(u,v)=1-exp(-0.5*((D1*D2/D0^2)));%尝试下,非理想滤波器,如巴特沃兹或者高斯
%       a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));%D(u,v)的值
%       b=1+(a/D0)^2*n;
%       H(u,v)=1/b;%尝试下,非理想滤波器,如巴特沃兹或者高斯
    end
end
%在绘制高斯曲面的时候,加上下述代码,显示得美观
% fangcha=50;
% H = -H/(2*fangcha);
% H = exp(H) / (sqrt(2*pi) * sqrt(fangcha));
figure;
surf(U,V,H)
title('高斯陷波器:D0=10,u0=-20;v0=20')
% [X,Y] = meshgrid(-2:.2:2, -2:.2:5);                                
% Z = X .* exp(-X.^2 - Y.^2);                                        
% surf(X,Y,Z)



  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值