当前位置:文档之家› Matlab之小波滤波函数

Matlab之小波滤波函数

Matlab之小波滤波函数
Matlab之小波滤波函数

Matlab之小波滤波函数

南京理工大学仪器科学与技术专业谭彩铭

2010-3-20

1 wfilters函数

[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('wname') computes four filters associated with the orthogonal or biorthogonal wavelet named in the string 'wname'.

The four output filters are

Lo_D, the decomposition low-pass filter

Hi_D, the decomposition high-pass filter

Lo_R, the reconstruction low-pass filter

Hi_R, the reconstruction high-pass filter

2 biorfilt函数

The biorfilt command returns either four or eight filters associated with biorthogonal wavelets.

3 orthfilt函数

[Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt(W) computes the four filters associated with the scaling filter W corresponding to a wavelet

4 biorwaef函数

[RF,DF] = biorwavf(W) returns two scaling filters associated with the biorthogonal wavelet specified by the string W.

5 coifwavf函数

F = coifwavf(W) returns the scaling filter associated with the Coiflet wavelet specified by the string W where W = 'coifN'. Possible values for N are 1, 2, 3, 4, or 5

6 dbaux函数

W = dbaux(N,SUMW) is the order N Daubechies scaling filter such that sum(W) = SUMW. Possible values for N are 1, 2, 3, ...

W = dbaux(N) is equivalent to W = dbaux(N,1)

W = dbaux(N,0) is equivalent to W = dbaux(N,1)

7 dbwavf函数

F = dbwavf(W) returns the scaling filter associated with Daubechies wavelet specified by the string W where W = 'dbN'. Possible values for N are 1, 2, 3, ..., 45.

8 mexihat函数

[PSI,X] = mexihat(LB,UB,N) returns values of the Mexican hat wavelet on an N point regular grid, X, in the interval [LB,UB].

Output arguments are the wavelet function PSI computed on the grid X.

This wavelet has [-5 5] as effective support.

This function is proportional to the second derivative function of the Gaussian probability density function.

9 waveinfo函数

waveinfo provides information on all wavelets within the toolbox.

10 meyer函数

11 meyeraux函数

12 morlet函数

13 symwavf函数

F = symwavf(W) returns the scaling filter associated with the symlet wavelet specified by the string W where W = 'symN'. Possible values for N are 2, 3, ..., 45.

14 一维离散小波变换相关联的函数

所谓的单尺度指进行一层小波分解,我想其分解的过程应该是简单的一个高通,一个低通FIR 滤波算法,再分别按2下采样(每两个点舍去一个点)。

从一定程度上验证这个问题有一个比较简单的方法。dwt 函数的输入参数可以是小波名称,也可以是滤波器组系数,两者分别尝试,观察结果是否相同。程序如下。

1

图2

可见分解的过程就是简单的类似FIR 滤波运算的过程(一个高通,一个低通),那么重构的过程是什么呢?

我们看下图所示程序。

3

图4

可见,小波重构的过程也是简单地类似FIR 滤波运算的过程。 那么,小波滤波的过程是什么呢? 还有个问题,matlab 小波分解与小波重构后的信号和原信号之间有误差,那么这个误差是如何产生的?

15 完全重构滤波器组

实际编写的小波滤波算法中,其过程实际上就是完全重构滤波器进行滤波的过程,参考杨志华 杨力华译《小波基础及应用教程》中关于滤波器组的介绍。 对于下图一个简单系统,其中H 是FIR 滤波器。

确有W(z)=H(z)V(z)吗?

设v=[v(1) v(2) v(3) v(4) v(5)],H=[a(1) a(2) a(3) a(4)]。 则有1

2

3

4

()(1)(2)(3)(4)(5)V z v v z

v z

v z

v z

----=++++,

1

2

3

()(1)(2)(3)(4)H z a a z

a z a z ---=+++

那么由W(z)=H(z)V(z)知,对应的W(z)为

1

2

3

4

5

()()(1)(1)((1)(2)(2)(1))((1)(3)(2)(2)(3)(1))((1)(4)(2)(3)(3)(2)(4)(1))((1)(5)(2)(4)(3)(3)(4)(2))((2)(5)(3)(4)(4)(3))((3)(5)(4H z V z a v a v a v z a v a v a v z

a v a v a v a v z a v a v a v a v z

a v a v a v z

a v a -----=++++++

++++++++

++++6

7

)(4))(4)(5)v z a v z

--+

这样,你应该清楚得出的w序列是什么了,matlab中的conv命令恰好对应上式中的运算。常规理解是进来几个数,应该就出去几个数,这里输出序列w的数量多于输入序列v的数量。当然实际中输入序列v的数量是很多的,一头一尾多出的几个数完全可以忽略。

下列程序验证了完全重构滤波器

图5

当输入数据很多时,舍去前3个数和后3个数,输出信号和原信号一模一样。程序及输出结果如下面图所示。

6

图7

16 完全重构滤波器组的滤波效应

对db2小波的4个滤波系数[Lo_D,Hi_D,Lo_R,Hi_R],观察图5,图6中的程序,实际使用的滤波系数应为[h0,h1,h2,h3] = wfilters('db2')命令得到的滤波系数的倒序所得。

下面我们来看看滤波系数h0和滤波系数h00之间的区别,其中 h0=[-0.1294 0.2241 0.8365 0.4830]; h00=[0.4830 0.8365 0.2241 -0.1294]; 二者从形式上看只是顺序反了。 输入下图所示程序,并观察结果。

8

图9

对于这一点,理论证明很简单 即证明232301233210jw

j w

j w

jw

j w

j w

a a e

a e

a e

a a e

a e

a e

------+++=+++,两边经展开化简

后易证明等式成立。

对FIR 滤波器,其滤波系数数量不论为多少,系数倒序后的幅频响应特性和倒序前的幅频响应特性是一样的。

研究完全重构滤波器组的滤波效应,我们似乎还是离不开一正弦波为基的经典滤波分析理论,因为小波分解过程依然是FIR 滤波。(此句有误,看起来像是FIR 滤波,但是还有重构的过程,整个过程还是由若干不同尺度的尺度函数和小波函数的组合,所谓的低通滤波,即去掉高频的小波函数部分)

17 wavedec 和wrcoef 函数 Wavedec 函数:

wavedec performs a multilevel one-dimensional wavelet analysis using either a specific wavelet ('wname') or a specific wavelet decomposition filters (Lo_D and Hi_D, see wfilters).

[C,L] = wavedec(X,N,'wname') returns the wavelet decomposition of the signal X at level N, using 'wname'. N must be a strictly positive integer (see wmaxlev for more information). The output decomposition structure contains the wavelet decomposition vector C and the bookkeeping vector L. The structure is organized as in this level-3 decomposition example:

图10

wrcoef函数:

wrcoef reconstructs the coefficients of a one-dimensional signal, given a wavelet decomposition structure (C and L) and either a specified wavelet ('wname', see wfilters for more information) or specified reconstruction filters (Lo_R and Hi_R).

这两个函数是构成一维小波滤波程序的主要部分,程序及输出结果如下。

图11

图12

18 编写能较方便使用的小波滤波子程序

下列程序为从低层开始编写的一维小波滤波程序,其中tip变量的引入是因为根据输入数据的长度的奇偶不一样会导致程序有小小的不同。我没有仔细研究matlab中DWT函数是如何统一处理数据长度的的问题。

图13

图14

图15

图16

输出结果如下,

图17

19 小波滤波原理简析

通常我们所用的的小波程序的编写都是基于完全重构滤波器组的内容。但是我们初次学习小波理论时,看见的描述一般是这样的,说一个信号可以由某个主基经伸缩或延长后得到的基来表示。比较神奇的是,完全重构滤波器可以和小波对应,之前已经研究过这个问题。所谓的多分辨分析就是以完全重构滤波器为基础的。

图13中程序的滤波原理就是去掉db2小波基对应系数比较大的部分。db2小波反映的往往是信号的变化部分,衰减这部分相当于滤掉了高频部分。

20 小波阈值去噪法

上面内容取自(截屏)下图所示文献:

下面,更改图13对应的程序中的局部内容,得到硬阈值,软阈值和模平方阈值三种方法的输出结果。需要修改的程序内容有:

(1) 图13程序中,将door 值设为0.8

(2) 图16程序要做较大的修改,如下图所示。注释不同的语句,得到三个输出图形。

现在问题是图13所示程序中的door值(即阈值)如何确定。

(完整版)MATLAB常用函数大全

一、MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数(Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 三、适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 四、MATLAB的永久常数

简单低通滤波器设计及matlab仿真

东北大学 研究生考试试卷 考试科目: 课程编号: 阅卷人: 考试日期: 姓名:xl 学号: 注意事项 1.考前研究生将上述项目填写清楚. 2.字迹要清楚,保持卷面清洁. 3.交卷时请将本试卷和题签一起上交. 4.课程考试后二周内授课教师完成评卷工作,公共课成绩单与试卷交研究生院培养办公室, 专业课成绩单与试卷交各学院,各学院把成绩单交研究生院培养办公室. 东北大学研究生院培养办公室

数字滤波器设计 技术指标: 通带最大衰减: =3dB , 通带边界频率: =100Hz 阻带最小衰减: =20dB 阻带边界频率: =200Hz 采样频率:Fs=200Hz 目标: 1、根据性能指标设计一个巴特沃斯低通模拟滤波器。 2、通过双线性变换将该模拟滤波器转变为数字滤波器。 原理: 一、模拟滤波器设计 每一个滤波器的频率范围将直接取决于应用目的,因此必然是千差万别。为了使设计规范化,需要将滤波器的频率参数作归一化处理。设所给的实际频 率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器令λ=p ΩΩ/,则1 =p λ, p s s ΩΩ=/λ。令归一化复数变量为p ,λj p =,则p p s j j p Ω=ΩΩ==//λ。所以巴 特沃思模拟低通滤波器的设计可按以下三个步骤来进行。 (1)将实际频率Ω规一化 (2)求Ωc 和N 11010/2-=P C α s p s N λααlg 1 10 110lg 10 /10/--= 这样Ωc 和N 可求。 p x fp s x s f

根据滤波器设计要求=3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 N p N j G 222 )/(11 11)(ΩΩ+= += λλ (3)确定)(s G 因为λj p =,根据上面公式有 N N N p j p p G p G 22)1(11 )/(11)()(-+= += - 由 0)1(12=-+N N p 解得 )221 2exp(πN N k j p k -+=,k =1,2, (2) 这样可得 1 )21 2cos(21 ) )((1 )(21+-+-= --= -+πN N k p p p p p p p G k N k k 求得)(p G 后,用p s Ω/代替变量p ,即得实际需要得)(s G 。 二、双线性变换法 双线性变换法是将s 平面压缩变换到某一中介1s 平面的一条横带里,再通过标准变换关系)*1exp(T s z =将此带变换到整个z 平面上去,这样就使s 平面与z 平面之间建立一一对应的单值关系,消除了多值变换性。 为了将s 平面的Ωj 轴压缩到1s 平面的1Ωj 轴上的pi -到pi 一段上,可以通过以下的正切变换来实现: )21 tan(21T T Ω= Ω 这样当1Ω由T pi -经0变化到T pi 时,Ω由∞-经过0变化到∞+,也映射到了整个Ωj 轴。将这个关系延拓到整个s 平面和1s 平面,则可以得到

中值滤波原理及MATLAB实现.

中值滤波原理及MATLAB实现 摘要:图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵。本文将纯净的图像加入椒盐噪声,然后采用中值滤波的方法对其进行去噪。中值滤波是一种常用的非线性信号处理技术,在图像处理中,它对滤除脉冲干扰噪声最为有效。文章阐述了中值滤波的原理、算法以及在图像处理中的应用。MATLAB是一种高效的工程计算语言,在数据处理、图像处理、神经网络、小波分析等方面都有广泛的应用。 关键词:图像,中值滤波,去噪,MATLAB 1. 引言 20世纪20年代,图像处理首次得到应用。上个世纪60年代中期,随着计算机科学的发展和计算机的普及,图像处理得到广泛的应用。60年代末期,图像处理技术不断完善,逐渐成为一个新兴的学科。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。 为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤波器,低通滤波器,维纳滤波器,最小失真法等。这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量。 2. 中值滤波 在图像滤波中,常用的方法是线性滤波技术和非线性滤波技术,线性滤波以其完美的理论基础,数学处理简单、易于采用和硬件实现等优点,一直在图像滤波领域中占有重要的地位。线性滤波对加性高斯噪声有较好的平滑作用,但对脉冲信号和其它形式的高频分量抑制效果较差,且模糊信号边缘。非线性滤波是基于对输入信号序列的一种非线性投影关系,常把某一特定的噪声近似为零而保留信号的重要特征,一定程度上克服线性滤波器的不足,非线性滤波早期运用较多的是中值滤波器,其应用于多维信号处理时,对窄脉冲信号具有良好的抑制能力,但

matlab各种函数的用法

1 Text函数的用法: 用法 text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string text(x,y,z,'string') 在三维图形空间中的指定位置(x,y,z)上显示字符串string 2, plot([0,z1,z12],'-b','LineWidth',3)[ ]里面表示数组. 3, x,y均为矩阵,plot命令就是画出x,y矩阵对应的二维平面的点形成的曲线。y(:,1)中逗号前是行,逗号后是列,冒号表示从几到几。所以y(:,1)表示第一列的所有元素。如果是y(3:5,1)则表示第一列的第3到第5行对应的元素。只要你的y矩阵有100列,那你当然可以将1改成100。同理,x矩阵也可以这样。 4 sym的意思是symbol,就是后面括号里面是个代数式,要进行符号运算,class()判断对象是什么类型。 5 matlab控制运算精度用的是digits和vpa这两个函数 xs = vpa(x,n) 在n位相对精度下,给出x的数值型符号结果xs xs = vpa(x) 在digits指定的精度下,给出x的数值型符号结果xs

digits用于规定运算精度,比如: digits(20); 这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如: digits(5); a=vpa(sqrt(2)); 这样a的值就是1.4142,而不是准确的1.4880 又如: digits(5); a=vpa(sqrt(2)); b=sqrt(2); 这样a的值是1.4142,b没有用vpa函数,所以b是1.4880...... 6

各类滤波器的MATLAB程序清单

各类滤波器的MATLAB程序 一、理想低通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r>=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(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r<=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(''); [f1,f2]=freqspace(size(IA),'meshgrid'); D=; 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));

基于Matlab的常用滤波算法研究(含代码)讲解

毕业设计(论文) UNDERGRADUATE PROJECT (THESIS) 题目: 冲击测试常用滤波算法研究 学院 专业 学号 学生姓名 指导教师 起讫日期

目录 摘要 (2) ABSTRACT (3) 第一章绪论 (4) 1.1课题背景 (4) 1.2国内外相关领域的研究 (4) 1.3主要研究内容与创新 (5) 1.3.1研究内容与意义 (5) 1.3.2课题的创新点 (5) 1.3.3 研究目的与技术指标 (6) 第二章数字滤波基础 (7) 2.1数字滤波算法概念 (7) 2.2数据采样与频谱分析原理 (8) 2.2.1 时域抽样定理 (8) 2.2.2 离散傅立叶变换(DFT) (8) 2.2.3 快速傅立叶变换(FFT) (9) 2.2.4 频谱分析原理 (9) 2.3常用数字滤波算法基础 (10) 2.3.1常用数字滤波算法分类 (10) 2.3.2常用数字滤波算法特点 (11) 2.3.3常用滤波算法相关原理 (13) 2.4 冲击测试采样数据 (16) 2.4.1噪声的特点与分类 (16) 2.4.2冲击测试采样数据特点 (17) 2.5 MATLAB简介 (17) 2.5.1 MATLAB功能简介 (18) 2.5.2 MATLAB的发展 (18) 第三章、冲击测试滤波算法设计及滤波效果分析 (20) 3.1 冲击测试采样数据的分析 (20) 3.2 滤波算法设计及效果分析 (21) 3.2.1 中位值平均法的设计 (21) 3.2.2限幅法和限速法的设计 (23) 3.2.3一阶滞后法的设计 (25) 3.2.4低通法的设计 (26) 第四章结论与展望 (34) 4.1冲击测试的滤波算法总结 (34) 4.2冲击测试的滤波算法展望 (34) 致谢 (36) 参考文献 (37) 附录:程序代码清单 (38)

自动控制常见MATLAB函数的应用

自动控制常见MATLAB 函数的应用 1、在matlab 中采用roots 函数求解多项式的根,采用conv 函数实 现多项式的积,相互连接的模块的模型求解也相当简单(1)、串联连接命令G=G1*G2(2)、并联连接命令G=G 1±G2(3)、反馈连接命令G=feedback (G1,G2,Sign )(sign 用来表示系统是正反馈或负反馈,sign=-1为负反馈) 例如:① 程序如下: >>p=[1304]; >>roots(p) ans = -3.3553 0.1777+1.0773i 0.1777-1.0773i ②、用matlab 实现: 程序如下: >>p=[321];q=[14]; >>n=conv(p,q) n = 31494③、一个传递函数模型,可以由下面的命令输入:32()34p s s s =++2 ()(321)(4)n s s s s =+++325()345 s G s s s s +=+++

>>num=[15];den=[1345]; >>G=tf(num,den) Transfer function: s +5 --------------------- s^3+3s^2+4s +5 ④、如下图所示,前向传递函数为G (S ) ,反馈回路传递函数为H(S),利用feedback 计算系统的闭环传递函数 程序如下: >>numg=[1];deng=[50000]; >>numh=[11];denh=[12]; >>[num,den]=feedback(numg,deng,numb,denh,-1); >>[num,den]=feedback(numg,deng,numh,denh,-1); >>G=tf(num,den) () R S ???→

基于matlab-的巴特沃斯低通滤波器的实现

基于matlab 的巴特沃斯低通滤波器的实现 一、课程设计的目的 运用MATLAB实现巴特沃斯低通滤波器的设计以及相应结果的显示,另外还对多种低通滤波窗口进行了比较。 二、课程设计的基本要求 1)熟悉和掌握MATLAB 的基本应用技巧。 2)学习和熟悉MATLAB相关函数的调用和应用。 3)学会运用MATLAB实现低通滤波器的设计并进行结果显示。 三、双线性变换实现巴特沃斯低通滤波器的技术指标: 1.采样频率10Hz。 2.通带截止频率fp=0.2*pi Hz。 3.阻带截止频率fs=0.3*pi Hz。 4.通带衰减小于1dB,阻带衰减大于20dB 四、使用双线性变换法由模拟滤波器原型设计数字滤波器 程序代码: T=0.1; FS=1/T; fp=0.2*pi;fs=0.3*pi; wp=fp/FS*2*pi; ws=fs/FS*2*pi; Rp = 1; % 通带衰减 As = 15; % 阻带衰减 OmegaP = (2/T)*tan(wp/2); % 频率预计 OmegaS = (2/T)*tan(ws/2); % 频率预计 %设计巴特沃斯低通滤波器原型

