Matlab下各个滤波器传递函数透视图的绘制
来源:互联网 发布:部落冲突矿工升级数据 编辑:程序博客网 时间:2024/05/23 07:25
原文地址:http://blog.csdn.net/ljp1919/article/details/44781215
本文主要绘制常用滤波器的透视图,包括低通,带阻和带通滤波器。而这三类滤波器又各自包含了理想、巴特沃兹和高斯滤波器。如,低通滤波器就可以分为理想低通滤波器、n阶巴特沃兹滤波器和高斯低通滤波器。
第一:低通滤波器
1)理想低通滤波器
传递函数:
透视图结果:
代码:
[cpp] view plain copy
- 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阶巴特沃兹低通滤波器
传递函数:
透视图结果:
代码:
[cpp] view plain copy
- 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)高斯低通滤波器
传递函数:
透视图结果:
代码:
[cpp] view plain copy
- 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)理想带阻滤波器
传递函数:
透视图结果:
代码:
[cpp] view plain copy
- % %绘制函数剖面线
- % [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阶巴特沃兹带阻滤波器
传递函数:
透视图结果:
代码:
[cpp] view plain copy
- % %绘制函数剖面线
- % [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)
传递函数:
透视图:
代码:
[cpp] view plain copy
- % %绘制函数剖面线
- % [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)理想陷波器
传递函数:
透视图:
代码:
[cpp] view plain copy
- % %绘制函数剖面线
- % [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阶巴特沃兹陷波器:
传递函数:
透视图:
代码:
[cpp] view plain copy
- 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)高斯陷波器
传递函数:
透视图:
代码:
[cpp] view plain copy
- % %绘制函数剖面线
- % [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)
0 0
- Matlab下各个滤波器传递函数透视图的绘制
- Matlab下各个滤波器传递函数透视图的绘制
- CIC滤波器传递函数的存在性问题
- matlab-自控原理 传递函数的MATLAB表达
- matlab中传递函数的离散化
- 由滤波器系数绘制尺度函数和小波函数图像的Matlab程序
- 【转】由滤波器系数绘制尺度函数和小波函数图像的Matlab程序
- ARM下传递函数使用的方法
- matlab 中带迟延环节的开环传递函数来获得其闭环传递函数
- Matlab下地理热度图的绘制
- matlab传递函数延时相关
- matlab自带的滤波器
- FIR滤波器的Matlab实现
- Matlab中传递函数的表示和计算_20151222
- matlab-自控原理 计算传递函数的零极点
- MATLAB实现系统传递函数模型的建立与转换
- LCL滤波器传递函数与逆变器谐波
- MATLAB滤波器
- SSH中文乱码
- 最大子串和
- Android中Crash收集
- Linux中atexit()在有多个自定义函数时对函数的调用顺序验证
- [iOS MQTT消息订阅] MQTTClient框架
- Matlab下各个滤波器传递函数透视图的绘制
- XShell,乱码,串口
- 常用Git命令
- poj 3255 Roadblocks (次短路+dijkstra)
- 微信红包的架构设计简介
- 树状数组求逆序对
- 生成sqlite3.lib
- 创建Git新分支步骤
- FFMPEG x264编译