260 likes | 434 Views
第五章 滤波和滤波器设计. 线性系统理论 经典数字滤波方法 魏纳滤波器极其设计方法 MATLAB 线性滤波器设计. §5.1 线性系统理论. 一 . 概述. 系统. 输出 y(t). 系统:. 输入 x(t). (实体). 输入、输出可以是一维、二维和更高维数。 一维线性系统:. 如果:. 且满足:. 则称该系统为线性系统,线性系统输入与输出的函 数表达式为:. 一维函数卷积过程为:. 三、二维函数卷积. 将上述讨论推广到二维空间,则二维函数卷积的表达式为:. 其离散形式为:. 矩阵形式为:. 边缘增强示意图:.
E N D
第五章 滤波和滤波器设计 • 线性系统理论 • 经典数字滤波方法 • 魏纳滤波器极其设计方法 • MATLAB线性滤波器设计
§5.1 线性系统理论 一.概述 系统 输出y(t) 系统: 输入x(t) (实体) 输入、输出可以是一维、二维和更高维数。 一维线性系统: 如果: 且满足: 则称该系统为线性系统,线性系统输入与输出的函 数表达式为:
三、二维函数卷积 将上述讨论推广到二维空间,则二维函数卷积的表达式为: 其离散形式为: 矩阵形式为:
高频截止滤波器是一种较为粗略的低通滤波方法,该法首先计算信号或图像的傅立叶变换,然后将傅立叶变换幅值谱的高频部分强行设计为零,再求出傅立叶反变换得到滤波后的图像。高频截止滤波器是一种较为粗略的低通滤波方法,该法首先计算信号或图像的傅立叶变换,然后将傅立叶变换幅值谱的高频部分强行设计为零,再求出傅立叶反变换得到滤波后的图像。
%%ch5 %%f5.11_1 i=imread('saturn.tif'); j=imnoise(i,'gaussian',0,0.005); [K noise]=wiener2(j,[5 5]); noise subplot(1,2,1),imshow(j); subplot(1,2,2),imshow(K); %%f5.11_2 i=imread('c1513.tif'); j=imnoise(i,'gaussian',0,0.005); [K noise]=wiener2(j,[5 5]); subplot(1,2,1),imshow(j); subplot(1,2,2),imshow(K);
%%f5.12 i=imread('saturn.tif'); j=imnoise(i,'gaussian',0,0.005); [K noise]=wiener2(j,[5 5]); [B noise]=wiener2(j,0.005); noise imshow(j); figure,imshow(K); figure,imshow(B); %%f5.13 b=remez(10,[0 0.4 0.6 1],[1 1 0 0]); h=ftrans2(b); [h,w]=freqz(b,1,64,'whole');
colormap(jet(64)); subplot(1,2,1),plot(w/pi-1,fftshift(abs(h))); subplot(1,2,2),freqz2(h,[32 32]); %%f5.14 h=[0.1667 0.6667 0.1667 0.6667 -3.3333 0.6667 0.1667 0.6667 0.1667]; freqz2(h); %%f5.15 Hd=zeros(11,11); Hd(4:8,4:8)=1; [f1,f2]=freqspace(11,'meshgrid'); mesh(f1,f2,Hd),colormap(jet(64)); h=fsamp2(Hd); figure,freqz2(h,[32 32]),axis([-1 1 -1 1 0 1.2]);
%%f5.16 [f1,f2]=freqspace(25,'meshgrid'); Hd=zeros(25,25); d=sqrt(f1.^2+f2.^2)<0.5; Hd(d)=1; mesh(f1,f2,Hd); %%f5.17_a_b Hd=zeros(11,11); Hd(4:8,4:8)=1; [f1,f2]=freqspace(11,'meshgrid'); h=fwind1(Hd,hamming(11)); subplot(1,2,1),freqz2(h,[32 32]); h1=fwind1(Hd,hamming(11),hanning(11));
subplot(1,2,2),freqz2(h1,[32 32]); %%f5.18 [f1,f2]=freqspace(21,'meshgrid'); Hd1=ones(21); r=sqrt(f1.^2+f2.^2); Hd1((r<0.1)|(r>0.5))=0; win=fspecial('gaussian',21,2); win=win./max(win(:)); h3=fwind2(Hd1,win); figure,freqz2(h3); %%xiti_2 [f1,f2]=freqspace(25,'meshgrid'); Hd=ones(25); d=exp(0-f1.*f2/0.5);
Hd(d<0.6)=0; win=fspecial('gaussian',25,0.5); win=win./max(win(:)); h=fwind2(Hd,win); Hd1=zeros(25); Hd1(d>0.4)=1; h1=fwind2(Hd1,win); subplot(1,2,1),freqz(h); subplot(1,2,2),freqz(h1);