N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS))); OmegaC = OmegaP/((10^(Rp/10)-1)^(1/(2*N))); [z,p,k] = buttap(N); %获取零极点参数 p = p * OmegaC ; k = k*OmegaC^N; B = real(poly(z)); b0 = k; cs = k*B; ds = real(poly(p)); [b,a] = bilinear(cs,ds,FS);% 双线性变换 figure(1);% 绘制结果 freqz(b,a,512,FS);%进行滤波验证 figure(2); % 绘制结果 f1=50; f2=250; n=0:63; x=sin(2*pi*f1*n)+sin(2*pi*f2*n); subplot(2,2,1);stem(x,'.'); title ('输入信号'); y=filter(b,a,x); subplot(2,2,2);stem(y,'.') ; title('滤波之后的信号'); figure(3) ; stem(y,'.') title('输出的信号'))

matlab实现中值滤波去除脉冲噪声matlab小程序

matlab实现中值滤波去除脉冲噪声matlab小程序(图像处理)2010-04-1612:58:44阅读8评论0字号:大中小 实验原理:中值滤波器是将领域内像素灰度的中值代替该像素的值,对处理脉冲噪声(椒盐噪声)非常有效。为了对一幅图像上的某个点进行中值滤波处理,必须先将掩模内欲求的像素及其领域的像素值排序,确定出中值,主要功能是使拥有不同灰度的点看起来更接近于它的邻近值。 程序说明:函数名为mid(pic_name,s)的函数,其中参数pic_name为读入的图像,s为掩模矩阵的边长,由用户自行决定。 实验说明:随着掩模矩阵的变大,我们可以看到脉冲噪声去除得更加理想,但同时图像会变得更模糊,因为各点像素与其邻域更为接近,因此,进行中值滤波时选择一个适合的掩模矩阵十分重要。另外,我们看到图像的边界处出现了黑色的斑点,这是由于我采用了0来直译边界,这种影响可用镜像反射方式对称地沿其边界扩展来减弱。 另附:其实本实验可以完全由matlab中的函数median或medfilt2简单实现,此处写出内部处理过程,主要是为了让大家理解中值滤波的具体处理过程。 程序源代码: function mid(pic_name,s) close all; s=double(s); X=imread(pic_name); Y1=imnoise(X,'salt&pepper',0.2);%对读入的图像加脉冲噪声 figure; imshow(uint8(Y1)); Y1=double(Y1); [m,n]=size(X); s2=round(s/2); s3=round(s*s/2);%中值像素点的位置

