基于MATLAB自适应均衡器

基于MATLAB自适应均衡器
基于MATLAB自适应均衡器

电子信息系

综合课程设计

基于Matlab的自适应均衡器设计

专业名称通信工程

班级学号

学生姓名

指导教师

设计时间2010.12.20~2011.1.7

课程设计任务书

专业:学号:学生姓名(签名):

设计题目:基于Matlab的自适应均衡器设计

一、设计实验条件

实验室,Matlab软件

二、设计任务及要求

1. 课题要求系统学习时域均衡原理,掌握理论知识;

2. 首先进行时域均衡原理和算法设计,再在所用的仿真软件Matlab上对

设计进行仿真分析,最后写实验报告;

3. 对整个系统设计进行回顾,总结心得。

三、设计报告的内容

1.设计题目与设计任务(设计任务书)

2.前言(绪论)(设计的目的、意义等)

3.设计主体(各部分设计内容、分析、结论等)

4.结束语(设计的收获、体会等)

5.参考资料

四、设计时间与安排

1、设计时间:3周

2、设计时间安排:

熟悉实验设备、收集资料: 4天

设计图纸、实验、计算、程序编写调试: 7天

编写课程设计报告: 3天

答辩: 1天

基于Matlab的自适应均衡器设计

一、设计目的及意义:

通过本学期通信原理课程的学习,主要对数字信号系统的通信原理、传输机制等有了系统深入的了解。而实践性的课程设计能够起到提高综合运用能力,加强理论知识的学习,提高实验技术,启发创造新思想的效果。

此次课程设计是自适应均衡器设计。我们按照查找资料、软件选择、系统设计、仿真实现、结果优化这一流程进行。不仅使我们进一步巩固了课程知识,也提高了我们分析问题、解决问题的能力。

二、设计主体:

1 、设计原理

数字信号经过这样的信道传输以后,由于受到了信道的非理想特性的影响,在接收端就会产生码间干扰(ISI),使系统误码率上升,严重情况下使系统无法继续正常工作。理论和实践证明,在接收系统中插入一种滤波器,可以校正和补偿系统特性,减少码间干扰的影响。这种起补偿作用的滤波器称为均衡器。

时域均衡是利用均衡器产生的时间波形去直接校正已畸变的波形,使包括均衡器在内的整个系统的冲击响应满无码间串扰条件。频域均衡是从校正系统频率特性出发,使包括均衡器的基带系统的总特性满足无失真传输条件;频域均衡在信道特性不变,且在传输低速数据时是适用的。而时域均衡可以根据信道特性的变化进行调整,能够有效地减小码间串扰,故在高速数据传输中得以广泛应用。

图1数字基带传输系统

在实际中,当数字基带传输系统(如图1)的特性

()()ω

ω

ω

ω

R

T

G

C

G

H)

(

)

(=不

满足奈奎斯特第一准则时,就会产生有码间串扰的响应波形。现在我们来证明:

如果在接收滤波器和抽样判决之间插入一个称之为横向滤波器的可调滤波器,其冲激响应为

∑∞-∞=-

=

n

S n

T

nT

t

C

t

h)

(

)(δ

其中,

ω

ω

π

ω

π

π

d

e

nT

H

T

T

C s

S

S

T

jn

T

T

i

S

S

S

n?∑

-+

=

)

(

2

n

C完全依赖于H(ω),那么,理论上就可消除抽样时刻上的码间串扰。

由上式可以看出,这里的

()t

h

T是图2所示网络的单位冲激响应。该网络是有

无限多的按横向排列的迟延单元s

T和抽头加权系数

C组成的,因此成为横向滤波器。它的功能是利用它产生的无限多个响应波形之和,将接收滤波器输出端抽样

时刻上有码间串扰的响应波形变换成抽样时刻上无码间串扰的响应波形。由于很

想滤波器的均衡原理是建立在响应波形上的,故把这种均衡成为时域均衡。

图2横向滤波器

不难看出,横向滤波器的特性将取决于各抽头系数

C。如果C是可调整的,则图3所示的滤波器是通用的;特别是当

C可自动调整时,则它能够适应信道特性的变化,可以动态校正系统的事件响应。

图3有限长横向滤波器及其输入和输出波形

理论上,无限长的横向滤波器可以完全消除抽样时刻上的码间串扰,但实际中是不可能实现的。因为,不仅均衡器的长度受限制,并且系数的调整准确度

也受到限制。如果

的调整准确度可不到保证,即使增加长度也不不会获得显著

的效果。因此,有必要进一步讨论有限长横向滤波器的抽头增益调整问题。

设一个具有2N+1个抽头的横向滤波器,如图3(a )所示,其单位冲激响应为()t e ,则有

∑-=-=

N

N

i S

i

iT t C t e )

