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

来源:互联网 发布:大连知润信息科技骗局 编辑:程序博客网 时间:2024/05/18 12:39

本文主要绘制常用滤波器的透视图,包括低通,带阻和带通滤波器。而这三类滤波器又各自包含了理想、巴特沃兹和高斯滤波器。如,低通滤波器就可以分为理想低通滤波器、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    endend%在绘制高斯曲面的时候,加上下述代码,显示得美观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;%尝试下,非理想滤波器,如巴特沃兹或者高斯    endendfigure;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);            endend%在绘制高斯曲面的时候,加上下述代码,显示得美观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;%尝试下,非理想滤波器,如巴特沃兹或者高斯    endend%在绘制高斯曲面的时候,加上下述代码,显示得美观% 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;%尝试下,非理想滤波器,如巴特沃兹或者高斯    endend%在绘制高斯曲面的时候,加上下述代码,显示得美观% 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;%尝试下,非理想滤波器,如巴特沃兹或者高斯    endend%在绘制高斯曲面的时候,加上下述代码,显示得美观% 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;%尝试下,非理想滤波器,如巴特沃兹或者高斯    endend%在绘制高斯曲面的时候,加上下述代码,显示得美观% 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;    endendfigure;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;%尝试下,非理想滤波器,如巴特沃兹或者高斯    endend%在绘制高斯曲面的时候,加上下述代码,显示得美观% 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)



2 0
原创粉丝点击