FIR低通滤波器+matlab编程+滤波前后图形

Matlab实现振动信号低通滤波 附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。要求: (1)计算数字截止频率; (2)给出滤波器系数; (3)绘出原信号波形; (4)绘出滤波后的信号波形; 解答过程: 第一部分:数字截止频率的计算 =600/5000/2=0.24 数字截止频率等于截止频率除以采样频率的一半,即 n 第二部分:滤波器系数的确定 在matlab中输入如下程序,即可得到滤波器系数: n=32 Wn=0.24 b=fir1(n,Wn) 得到的滤波器系数b为 Columns 1 through 9 -0.0008 -0.0018 -0.0024 -0.0014 0.0021 0.0075 0.0110 0.0077 -0.0054 Columns 10 through 18 -0.0242 -0.0374 -0.0299 0.0087 0.0756 0.1537 0.2166 0.2407 0.2166 Columns 19 through 27 0.1537 0.0756 0.0087 -0.0299 -0.0374 -0.0242 -0.0054 0.0077 0.0110 Columns 28 through 33 0.0075 0.0021 -0.0014 -0.0024 -0.0018 -0.0008 第三部分:原信号波形 将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT 文档中,取名bv.txt,并复制到matlab的work文件夹。 在matlab中编写如下程序: x0=load('zhendong.txt'); %找到信号数据地址并加载数据。 t=0:1/5000:1023/5000; %将数据的1024个点对应时间加载