()(δ

有设它的输入为)(t x ,

(t

x 是被均衡的对象,并设它没有附加噪声,如图3(b )

所示,则均衡后输出波形()t y 为

∑-=-=

*=N

N

i S

i

iT t x C t e t x t y )

()()()(

在抽样时刻S kT t = (设系统无延时时)上,有

∑-=-=

N

N

i i

k i k x

C y

上式说明,均衡器在第k 个抽样时刻上的样值k y 将有2N+1个i C 与i k x -乘积之和来决定。显然,其中除0y 以外的所有y 都属于波形失真引起的码间串扰。当输

入波形

(t x 给定,及各种可能的i k x -确定是,通过调整

C

使指定的

等于零时容易

办到的,但同时要求所有的

(除k=0外)都等于零却是一件很难的事。这也说

明,利用有限长的横向滤波器减小码间串扰是可能的,但完全消除是不可能的。为了反映这些失真的大小,我们可采用最小均方和迫零算法准则来衡量。本实验采用最小均方误差算法(LMS )。

LMS (Least Mean Square )算法最早由Widrow 于1960年建立。采用最小均方算法的均衡器比迫零算法均衡器要稳定一些,它所采用的准则是使均衡器的期望输出值和实际输出值之间的均方误差(MSE)最小化的准则。由Wiener 滤波理论可知,滤波器的最优抽头系数矢量可表示为

xd

xx opt r R W 1

-=

式中xx R 是输入信号矢量()n x 的互相关函数,()n x r xd 是输入信号矢量与期望信号矢量()n d 的互相关函数。直接求解式此式的运算量非常大,尤其当滤波器的抽头系数个数比较多时。

考虑如图4所示的自适应FIR 滤波器:

)

(n y 1

-z 1

-z 1

-z

1

-z

)

1(-n y )

(~n x ∑

)

(1n w )

(2n w )

(2n w L -)

(1n w L -?

?

?

?

?

)

1(--L n y )

(0n w …

图4 自适应FIR 滤波器

()()()()()n X W n d n y n d n e H -=-=

表示滤波器在n 时刻的误差,并定义均方误差

()

()

[

]()()??

????-==?

2

2

n x W

n d E n e E n J H

de

为代价函数。

由梯度的定义可以得出,代价函数相对于滤波器抽头系数矢量w 梯度为

()()(){

}

n e k n x E n J k *--=?2

()()()[]{}

1,...1,0,2-=*---=M k n x W n d k n x E H ,

定义梯度矢量为

()()()()[]T

M def

n J n J n J n J 110,....,,-???=?

以及输入矢量和抽头系数矢量:()()()()[]T

M n x n x n x n x 1.....1+--=

()()()()[]T

M n w n w n w n w 110.....-=

则此式可以写作以下矢量形式:

()()()()[]{}

n w X n d n x E n J H -*-=?2

()n w R r xx xd 22+-= 最广泛使用的自适应算法形式为“下降算法”:

()()()()n v n n w n w μ+-=1

式中()n w 是第n 步迭代的系数矢量,()n μ是第n 步迭代的更新步长,而v(n)是第n 步迭代的更新方向矢量。

最常用的下降法为梯度下降法,又称最陡下降法。在这种算法里,更新方向矢量v(n)取作第n-1 次迭代的代价函数J (n-1)的负梯度,即最陡下降法的统一形式为

()()()()12

1

1-?-

-=n J n n w n w μ 系数2

1

为了使得到的更新公式更加简单

可得抽头系数矢量的更新公式为

()()()()()11--+-=n w R r n n w n w xx xd μ

从上式中可以看出,滤波器抽头系数矢量的更新迭代与xd r 和xx R 有关,而实际的信号处理过程中,xd r 和xx R 都不是能够先验知道的,因此通常用梯度的估计值

()1-?∧

n J 来代替()1-?n J .

()()()()()()[]

n w n x n x n d n x n J H

-*-=?∧

2

可得

()()()()()()()()[]

n w n x n X n d n x n n w n w H

-*+-=μ1

()()()()n x n e n n w *+-=μ1 其中()()()n y n d n e -=为滤波器输出与期望信号的误差函数。上式就是LMS 算法抽头系数的更新公式,容易验证。()()n J n J ??∧

是的无偏估计,

通过上面的讨论可以总结出LMS 算法的具体步骤如下: 步骤l :初始化抽头系数矢量()[]0,....0,0==n n w T

步骤2 :当n=n+1时

计算滤波器输出()()n x w n y H =, 计算误差函数()()()n y n d n e -=,

更新滤波器抽头系数矢量()()()()(),1n x n e n n w n w *+-=μ 关于上面的LMS 算法有以下几点注释:

注释l :若取()=n μ常数,则称为基本LMS 算法。 注释2 :若取()()()

,02,0(,>∈+=

ββμ),其中a n x n x a

n H

则的到归一化LMS 算法。

注释3 :在功率归一化算法中,取

()()()可由的方差表示其中,,22

n x n a

n x x

σσμ=

()()n e n x

x 22

21+-=λσσ递推计算,这里)1,0(∈λ为遗忘因子,由0

M

2

确定,而M 是滤波器阶数. 注释4 :当期望信号未知时,步骤2中的d(n)可直接用判决器的实际输出()n d ∧

代替。

本实验中选取滤波器阶数order=63,调整步长u=0.02,均为经验值。 2 、Matlab 仿真过程 1.定义一个随机信道

c=0.4; x1=c*rand(); x2=c*rand();

x3=c*rand();%信道参数

isi=[1,x1,x2,x3];

snr=10; %AWGN信道信噪比

2.定义滤波器各参数

order=63; %滤波器阶数

len=1000; %训练序列长度

u=0.02; %调整步长

M=(order-1)/2;

N=len+length(isi)-1;

e=zeros(1,N);

error=e;

y=zeros(1,N); %FIR滤波器输出

3.信道均衡过程

for i=1:100

x=sign(rand(1,len)-0.5);%采用PN码作为训练序列

noise=randn(1,N)/10.^(snr/10);%AWGN

y=conv(isi,x)+noise;%输出

wk=zeros(1,order);%横向滤波器系数

for n=order:N-M+1 %LMS算法

y1=y(n+M-1:-1:n-M-1);

d1=wk*y1';

e(n)=x(n)-d1;

wk=wk+u*e(n)*y1;

e(n)=10*log10(abs(e(n)));

endq

error=error+e;

end

4.得到横向滤波器系数

wk

输出结果:wk =

Columns 1 through 9

-0.0058 0.0297 0.0283 0.0247 -0.0147 -0.0118 0.0385 -0.0348 0.0095

Columns 10 through 18

0.0422 0.0321 0.0236 0.0126 -0.0068 -0.0310 0.0094 0.0207 -0.0136

Columns 19 through 27

0.0354 0.0016 -0.0281 0.0181 0.0014 0.0073 -0.0104 0.0038 0.0422

Columns 28 through 36

0.0149 0.0396 0.0150 0.9751 -0.2937 -0.2446 0.1236 0.0825 -0.0315

Columns 37 through 45

-0.0098 -0.0055 0.0035 -0.0426 -0.0316 0.0045 0.0007 -0.0574 0.0115

Columns 46 through 54

0.0346 -0.0578 0.0389 -0.0503 -0.0110 0.0133 0.0500 -0.0114 -0.0143

Columns 55 through 63

-0.0055 -0.0214 0.0119 0.0058 -0.0181 -0.0184 -0.0392 0.0115 -0.0272

5.计算自适应均衡器误差收敛性

error=error(order:N-M+1)/100;%误差值

t=1:length(error);

plot(t,error);

title('误差收敛曲线');

ylabel('误差dB');

xlabel('n');

0200400

6008001000

-12

-10

-8

-6

-4-2

误差收敛曲线

误差d B

n

图5误差收敛曲线

6. 随机信号通过理想均衡信道

M = 4;

msg = randint(1500,1,M); %产生一个1500 x 1 在[0,M-1]区域内的随机整数序列

modmsg = qammod(msg ,M); %进行qam 调制的映射 trainlen = 500; %定义训练序列的帧长

chan = [.986; .845; .237; .123+.31i]; %定义信道参量 filtmsg = filter(chan ,1,modmsg); % 模拟信道变化 eq1 = lineareq(8, lms(0.01));%生成均衡器对象 eq1.SigConst = qammod([0:M-1],M); % 设置星座图

[symbolest ,yd] = equalize(eq1,filtmsg ,modmsg(1:trainlen));

h = scatterplot(filtmsg ,1,trainlen ,'bx'); hold on; %以蓝星画出未经过均衡的信号

scatterplot(symbolest ,1,trainlen ,'g.',h); %在原图的基础上以绿色画出经过均衡后的信号

scatterplot(eq1.SigConst ,1,0,'k*',h); %在原图的基础上以黄色标出理想星座图

legend('Filtered signal','Equalized signal', 'Ideal signal constellation'); hold off; % 计算误码率

demodmsg_noeq = qamdemod(filtmsg ,M); %解调未均衡的码字 demodmsg = qamdemod(yd ,M); %解调已均衡的码字

[nnoeq ,rnoeq] = symerr(demodmsg_noeq(trainlen+1:end),...对比未均衡信号和样本信号的误码和误码率

msg(trainlen+1:end));

[neq ,req] = symerr(demodmsg(trainlen+1:end),...

msg(trainlen+1:end)); %对比均衡信号和样本信号的误码和误码率 disp('Symbol error rates with and without equalizer:') disp([req rnoeq])

-2-1

012

-2.5

-2-1.5-1-0.500.51

1.52

2.5Q u a d r a t u r e

In-Phase

Scatter plot

Filtered signal Equalized signal

Ideal signal constellation

图6信号星座图

输出结果: Symbol error rates with and without equalizer:

0 0.3230

3、实验结果分析

输入信号通过参数可调的数字滤波器后产生输出信号,将其与期望相应进行比较,形成误差信号,并以此通过LMS算法对滤波器参数进行逐步调整,最终使误差均方值最小,并得到自适应均衡器各阶参数。随机信号通过理想信道均衡器可完全消除码间串扰。

三、实验心得

通过分析课题和动手实践,培养了对抽象的实际问题进行逻辑抽象,以确定输入输出及其关系进而进行分析的能力。了解并掌握正确运用Matlab各种函数在数字信号处理中的作用。做课程设计同时也是对课本知识的巩固和加强。由于我主要负责系统的设计和仿真,在对课题理解和整体设计中对课本知识有了更深一步的了解。通过在图书馆细心地查找,也寻找到了很多有关书籍文献,对我们的设计有很大帮助,从中再一次证明了书籍永远是我们生命的源泉,增强了我们的自学能力。

生活就是这样,汗水预示着结果也见证了收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。

这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和邱新芸老师再次表示衷心的感谢。

四、参考资料

[1]樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2009.

[2].数字信号处理实验指导书[M].:,2009.

MATLAB自适应滤波去噪

《MATLAB自适应滤波去噪》 课程设计报告 1.课程设计目的 此次课程设计目的是为了让我们学会使用MATLAB进行计算机仿真,使用自适应滤波法设计一个语音去噪声电路。培养我们的电路设计思路及其算法,明白理论与实践相结合的重要性,培养了我们的实际操作能力以及锻炼我们对实际问题的分析与解决的能力。 2.课程设计内容 2.1 LMS自适应算法原理 自适应过程一般采用典型LMS自适应算法,但当滤波器的输入信号为有色随机过程时,特别是当输入信号为高度相关时,这种算法收敛速度要下降许多,这主要是因为输入信号的自相关矩阵特征值的分散程度加剧将导致算法收敛性能的恶化和稳态误差的增大。此时若采用变换域算法可以增加算法收敛速度。变换域算法的基本思想是:先对输入信号进行一次正交变换以去除或衰减其相关性,然后将变换后的信号加到自适应滤波器以实现滤波处理,从而改善相关矩阵的条件数。因为离散傅立叶变换DFT 本身具有近似正交性,加之有FFT快速算法,故频域分块LMS FBLMS 算法被广泛应用。 FBLMS算法本质上是以频域来实现时域分块LMS算法的,即将时域数据分组构成N个点的数据块,且在每块上滤波权系数保持不变。其原理框图如图2所示。FBLMS 算法在频域内可以用数字信号处理中的重叠保留法来实现,其计算量比时域法大为减少,也可以用重叠相加法来计算,但这种算法比重叠保留法需要较大的计算量。块数据的任何重叠比例都是可行的,但以50%的重叠计算效率为最高。对FBLMS算法和典

型LMS算法的运算量做了比较,并从理论上讨论了两个算法中乘法部分的运算量。本文从实际工程出发,详细分析了两个算法中乘法和加法的总运算量,其结果为: 复杂度之比=FBLMS实数乘加次数/LMS实数乘加次数=(25Nlog2N+2N-4)/[2N(2N-1)] 采用ADSP的C语言来实现FBLMS算法的程序如下: for(i=0;i<=30;i++) {for(j=0;j<=n-1;j++) {in[j]=input[i×N+j;] rfft(in,tin,nf,wfft,wst,n); rfft(w,tw,wf,wfft,wst,n); cvecvmlt(inf,wf,inw,n); ifft(inw,t,O,wfft,wst,n); for(j=0,j<=N-1;j++) {y[i×N+j]=O[N+j].re; e[i×N+j]=re fere[i×N+j]-y[i×N+j]; temp[N+j]=e[i×N+j;}

matlab常用计算命令

Matlab常用计算命令(部分) by sunny_疑似天人 1.多项式运算: poly2sym函数,将给定的多项式系数向量转化为符号表达式,以降幂排序。 poly函数,得到矩阵的特征多项式(首项系数为1)的系数向量,然后也可以用poly2sym函数转化为多项式的符号表达式。 roots函数,得到方程的根,调用形式为roots(a),其中a 为多项式的系数;也可以直接调用roots([1 2 1])。 compan函数与eig函数,通过compan函数建立多项式的伴随矩阵再通过eig函数求伴随矩阵特征值以得到多项式的所有根。效果与roots函数相同;同时这两个函数也可单独使用: compan函数,建立多项式的伴随矩阵,如:a=[1 2 3 ];compan(a) ans = -2 -3 1 0 eig函数,求矩阵的特征值。 conv函数,求多项式的乘积,如:pd=conv(p,d),其中p和d均为多项式系数向量,得到的同样也是多项式的系数向量。 deconv函数,求多项式的除法。 polyder函数,求多项式的微分。即求一阶导数,如果要求多项式的高阶微分,可以通过循环实现。

polyfit 函数,对数据拟合得到多项式,这个多项式即可大致代表数据变化规律。例如: x=0:pi/20:pi/2; y=sin(x); p=polyfit(x,y,5) x1=0:pi/30:pi*2; y1=sin(x1); y2=polyval(p,x1); plot(x1,y1,'b-',x1,y2,'r*') legend('原曲线','拟合曲线') axis([0 7 -1.2 4]) p = 0.0057 0.0060 -0.1721 0.0021 0.9997 0.0000 1 2 3 4 5 6 7 -1-0.500.511.522.533.54 原曲线拟合曲线 2.向量及其运算 x=linspace(a,b,n),生成一个向量x ,其中a ,b 分别是生成矢量的第一个和最后一个元素,n 是采样总点数。当n 缺省时默认生成100维的向量。

自适应滤波LMS与RLS地matlab实现

MATLAB 仿真实现LMS 和RLS 算法的二阶AR 模型 及仿真结果分析 一、题目概述:二阶AR 模型如图1a 所示,可以如下差分方程表示: )()()2()1()()(21n d n v n x a n x a n v n x +=----= (1) 图1a 其中,v(n)是均值为0、方差为0.965的高斯白噪声序列。 , 为描述性参数, .95,0,195.021=-=a a 设x(-1)=x(-2)=0,权值 , =0.04①推导最优 滤波权值(理论分析一下)。②按此参数设置,由计算机仿真模拟权值收敛曲线并画出,改变步长在此模拟权值变化规律。③对仿真结果进行说明。④应用RLS 算法再次模拟最优滤波权值。 解答思路: (1)高斯白噪声用normrnd 函数产生均值为0、方差为0.965的正态分布随机1*N 矩阵来实现。随后的产生的信号用题目中的二阶AR 模型根据公式(1)产生,激励源是之前产生的高斯白噪声。 (2)信号长度N 取为2000点,用以观察滤波器权值变化从而估计滤波器系数,得到其收敛值。 (3)仿真时分别仿真了单次LMS 算法和RLS 算法下的收敛性能以及100次取平均后的LMS 和RLS 算法的收敛性能,以便更好的比较观察二者的特性。 (4)在用不同的分别取3个不同的 值仿真LMS 算法时, 值分别取为

0.001,0.003,0.006;用3个不同的λ值仿真RLS 算法时λ值分别取为1,0.98,0.94,从而分析不同步长因子、不同遗忘因子对相应算法收敛效果的影响。 二、 算法简介 1.自适应算法的基本原理 自适应算法的基本信号关系如下图所示: 图 1b 自适应滤波器框图 输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。 2. LMS 算法简介 LMS 算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下: 1 ()()() ()()()(1)()2()()(0,1,2,....1) N i i i y n w n x n i e n d n y n w n w n e n x n i i N μ-=-=-+=+-=-∑ (2) 写成矩阵型式为: ()()()()()() (1)()2()() T y n W n X n e n d n y n W n W n e n X n μ==-+=+ (3) 式(3)中,W(n) 为n 时刻自适应滤波器的权值, 011()[(),(),....()]T N W n w n w n w n -=,N 为自适应滤波器的阶数,本设计中取为2000;X( n) 为n 时刻自适应滤波器的参考输入矢量,由最近N 个信号采样值构成,()[(),(1),....(1)]T X n x n x n x n N =--+;d ( n) 是期望的输出值;e ( n) 为自适应滤波器的输出误差调节信号(简称失调信号) ;μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。

matlab工具箱

至于工具箱的安装说明参见: https://www.360docs.net/doc/ee5476267.html,/viewthread.php?tid=120&page=1&fromuid=4481#p id123 Maplesoft《Maple Toolbox for MATLAB》 https://www.360docs.net/doc/ee5476267.html,/thread-236-1-1.html Sergiy Iglin《Graph Theory Toolbox》(图论工具 箱)https://www.360docs.net/doc/ee5476267.html,/thread-295-1-1.html Koert Kuipers《Branch And Bound toolbox 2.0》(BNB20分支定界工具 箱)https://www.360docs.net/doc/ee5476267.html,/thread-226-1-1.html Howard Wilson《Numerical Integration Toolbox》(NIT数值积分工具 箱)https://www.360docs.net/doc/ee5476267.html,/thread-225-1-1.html Anton Zaicenco《FEM toolbox for solid mechanics》(固体力学有限元工具箱)https://www.360docs.net/doc/ee5476267.html,/thread-219-1-1.html Nicholas J. Higham《The Matrix Computation Toolbox》(矩阵计算工具箱) https://www.360docs.net/doc/ee5476267.html,/thread-422-1-1.html Paolo Di Prodi《robotic toolbox》(机器人工具 箱)https://www.360docs.net/doc/ee5476267.html,/thread-274-1-1.html Moein Mehrtash《GPS Navigation Toolbox 》(GPS导航工具箱) https://www.360docs.net/doc/ee5476267.html,/thread-228-1-1.html J.Divahar 《Airfoil_Analyzer_toolbox》(翼型分析工具箱) https://www.360docs.net/doc/ee5476267.html,/thread-218-1-1.html Rasmus Anthin《Multivariable Calculus Toolbox 》(多变量微积分工具 箱)https://www.360docs.net/doc/ee5476267.html,/thread-251-1-1.html 《Time frequency analysis toolbox》(时频分析工具 箱)https://www.360docs.net/doc/ee5476267.html,/thread-439-1-1.html

MATLAB计算概率

一、实验名称 已知随机向量(X ,Y )独立同服从标准正态分布,D={(x,y)|a0&&e<6 if e==1

p=erchong(a,b,c,d) end if e==2 p=wangge(a,b,c,d); end if e==3 p=fenbu(a,b,c,d); end if e==4 p=mente(a,b,c,d); end if e==5 [X,Y]=meshgrid(-3:0.2:3); Z=1/(2*pi)*exp(-1/2*(X.^2+Y.^2)); meshz(X,Y,Z); end e=input('请选择: \n'); end % ===============================用二重积分计算function p=erchong(a,b,c,d) syms x y; f0=1/(2*pi)*exp(-1/2*(x^2+y^2)); f1=int(f0,x,a,b); %对x积分 f1=int(f1,y,c,d); %对y积分 p=vpa(f1,9); % ================================等距网格法function p=wangge(a,b,c,d) syms x y ; n=100; r1=(b-a)/n; %求步长 r2=(d-c)/n; za(1)=a;for i=1:n,za(i+1)=za(i)+r1;end %分块 zc(1)=c;for j=1:n,zc(j+1)=zc(j)+r2;end for i=1:n x(i)=unifrnd(za(i),za(i+1));end %随机取点 for i=1:n y(i)=unifrnd(zc(i),zc(i+1));end s=0; for i=1:n for j=1:n s=1/(2*pi)*exp(-1/2*(x(i)^2+y(j)^2))+s;%求和end end p=s*r1*r2;

自适应波束形成与Matlab程序代码注解

1.均匀线阵方向图 (1)matlab 程序 clc; clear all; close all; imag=sqrt(-1); element_num=32;%阵元数为8 d_lamda=1/2;%阵元间距d与波长lamda的关系 theta=linspace(-pi/2,pi/2,200); theta0=0;%来波方向 w=exp(imag*2*pi*d_lamda*sin(theta0)*[0:element_num-1]'); for j=1:length(theta) a=exp(imag*2*pi*d_lamda*sin(theta(j))*[0:element_num-1]'); p(j)=w'*a; end patternmag=abs(p); patternmagnorm=patternmag/max(max(patternmag)); patterndB=20*log10(patternmag); patterndBnorm=20*log10(patternmagnorm); figure(1) plot(theta*180/pi,patternmag); grid on; xlabel('theta/radian') ylabel('amplitude/dB') title([num2str(element_num) '阵元均匀线阵方向图','来波方向为' num2str(theta0*180/pi) '度']); hold on; figure(2) plot(theta,patterndBnorm,'r'); grid on; xlabel('theta/radian') ylabel('amplitude/dB') title([num2str(element_num) '阵元均匀线阵方向图','来波方向为' num2str(theta0*180/pi) '度']); axis([-1.5 1.5 -50 0]);

matlab工具箱如何安装

matlab工具箱如何安装 在matlab的file下面的set path把它加上,把路径加进去后在: file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。 以下是我在别的地方看到的,转过来你参考一下吧。 首先说说添加到matlab搜索路径好处:1 对n——你只需要存储一个副本,就可以在其他地方使用。具体来说,假设你在数据盘D上新建了两个目录abc和def,这两个工程(每个目录下的所有程序相应地称为一个工程)都需要调用同一个(些)函数(简称工具箱),这时候,如果你没有把该工具箱添加到matlab 的搜索路径下,则需要分别把工具箱中所有用到的文件都复制到目录abc和def下才能正确运行。这显然浪费空间,所以,matlab提供了一个搜索路径(默认在matlab安装目录下的toolbox中),只要把工具箱对应的整个文件夹复制到搜索路径对应的目录下,并且通知matlab一声(把该路径正确添加到搜索路径中),就可以在abc和def中使用这个工具箱了(即无论你的工程文件在哪个目录(有效的目录)下都可以访问这个工具箱中的函数)。下面就以matlab安装目录下的toolbox目录作为默认的添加路径进行详细说明。 1. 如何添加工具箱? 以下是添加工具箱的方法: 如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可。如果是单独下载的工具箱,则需要把新的工具箱(以下假设工具箱名字为svm)解压到toolbox目录下,然后用addpath或者pathtool 把该工具箱的路径添加到matlab的搜索路径中,最后用which newtoolbox_command.m来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。具体请看工具箱自己代的README 文件。 1.1 举例: 要添加的工具箱为svm,则解压后,里边有一个目录svm,假设matlab安装在D:\MATLAB6p5,将svm目录拷贝至D:\MATLAB6p5\toolbox,然后运行matlab,在命令窗口输入addpath D:\MATLAB6p5\toolbox\svm回车,来添加路径。然后在svm目录下,任意找一个m文件,以svcinfo.m 为例,在命令窗口中输入which svcinfo.m。如果显示出该文件路径,如D:\MATLAB6p5\toolbox\svm\svcinfo.m,则安装成功,当然也可以在命令窗口输入path来查看。 上面的说明和例子基本上介绍了在matlab中如何添加工具箱,下面是其他补充: 1.2 添加方式总结: 事实上,有两种添加工具箱到matlab搜索路径的方法:其一是用代码,其二是用界面。其实无论用哪种方法,都是修改pathdef.m这个文件,阁下如果是高手,可以直接打开该文件修改,呵呵,对此这里不作讨论。 1.2.1 代码方式: 适用于添加下载的工具箱(别人的): 在命令窗口输入addpath D:\MATLAB6p5\toolbox\svm 或者addpath(‘D:\MATLAB6p5\toolbox\svm’); 但是这种方法只能添加svm目录,如果该目录下有其他子文件夹,并且运行时候“隐式”调用到这些子文件夹(例如假设svm目录下存在子文件夹matdata,该子文件夹下有logo.mat这个文件,且在m文件代码中使用了诸如load logo 这样的句子,即没有显式给出logo.mat的具体路径,则称为“隐式”),则不能正确访问。因此,有必要在添加时使用以下语句把svm目录下所有文件夹都添加到搜索路径中:500){this.resized=true;;}"> 程序代码 addpath(genpath(D:\MATLAB6p5\toolbox\svm)); 另外,如果只使用以上代码,则退出matlab后,新添加的路径不会被保存下来,下次重新启动matlab

自适应载波同步及其Matlab仿真

成都理工大学工程技术学院本科毕业论文 自适应载波同步及其Matlab仿真 作者姓名: 专业名称: 指导老师: 年月日

摘要 自适应滤波算法的研究是现在社会自适应信号处理中最为活跃的研究课题之一。找寻收敛速度快,计算简单,数值稳定性好的自适应滤波算法是研究人员不断努力追求的目标。本设计在论述自适应滤波基本原理的基础上,说明了几种当前几种典型的自适应滤波算法和应用。并对这几种典型自适应滤波算法的性能特点进行简单的比较,给出了算法性能的综合评价。 载波同步是无线通信接收机的主要功能之一,其对通信系统质量的提高至关重要。随着新算法涌现和芯片处理速度的提高,不同的解决方案不断的提出。自适应载波同步是一种依据自适应算法的同步方法,内容新颖。本课题在介绍自适应算法和载波同步问题的基础上,详细讨论了平方差分环路法和锁相环路法,具体包括代价函数、代价函数的导数、迭代公式和原理图等,并在论文的第三部分给出了这两种方法的Matlab仿真。仿真结果验证了这两种方法在跟踪载波相位方面是满足要求的,且收敛速度较快。 关键词:自适应滤波载波同步平方差分环路锁相环路法

Abstact The research of adaptive filtering algorithm is one of the most activity tasks, the goal that researchers want to pursue is to find an adaptive filtering algorithm that converge fast and compute simplely. Based on the basis adaptive filtering principle, this paper introduces several typical adaptive algorithms and applications, then compares those algorithm's characters and gives the orithm performance evaluation. Carrier synchronization is one of the main functions of Wireless communications receiver,it is essential for the improvement in the quality of the communication system. With the emergence of new algorithms and the speed improvement of chip processing, different solutions is proposed continuously. Adaptive carrier synchronization is a synchronization method based on adaptive algorithms, and its content is innovative. Based on the introducing of adaptive algorithm and carrier synchronization, this issue has a detailed discussion of the square difference method and the PLL loop method, including its cost function, cost function derivative, iterative formula and schematic, etc. And the third part of the paper gives two methods of Matlab simulation.Simulation results show the two methods with tracking the carrier phase is to meet the requirements, and convergence speedly. Keywords:adaptive filter, carrier synchronization, differential circle square , phase-locked loop method

用matlab实现自适应图像阈值分割最大类方差法代码

%用matlab实现自适应图像阈值分割最大类方差法代码clear; warning off; SE = strel('diamond',4); BW1 = imread('cameraman.tif'); BW2 = imerode(BW1,SE); BW3 = imdilate(BW2,SE); BW4 = BW1-BW3; %rgb转灰度 if isrgb(BW4)==1 I_gray=rgb2gray(BW4); else I_gray=BW4; end figure,imshow(I_gray); I_double=double(I_gray);%转化为双精度 [wid,len]=size(I_gray); colorlevel=256; %灰度级 hist=zeros(colorlevel,1);%直方图 %threshold=128; %初始阈值 %计算直方图 for i=1:wid for j=1:len m=I_gray(i,j)+1; hist(m)=hist(m)+1; end end hist=hist/(wid*len);%直方图归一化 miuT=0; for m=1:colorlevel miuT=miuT+(m-1)*hist(m); end xigmaB2=0; for mindex=1:colorlevel threshold=mindex-1; omega1=0; omega2=0; for m=1:threshold-1 omega1=omega1+hist(m); end omega2=1-omega1; miu1=0; miu2=0; for m=1:colorlevel if m

基于MATLAB_Simulink机器人鲁棒自适应控制系统仿真研究

第18卷第7期 系统仿真学报?V ol. 18 No. 7 2006年7月Journal of System Simulation July, 2006 基于MATLAB/Simulink机器人鲁棒自适应控制系统仿真研究 高道祥,薛定宇 (东北大学教育部暨辽宁省流程工业综合自动化重点实验室,沈阳 110004) 摘要:介绍了一种在MATLAB/Simulink环境下进行机器人鲁棒自适应控制系统仿真的方法,利 用Matlab软件强大的数值运算功能,将系统模型用Matlab语言编写成M-Function(或S-Function) 文件,通过User-Defined-Function模块嵌入到Simulink仿真环境中,可以充分发挥Simulink模块 实时的动态仿真功能,简化仿真模型的设计,修改和调整。基于M-Function建立机器人系统模型 的方法可以推广到其他复杂控制系统的建模,SimMechanics在建立多自由度连杆机器人受控对象 仿真模型时,简单可靠。 关键词:机器人;Matlab/Simulink;SimMechanics;仿真;鲁棒自适应控制 中图分类号:TP391.9 文献标识码:A 文章编号:1004-731X(2006) 07-2022-04 Simulation Research of Robust Adaptive Control System for Robotic Manipulators Based on MATLAB/Simulink GAO Dao-xiang, XUE Ding-yü (Key Laboratory of Process Industry Automation, Ministry of Education, Northeast University, Shenyang 110004, China) Abstract: A simulation method of robust adaptive control was proposed for the robotic manipulator system. The method took the advantage of the powerful computing function of Matlab to programme M-function (or S-Function) for the system model by Matlab language and embedded it to the Simulink by User-Defined-Function module. The real time dynamic simulating function of Simulink would be exerted adequately and the design, modification and adjust of the system model could be greatly simplified. The method of constructing manipulator control system model based on M-Function could be generalized to the other complicated control system and SimMechanics would make the n-links manipulator model conveniently and credibly. Key words: robotic manipulator; Matlab/Simulink; SimMechanics; simulation; robust adaptive control 引言 一个新的控制算法在付诸使用之前,无论从经济原因还是技术角度,都需要经过仿真阶段来测试控制系统的性能和缺陷。尤其对复杂系统控制的研究,虽然仿真并不能说明控制算法是绝对合理与可靠的,但随着仿真技术的发展,仿真的确是系统设计必不可少的中间步骤。 Matlab/Simulink以其强大的数学运算能力,方便实用的绘图功能及语言的高度集成性成为系统仿真和自动控制领域首选的计算机辅助设计工具。Simulink可以将可视化的模块很方便地组成系统模型的仿真框图,对于使用普通Simulink模块不易搭建的复杂控制系统,用Matlab语言编写M-Function或S-Function文件,通过User-Defined-Function 模块嵌入到Simulink仿真环境中,大大扩充了Simulink的功能。对于机器人这类的复杂控制系统,通过Simulink可以很方便的建立其仿真模型。 机器人控制系统仿真模型中不易采用普通Simulink模块搭建的部分是控制器模型和受控对象—机器人模型,可以采用Matlab语言编写M-Function实现控制器和机器人模型。 收稿日期:2005-05-09 修回日期:2005-08-02 作者简介:高道祥(1972-),男,山东蓬莱人,博士生,研究方向为机器人鲁棒自适应控制。薛定宇(1963-),男,辽宁沈阳人,教授,博导,研究方向为控制系统CAD,机器人控制。另外,由于SimMechanics提供了机构的仿真模块集,对于n自由度的连杆机器人,也可以采用SimMechanics模块进行组建。 1 n连杆机器人的仿真模型 如果不考虑摩擦力等外界干扰的作用,机器人的动力学方程可由下式描述, τ= + +) ( ) , ( ) (q G q q q C q q M (1) 式中,q q q , ,是1 × n向量,表示各个关节的位置,速度,加速度。) (q M是n n×阶对称正定的惯量矩阵。q q q C ) , (是1 × n向量,表示离心力和哥氏力项。) (q G是1 × n向量,表示重力项。τ表示外界输入的控制力矩。由式(1)可以看出,机器人的动力学模型是一个高度复杂,强耦合的非线性时变方程,尤其模型的复杂程度随着自由度的增加呈指数上升趋势。因此,在用Matlab/Simulink进行机器人控制系统的仿真研究时,需要寻求一种简单可靠却行之有效的方法建立机器人控制系统仿真模型。 采用M-Function定制的Simulink模块与普通模块一样具有输入和输出向量,控制器与机器人受控对象的仿真模型函数可用如下关系式描述, ) , , , , (0q q q q q f d d d = τ(2) ) , , (1τ q q f q =(3)

Matlab的第三方工具箱大全(强烈推荐)

Matlab Toolboxes ?ADCPtools - acoustic doppler current profiler data processing ?AFDesign - designing analog and digital filters ?AIRES - automatic integration of reusable embedded software ?Air-Sea - air-sea flux estimates in oceanography ?Animation - developing scientific animations ?ARfit - estimation of parameters and eigenmodes of multivariate autoregressive methods ?ARMASA - power spectrum estimation ?AR-Toolkit - computer vision tracking ?Auditory - auditory models ?b4m - interval arithmetic ?Bayes Net - inference and learning for directed graphical models ?Binaural Modeling - calculating binaural cross-correlograms of sound ?Bode Step - design of control systems with maximized feedback ?Bootstrap - for resampling, hypothesis testing and confidence interval estimation

自适应滤波器MATLAB仿真

自适应滤波器 MATLAB仿真 摘要 : 本文介绍了自适应滤波器的工作原理,以及推导了著名的LMS( Least mean squares )算法。以一个例子演示了自适应滤波器的滤波效果。实验结果表明,该滤波器滤波效果较好。 关键词:自适应滤波器 MATLAB7.0 LMS 算法 Simulate of adaptive filter based on MATLAB7.0 Abstract: This article described the working principle of adaptive filter and deduced the well-known LMS algorithm. Take an example to demonstrate the adaptive filters filtering effects. The results show that the filter has an effective way to filter single. Key words: LMS algorithm Adaptive Filter Matlab7.0 1引言 由 Widrow B 等提出的自适应滤波理论,是在维纳滤波、卡尔曼滤波等线性滤波基础上发展起来的一种最佳滤波方法。由于它具有更强的适应性和更优的滤波性能,从而广泛应用于通信、系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测和自适应天线阵等诸多领域[1]。自适应滤波器最大的优点在于不需要知道信号和噪声的统计特性的先验知识就可以实现信号的最佳滤波处理。本文通过一个具体例子和结果论证了自适应滤波器的滤波效果。 2自适应滤波原理及 LMS算法 2.1 自适应滤波原理 图 1 自适应滤波原理图 在自适应滤波器中,参数可调的数字滤波器一般为 FIR 数字滤波器, IIR 数字滤波器或格型数字滤波器。自适应滤波分 2 个过程。第一,输入信号想 x(n) 通过参数可调的数字滤波器后得输出信号 y(n) ,y(n) 与参考信号 d(n) 进行比较得误差信号 e(n) ;第二,通过一种自适应算法和 x(n) 和 e(n) 的值来调节参数可调的数字滤波器的参数,即加权系

MATLAB常用工具箱

MATLAB有三十多个工具箱大致可分为两类:功能型工具箱和领域型工具箱. 功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的。如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等。 下面,将MATLAB工具箱内所包含的主要内容做简要介绍: 1)通讯工具箱(Communication Toolbox)。 令提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析 ——信号编码 ——调制解调 ——滤波器和均衡器设计 ——通道模型 ——同步 可由结构图直接生成可应用的C语言源代码。 2)控制系统工具箱(Control System Toolbox)。 鲁连续系统设计和离散系统设计 * 状态空间和传递函数 * 模型转换 * 频域响应:Bode图、Nyquist图、Nichols图 * 时域响应:冲击响应、阶跃响应、斜波响应等 * 根轨迹、极点配置、LQG 3)财政金融工具箱(FinancialTooLbox)。 * 成本、利润分析,市场灵敏度分析 * 业务量分析及优化 * 偏差分析 * 资金流量估算 * 财务报表 4)频率域系统辨识工具箱(Frequency Domain System ldentification Toolbox * 辨识具有未知延迟的连续和离散系统 * 计算幅值/相位、零点/极点的置信区间 * 设计周期激励信号、最小峰值、最优能量诺等 5)模糊逻辑工具箱(Fuzzy Logic Toolbox)。 * 友好的交互设计界面 * 自适应神经—模糊学习、聚类以及Sugeno推理 * 支持SIMULINK动态仿真 * 可生成C语言源代码用于实时应用

matlab自适应遗传算法

function [xv,fv]=AdapGA(fitness,a,b,NP,NG,Pc1,Pc2,Pm1,Pm2,eps) %×?êêó|ò?′???·¨ L = ceil(log2((b-a)/eps+1)); x = zeros(NP,L); for i=1:NP x(i,:) = Initial(L); fx(i) = fitness(Dec(a,b,x(i,:),L)); end for k=1:NG sumfx = sum(fx); Px = fx/sumfx; PPx = 0; PPx(1) = Px(1); for i=2:NP PPx(i) = PPx(i-1) + Px(i); end for i=1:NP sita = rand(); for n=1:NP if sita <= PPx(n) SelFather = n; break; end

end Selmother = round(rand()*(NP-1))+1; posCut = round(rand()*(L-2)) + 1; favg = sumfx/NP; fmax = max(fx); Fitness_f = fx(SelFather); Fitness_m = fx(Selmother); Fm = max(Fitness_f,Fitness_m); if Fm>=favg Pc = Pc1*(fmax - Fm)/(fmax - favg); else Pc = Pc2; end r1 = rand(); if r1<=Pc nx(i,1:posCut) = x(SelFather,1:posCut); nx(i,(posCut+1):L) = x(Selmother,(posCut+1):L); fmu = fitness(Dec(a,b,nx(i,:),L)); if fmu>=favg Pm = Pm1*(fmax - fmu)/(fmax - favg); else Pm = Pm2;

MATLAB工具箱介绍

MATLAB工具箱介绍 序号工具箱备注 数学、统计与优化 1Symbolic Math Toolbox符号数学工具箱 2Partial Differential Euqation Toolbox 偏微分方程工具箱 3Statistics Toolbox统计学工具箱4Curve Fitting Toolbox曲线拟合工具箱5Optimization Toolbox优化工具箱 6Global Optimization Toolbox 全局优化工具箱 7Neural Network Toolbox神经网络工具箱 8Model-Based Calibration Toolbox 基于模型矫正工具箱 信号处理与通信 9Signal Processing Toolbox 信号处理工具箱 10DSP System Toolbox DSP[size=+0]系统工具箱 11Communications System Toolbox 通信系统工具箱 12Wavelet Toolbox小波工具箱 13Fixed-Point Toolbox定点运算工具箱14RF Toolbox射频工具箱 15Phased Array System Toolbox 相控阵系统工具箱 控制系统设计与分析 16Control system Toolbox控制系统工具箱 17System Indentification Toolbox 系统辨识工具箱 18Fuzzy Logic Toolbox模糊逻辑工具箱19Robust Control Toolbox鲁棒控制工具箱 20Model Predictive Control Toolbox 模型预测控制工具箱 21Aerospace Toolbox航空航天工具箱

相关文档
最新文档