matlab 常用函数汇总

matlab 常用函数汇总 编程2008-07-10 21:45:20 阅读46 评论0 字号:大中小订阅matlab常用函数 图形注释 Title 图形标题 Xlabel X轴标记 Ylabel Y轴标记 Text 文本注释 Gtext 用鼠标放置文本 Grid 网格线 MATLAB编程语言 Function 增加新的函数 Eval 执行由MA TLAB表达式构成的字串 Feval 执行由字串指定的函数 Global 定义全局变量 程序控制流 If 条件执行语句 Else 与if命令配合使用 Elseif 与if命令配合使用 End For,while和if语句的结束 For 重复执行指定次数(循环) While 重复执行不定次数(循环) Break 终止循环的执行 Return 返回引用的函数 Error 显示信息并终止函数的执行 交互输入 Input 提示用户输入 Keyboard 像底稿文件一样使用键盘输入 Menu 产生由用户输入选择的菜单 Pause 等待用户响应 Uimenu 建立用户界面菜单 Uicontrol 建立用户界面控制 一般字符串函数 Strings MATLAB中有关字符串函数的说明 Abs 变字符串为数值 Setstr 变数值为字符串 Isstr 当变量为字符串时其值为真 Blanks 空串 Deblank 删除尾部的空串 Str2mat 从各个字符串中形成文本矩阵 Eval 执行由MA TLAB表达式组成的串 字符串比较 Strcmp , , , 比较字符串 Findstr 在一字符串中查找另一个子串

Upper 变字符串为大写 Lower 变字符串为小写 Isletter 当变量为字母时,其值为真 Isspace 当变量为空白字符时,其值为真 字符串与数值之间变换 Num2str 变数值为字符串 Int2str 变整数为字符串 Str2num 变字符串为数值 Sprintf 变数值为格式控制下的字符串 Sscanf 变字符串为格式控制下的数值 十进制与十六进制数之间变换 Hex2num 变十六进制为IEEE标准下的浮点数Hex2dec 变十六制数为十进制数 Dec2hex 变十进制数为十六进制数 建模 Append 追加系统动态特性 Augstate 变量状态作为输出 Blkbuild 从方框图中构造状态空间系统Cloop 系统的闭环 Connect 方框图建模 Conv 两个多项式的卷积 Destim 从增益矩阵中形成离散状态估计器Dreg 从增益矩阵中形成离散控制器和估计器Drmodel 产生随机离散模型 Estim 从增益矩阵中形成连续状态估计器Feedback 反馈系统连接 Ord2 产生二阶系统的A、B、C、D Pade 时延的Pade近似 Parallel 并行系统连接 Reg 从增益矩阵中形成连续控制器和估计器Rmodel 产生随机连续模型 Series 串行系统连接 Ssdelete 从模型中删除输入、输出或状态ssselect 从大系统中选择子系统 模型变换 C2d 变连续系统为离散系统 C2dm 利用指定方法变连续为离散系统 C2dt 带一延时变连续为离散系统 D2c 变离散为连续系统 D2cm 利用指定方法变离散为连续系统 Poly 变根值表示为多项式表示 Residue 部分分式展开 Ss2tf 变状态空间表示为传递函数表示 Ss2zp 变状态空间表示为零极点表示

基于MATLAB的巴特沃斯滤波器

数字信号处理课程设计 2015年 6 月25 日

目录 一.设计目的: (3) 二.设计要求: (3) 三.设计内容: (4) 3.1选择巴特涡斯低通数据滤波器及双线性变换法的原因 (4) 3.2巴特沃思低通滤波器的基本原理 (4) 3.3双线性变换法原理 (5) 3.4数字滤波器设计流程图 (7) 3.5数字滤波器的设计步骤 (7) 四.用matlab实现巴特沃斯低通数字滤波器的仿真并分析 (9) 4.1巴特沃斯低通数字滤波器技术指标的设置 (9) 4.2用matlab实现巴特沃斯低通数字滤波器的仿真 (9) 4.3波形图分析: (12) 五.总结与体会 (13) 六.附录参考文献 (14) 2

一.设计目的: 该课程设计是测控技术与仪器专业的必修课,开设课程设计的目的使学生掌握数字信号处理的基本概念和基本理论,能够利用辅助工具进行FIR和IIR数字滤波器的设计,进行一维信号的频谱分析,并进行仿真验证。加强实践教学环节,加强学生独立分析、解决问题的能力,培养学生动手能力和解决实际问题的能力,实现宽口径教育。 (1)理解低通滤波器的过滤方法。 (2)进一步熟悉低通滤波器的基本应用。 (3)用仿真工具matlab软件对设计的滤波器进行软件和硬件仿真。 (6)将对仿真结果进行比较,从而检验滤波器滤波性能的准确性。 二.设计要求: 地震发生时,除了会产生地震波,还会由地层岩石在断裂、碰撞过程中所发生的震动产生次声波。它的频率大约在每秒十赫兹到二十赫兹之间(可以用11Hz和15Hz的两个信号的和进行仿真,幅度可以分别设定为1、2)。大气对次声波的吸收系数很小,因此它可以传播的很远,而且穿透性很强。通过监测次声波信号可以监测地震的发生、强度等信息,因为自然界中广泛存在着各种次声波,这就对地震产生的次声波产生了干扰(可以用白噪声模拟,方差为5),需要采取一定的处理方法,才能检测到该信号,要求设计检测方案;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)。 假设地震次声波信号为x,输入x=sin(2*π*11*t)+2*sin(2*π*15*t)和伴有白噪声的合成信号,经过滤波器后滤除15Hz以上的分量,即只保留x=sin(2*π*11*t)+2*sin(2*π*15*t)的分量信号,来验证设计的滤波器是否达到了设计要求。 3

数字图像处理_平均滤波与中值滤波(含MATLAB代码)

数字图像处理实验二 15生医 一、实验内容 产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3x3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。 二、运行环境 MATLAB R2014a 三、运行结果及分析 1. 四种不同的窗的3x3平均滤波 ①在 MATLAB 图形窗界面进行放大可以看出四者之间的差别: 4领域与8邻域之间没有明显差别,但是加权与未加权之间的差别较为明显,体现在: 加权后每个矩形块的四个尖角部分都被保留了下来4邻域平均滤波后图 像8邻域平均滤波后图像 4邻域加权平均滤波后图像8邻域加权平均滤波后图像

(图像四周边界不考虑),而未加权的尖角处黑色变为白色。 ②原因分析: 加权后尖角处原来白色的点(1)进行计算3/5=0.6四舍五入后值为1,保持白色,原来黑色的点(0)进行计算2/5=0.4四舍五入后值为0,保持黑色;而未加权尖角处无论原来是黑色还是白色,进行计算 2/4=0.5四舍五入后值为1,所以原先的黑色(0)也变成了白色(1)。 ③下图为放大后的截图: 2.中值滤波与原图像的对比

①在 MATLAB图形窗界面进行放大后可观察出: 使用3x3 方形中值滤波模板的效果与4领域、8领域加权平均滤波的 效果相同,每个矩形块的四个尖角部分都被保留了下来(图像四周边界不考虑)。 ②原因分析: 套用3x3方形中值滤波模板后,尖角处原来白色的点(1)在窗内1多于0,取中值后仍保持白色,原来黑色的点(0)在窗内0多于1,取中值后仍保持白色。 ③下图为放大后的截图: 原图像中值滤波后图像

中值滤波快速算法&菱形窗口matlab实现

function g=QuiMedFil2(f) g=f; t=2; [m,n]=size(f); for i=2:m-1 for j=2:n-1 if(j==2) A=f(i-1:i+1,j-1:j+1); hist=imhist(A); mdn=median(A(:)); %mdn=Med(f(i-1:i+1,j-1:j+1))+1; L=find(f(i-1:i+1,j-1:j+1)th mdn=mdn-1; Ltmdn = Ltmdn-hist(mdn+1); end

while (Ltmdn+hist(mdn+1))<=th Ltmdn=Ltmdn+hist(mdn+1); mdn=mdn+1; end g(i,j)=mdn; end end t=t+1;%t-line; end ======================================= =========================实现过程如下 rgb=imread('Figure1.JPG'); %此处通过matlab读入任何一幅图像 >> I=rgb2gray(rgb); %将图像灰度化 >> I=imresize(I,0.1); %若图像过大可进行适当调整,或省略此步 >> g=QuiMedFil2(I) %调用所编程序执行中值滤波快速算法 figure,imshow(I),figure,imshow(g) %显示原图像和滤波后的图像 =============================================================================== =================================================== 与传统中值滤波算法的同窗口的计算时间对比 快速算法略高于一般算法 =============================================================================== =====================================================菱形5*5中值滤波程序function g=MedFilRho(f) g=f; g=[]; [m,n]=size(f); for i=3:(m-2) for j=3:(n-2) B=[f(i,j),f(i-2,j),f(i-1,j),f(i+1,j),f(i+2,j),f(i,j-1),f(i,j-2),f(i,j+1),f(i,j+2),f(i-1,j-1),f(i+1,j+1),f(i-1,j+1),f(i+1,j-1)]; g(i,j)=median(B); end end 备注:程序为原创,原文地址: https://www.doczj.com/doc/6b11478717.html,/walqxlqxaw/blog/item/aabb517f877e6f190dd7daad.ht ml

(完整版)matlab函数大全最完整版

MATLAB函数大全 Matlab有没有求矩阵行数/列数/维数的函数? ndims(A)返回A的维数 size(A)返回A各个维的最大元素个数 length(A)返回max(size(A)) [m,n]=size(A)如果A是二维数组,返回行数和列数nnz(A)返回A中非0元素的个数 MATLAB的取整函数:fix(x), floor(x) :,ceil(x) , round(x) (1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans = 3 -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans =

3 -4 (3)ceil(x) : 大于x 的最小整数>> ceil( [3.12 -3.12]) ans = 4 -3 (4)四舍五入取整 >> round(3.12 -3.12) ans = >> round([3.12 -3.12]) ans =

3 -3 >> 如何用matlab生成随机数函数 rand(1) rand(n):生成0到1之间的n阶随机数方阵rand(m,n):生成0到1之间的m×n的随机数矩阵(现成的函数) 另外: Matlab随机数生成函数 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布的随机数生成器 frnd f分布的随机数生成器 gamrnd 伽玛分布的随机数生成器 geornd 几何分布的随机数生成器 hygernd 超几何分布的随机数生成器

Matlab的常用函数及指令简单介绍

摘要本文从计算机语言、数学建模、网络控制系统仿真与结构化思维等方面阐述了半年来学习Matlab的心得体会与感想。由于个人知识有限在部分细节问题的理解上可能存有偏差还请老师批评指正不吝赐教。关键词Matlab语言数学建模软件网络控制系统仿真 结构化思维 - 1 - 学习Matlab快半个学期了虽然还有很多问题不是很清楚但通过实践学习我对于Matlab总算有个整体的理解而且每次上机操作都会有一定的收获和感想下面就谈谈我个人对于Matlab的一些看法。 Matlab语言 Matlab和其它语言不一样我这个学期学习的是C语言另外对于Action Script、HTML、php语言也接触过一些。C语言主要是面向过程的它的灵活性比较强可根据自己的意图编辑程序但所耗费的时间和精力比较大。例如定义变量就分为int、float、char等类型十分麻烦而Action Script与php就显得比较随意不必纠结于哪一种类型的变量比如定义Var number3Var playtrue即可。相对于前两者而言Matlab则显得更为灵活与快捷它是一门解释性语言能自动将高级语言翻译成机器语言。比如求tf2当t012345时tf的值。如果使用C语言则需要定义变量调用math函数还要应用for循环、输出函数而Matlab则不然只需输入t0:5f2.t然后回车即可。另外Matlab还配有许多常用公式操作起来十分方便例如想求出223tftftytyty在10y10y时的零输入响应应用dsolve 函数只需输入xdsolveD2y3Dy2y0y01Dy01 回车即得结果x3exp-t-2exp-2t。或许也正是Matlab语言简洁、优化的特点才使得它在学术界被广泛应用吧。 数学建模 对于数学建模而言Matlab是一款相当不错的建模辅助工具因为Matlab中有统计函数线性分析函数插值函数非线性分析函数等等这些数模必备的函数而且Matlab强大的绘图功能可使很多数学演算过程变得可视化。这些对于分析问题都很有帮助。虽然我们学习的Matlab是电子信息工程方向的但在下个学期班里的大部分同学都要参加数模竞赛

matlab设计低通滤波器

个matlab程序怎么编?(设计低通滤波器) 通带边缘频率10khz 阻带边缘频率22khz 阻带衰减75db 采样频率50khz 要求设计这个低通滤波器 画出脉冲响应的图形 还有滤波器的形状 具体程序怎么编? 谢谢各位大虾的指点!!! 最佳答案 1.1 实验目的 1.了解数字信号处理系统的一般构成; 2.掌握奈奎斯特抽样定理。 1.2 实验仪器 1.YBLD智能综合信号源测试仪1台 2.双踪示波器1台 3.MCOM-TG305数字信号处理与现代通信技术实验箱1台 4.PC机(装有MATLAB、MCOM-TG305配套实验软件)1台 1.3 实验原理 一个典型的DSP系统除了数字信号处理部分外,还包括A/D和D/A两部分。这是因为自然界的信号,如声音、图像等大多是模拟信号,因此需要将其数字化后进行数字信号处理,模拟信号的数字化即称为A/D转换。数字信号处理后的数据可能需还原为模拟信号,这就需要进行D/A转换。一个仅包括A/D和D/A两部分的简化数字信号处理系统功能如图1所示。 A/D转换包括三个紧密相关的过程,即抽样、量化和编码。A/D转换中需解决的以下几个重要问题:抽样后输出信号中还有没有原始信号的信息?如果有能不能把它取出来?抽样频率应该如何选择?

奈奎斯特抽样定理(即低通信号的均匀抽样定理)告诉我们,一个频带限制在0至fx以内的低通信号x(t),如果以fs≥2fx的抽样速率进行均匀抽样,则x(t)可以由抽样后的信号xs(t)完全地确定,即xs(t)包含有x(t)的成分,可以通过适当的低通滤波器不失真地恢复出x(t)。最小抽样速率fs=2fx称为奈奎斯特速率。 低通 译码 编码 量化 抽样 输入信号样点输出滤波输出 A/D(模数转换)D/A(数模转换) 图1 低通采样定理演示 为方便实现,实验中更换了一种表现形式,即抽样频率固定(10KHz),通过改变输入模拟信号的频率来展示低通抽样定理。我们可以通过研究抽样频率和模拟信号最高频率分量的频率之间的关系,来验证低通抽样定理。 1.4 实验内容 1.软件仿真实验:编写并调试MATLAB程序,分析有关参数,记录有关波形。 2.硬件实验:输入不同频率的正弦信号,观察采样时钟波形、输入信号波形、样点输出波形和滤波输出波形。 1.5 MATLAB参考程序和仿真内容 %*******************************************************************% %f—余弦信号的频率

MATLAB中常用的函数

[转]MATLAB 主要函数(一) (2008-05-11 17:09:43) 转载 标签: 分类:IT matlab 函数 杂谈 MATLAB主要函数指令表(按功能分类)原贴地址:https://www.doczj.com/doc/6b11478717.html,/casularm/archive/2007/04/20/1572638.aspx 1常用指令(General Purpose Commands) 1.1通用信息查询(General information) demo 演示程序 help 在线帮助指令 helpbrowser 超文本文档帮助信息 helpdesk 超文本文档帮助信息 helpwin 打开在线帮助窗 info MATLAB 和MathWorks 公司的信息 subscribe MATLAB 用户注册 ver MATLAB 和TOOLBOX 的版本信息 version MATLAB 版本 whatsnew 显示版本新特征 1.2工作空间管理(Managing the workspace) clear 从内存中清除变量和函数 exit 关闭MATLAB load 从磁盘中调入数据变量 pack 合并工作内存中的碎块 quit 退出MATLAB save 把内存变量存入磁盘 who 列出工作内存中的变量名

whos 列出工作内存中的变量细节 workspace 工作内存浏览器 1.3管理指令和函数(Managing commands and functions) edit 矩阵编辑器 edit 打开M 文件 inmem 查看内存中的P 码文件 mex 创建MEX 文件 open 打开文件 pcode 生成P 码文件 type 显示文件内容 what 列出当前目录上的M、MAT、MEX 文件 which 确定指定函数和文件的位置 1.4搜索路径的管理(Managing the seach patli) addpath 添加搜索路径 rmpath 从搜索路径中删除目录 path 控制MATLAB 的搜索路径 pathtool 修改搜索路径 1.5指令窗控制(Controlling the command window) beep 产生beep 声 echo 显示命令文件指令的切换开关 diary 储存MATLAB 指令窗操作内容 format 设置数据输出格式 more 命令窗口分页输出的控制开关 1.6操作系统指令(Operating system commands) cd 改变当前工作目录 computer 计算机类型 copyfile 文件拷贝 delete 删除文件 dir 列出的文件 dos 执行dos 指令并返还结果

MATLAB滤波程序

1线性平滑滤波器 用MA TLAB实现领域平均法抑制噪声程序: I=imread(' c4.jpg '); subplot(231) imshow(I) title('原始图像') I=rgb2gray(I); I1=imnoise(I,'salt & pepper',0.02); subplot(232) imshow(I1) title(' 添加椒盐噪声的图像') k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波 k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波 k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波 k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波 subplot(233),imshow(k1);title('3*3 模板平滑滤波'); subplot(234),imshow(k2);title('5*5 模板平滑滤波'); subplot(235),imshow(k3);title('7*7 模板平滑滤波'); subplot(236),imshow(k4);title('9*9 模板平滑滤波'); 2.中值滤波器 用MA TLAB实现中值滤波程序如下: I=imread(' c4.jpg '); I=rgb2gray(I); J=imnoise(I,'salt&pepper',0.02); subplot(231),imshow(I);title('原图像'); subplot(232),imshow(J);title('添加椒盐噪声图像'); k1=medfilt2(J); %进行3*3模板中值滤波 k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波 k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波 k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波 subplot(233),imshow(k1);title('3*3模板中值滤波'); subplot(234),imshow(k2);title('5*5模板中值滤波'); subplot(235),imshow(k3);title('7*7模板中值滤波'); subplot(236),imshow(k4);title('9*9 模板中值滤波'); 3状态统计滤波器:ordfilt2函数 Y=ordfilt2(X,order,domain) 由domain中非0元素指定邻域的排序集中的第order个元素代替X中的每个元素。Domain 是一个仅包括0和1的矩阵,1仅定义滤波运算的邻域。 Y=ordfilt2(X,order,domain,S) S与domain一样大,用与domain的非0值相应的S的值作为附加补偿。 4二维自适应除噪滤波器:wiener2函数 wiener2函数估计每个像素的局部均值与方差,该函数用法如下:

相关主题
文本预览
相关文档 最新文档