基于matlab数字均衡器设计

基于matlab数字均衡器设计
基于matlab数字均衡器设计

2.设计原理

2.1数字滤波器

2.1.1 数字滤波器的原理简介

数字滤波器的功能是把输入序列通过一定的运算,变换成输出序列。数字

滤波器一般可用两种方法实现:一种是根据描述数字滤波器的数学模型或信号

流程图,用数字硬件构成专用的数字信号处理机,即硬件方式;另一种是编写

滤波器运算程序,在计算机上运行,即软件方式。考虑到软件的灵活性及易于

实现,本文采用软件方式实现数字滤波器。

数字滤波器有无限冲激响应(IIR)和有限冲激响应(FIR)两种。下面分别介绍:

(1) IIR滤波器

IIR滤波器的特点是:单位冲激响应h(n)是无限长的;系统函数H(z)在有限长Z平面(0<|Z|<∞)有极点存在;结构上存在输出到输入的反馈,也即结构上

是递归型的;因果稳定的IIR滤波器其全部极点一定在单位圆内。其系统函数

(1)

计算机上实现时则需要用到差分方程的形式,如下

(2)

IIR滤波器有四种基本的网络结构(具体参看文献[3]),直接I型、直接II型、级联型与并联型。其中直接I型需要2N个延迟单元,而直接II型只需要N个

延迟单元。因此,用软件实现时,直接II型少占用存储单元。级联型则是将N

阶IIR系统函数分解成二阶因式连乘积,并联型则是将系统函数化成部分分式

之和,则可得到IIR数字滤波器的并联结构。

(2) FIR滤波器

IIR滤波器的特点是:系统的单位冲激响应h(n)是个有限长序列;系统函数|H(z)|在|z|>0处收敛,极点全部在z=0处(即FIR一定为稳定系统);结构上主要

是非递归结构,没有输出到输入反馈。但有些结构中(例如频率抽样结构)也

包含有反馈的递归部分。其系统函数的一般形式为

(3)

对应的差分方程为

(4)

FIR系统的基本结构有直接型、级联型、快速卷积型、频率取样型等。

2.1.2 FIR与IIR滤波器的比较与选择

IIR滤波器可以用比FIR滤波器少的阶数来满足相同的技术指标,这样,

IIR滤波器所用的存储单元和所用的运算次数都比FIR滤波器少。FIR滤波器可

得到严格的相位,而IIR滤波器不能得到。事实上,IIR滤波器的选频特性越好,它的相位的非线性就越严重。因此在需要严格线性相位的情况下应该选择FIR

滤波器。IIR滤波器可利用模拟滤波器现成的设计公式、数据和表格,因而计算工作量较小,对计算工具要求不高。FIR滤波器没有现在的设计公式,对计算

工具要求较高,需要借助计算机来设计。另外,IIR滤波器主要是设计规格化的、频率特性为分段常数的标准低通、高通、带通、带阻和全通滤波器,而FIR滤

波器可设计出理想正交变换器、理想微分器、线性调频器等各种网络,适应性

较广。

总之,IIR和FIR这两种滤波器各有特点,在实际应用中空间选择中哪种滤波器,就从多方面的因素来考虑。例如用于语音通信的滤波器,对相位要求不

是主要的,因此选用IIR滤波器较为合适,可以充分发挥其经济和高效的特点。而图像信号处理和数据传输等以波形携带信息的系统,对相位的线性要求较高,因此采用FIR滤波器较好。

对于数字均衡器,一方面是用于处理语言信号,另一方面需要用到频率特

性分段的带通滤波器,因此应该IIR滤波器。下面介绍IIR滤波器的设计方法。2.1.3 IIR数字滤波器的设计方法

实际中的数字滤波器都是用有限精度算法实现的线性非移变离散系统,设

计IIR数字滤波器的方法主要有两种:一种是利用模拟滤波器的理论来设计,

另一种是计算机辅助设计,即使用最优化技术设计。利用模拟滤波器的设计理

论来设计IIR滤波器,就是首先根据实际要求设计一个模拟滤波器,然后再将

这个模拟滤波器转换成数字滤波器。由于模拟网络综合理论已经发展得很成熟,故许多常用的模拟滤波器不仅有了简单而严格的设计分式,而且设计参数已经

表格化,所以设计起来很方便。因此本文采用第一种方法。

设计步骤大致分以下三步:

(1) 设计模拟滤波器。根据实际需要确定滤波器的参数,利用的滤波器的设

计公式设计出模拟滤波器并得到其传递函数H(s),常用的滤波器有巴特沃斯滤

波器、椭圆滤波器和切比雪夫滤波器;

(2) 将模拟滤波器转换成数字滤波器。利用冲激响应不变法或双线性变法将

H(s)转换成H(z),不同的设计方法对应于不同的s平面到z平面的映射公式;

(3) 频率变换。上述方法得到的是低通滤波器,为了得到高通、带通、带阻

滤波器,还需要用利用变换公式作频率变换。

以上各步骤都有成熟的理论与公式,具体可参看文献[3]。

2.2均衡器的原理

2.2.1 均衡器总体设计

均衡器的基本功能是调节各频段的信号强弱,为了满足该功能,本文采用

如下的方法:

Step1:设计出对应八个频段的八个带通滤波器;

Step2:对原始信号分八路用八个带通滤波器进行滤波;

Step3:将八个滤波器的滤波结果加权求和,权值的设计与均衡器的调节要求一致。

这样最终得到的结果便是所需要的均衡结果。其中第2步中各带通滤波器的输入信号均为原始信号,而不是“串联”地滤波。设原始输入信号为x(n),

第i路的输出信号为,第i路的权值为,均衡器的输出信号为y(n),则有

(5)

(6)

式中,、为滤波器的参数,可由2.1.3节的方法得到,N为滤波器的阶数。

具体应用中,式(6)有两个问题,下节将介绍这两个问题并给出解决方法。

2.2.2 滤波计算的两个问题

(1) 数组越界问题

即当n

对于声音信号,人的听觉不会感觉出很短时间的异常。因此,可以简单地将数组越界的情况用0代替,即n

字信号不准确,从而前N/Fs秒声音信号不准确,N一般不超过10,而Fs一般为44100,从而N/Fs很小,人的听觉根本不会感觉到。

(2) 溢出问题

定点加法运算有可能发生溢出。但是,在采用补码进行运算时,即使中间计算结果发生了溢出,但只要最终累加值的绝对值小于1,就能保证最后得到的总和是正确数值。因此,为防止数字滤波器定点运算产生溢出, y(n)绝对值小于1就够了。

一种解决方式是针对输入x。对于IIR滤波器,有

(7)

由不溢出的条件得

(8)

即,当(8)式不满足时,需要对输入信号x(n)乘以一个小于1的比例因子,

使得(8)式恰好满足。比例因子的计算式易由(8)式推出。

为简单起见,本文采用针对输出的解决方式,即如果y(n)绝对值超过1,

则对其赋值为1或,符号选择取决于原值的符号。

2.3软件设计

2.3.1 数据流图

数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输

出的过程中所经受的变换。在数据流图中没有任何具体的物理元素,它只是描

绘信息在软件中流动和被处理的情况。设计数据流图时只需考虑系统必须完成

的基本逻辑功能,而不用考虑具体实现,因而它是进行软件设计很好的出发点。

面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。

结合上一节的内容,可以得出软件的数据流图如图 2所示。

图2 均衡器的数据流图

2.3.2 模块划分

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。根据人类解决一般问题的经验,如果一个问题由两个问题组合而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和,也就是说把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。

在模块划分时应遵循如下规则[4]:改进软件结构提高模块独立性;模块规模应该适中;深度、宽度、扇出和扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接口的复杂程度;设计单入口单出口的模块;模块功能应该可以预测。

本着上述的启发式规则,对软件进行如图 3所示的模块划分。

图3数字均衡器的模块划分

3.软件实现

3.1界面设计

MATLAB是Mathworks公司推出的数学软件,它将数值分析、矩阵计算、信号处理和图形显示结合在一起,为众多学科领域提供了一种简洁、高效的编程工具。它提供的GUIDE工具为可视化编程工具,使得软件的界面设计像VB 一样方便。故本文采用MATLAB作为主要编程语言实现数字均衡器。

为了实现预期的功能,设计如图 4所示的界面。

图4频谱分析仪的界面设计

左边最上面的部分为标题区,用于显示软件标题等信息,不具人机交互功能。

再往下是信号输入/输出区,包含3种输入方式。界面应该具有:只有当每个单选框被选中时才允许使用对应的输入框、按钮等。支持WAV和AU两种格式的音频文件。“原声播放”用于播放输入的原信频信号,区别于滤波后的信号,用于对比滤波前后的信号。

再往下是均衡器区。八个滚动条对应八个带通滤波器的权值,在中间时为1,最下为0,最上为10。“类型”单选框用于选择巴特沃斯、切比雪夫等各种类型IIR滤波器。“重置”用于将各输入恢复默认。

“滤波”后才能“播放”,这是考虑到MATLAB对多线程机制支持得不好,不宜使用一边滤波一边播放的方法。由于滤波时间较长,故添加了进度显

示的功能。条形图是许多音频软件使用的频谱输出方式。

右边的上面是滤波器,可以指定各种类型与参数。“生成滤波器”可以产

生一个符合条件的滤波器,并在下面的图中显示滤波器的频率特征曲线。“滤波”用于对输入的音频信号用生成的滤波器滤波。

再往下则分别是时域波形与频谱分析的图形显示,均为实时显示。

在界面设计时为避免错误的操作,在某些按钮不能使用时必须将其设置为

不可用,而它们能够使用时立即设置为可用。例如,没有打开音频文件时“滤波”按钮不可用,打开后“滤波”按钮可用;点击“滤波”前,“播放”不可用,点击“滤波”并完成滤波后,“播放”则变为可用。

3.2均衡器模块的实现

均衡器模块功能是生成带通滤波器并对原信号滤波。为了便于程序的扩充

与修改,将表 1中的频段数据独立出来,如下

handles.fband=[20 100 200 500 1000 2000 4000 8000 16000];

均衡器的功能主要在“滤波”按钮的回调函数中实现,下面具体介绍

开始需要得到滤波器的参数:频带与阶数,如下

order=str2double(get(handles.order,'String'));

num=8;%8 filters totally

fband=handles.fband;

接着就是产生滤波器并滤波了,每次滤波后产生的y i(n)如果都存到一个变

量中,则需要8个这样的变量,对于输入信号量很大时将需要大量的内存空间,为此,本文采用累加的方式,这样只用一个变量去存储滤波结果。

nn=length(handles.y);

handles.yy=zeros(size(handles.y));

for i=1:num

if get(handles.butterworth,'Value')==1

[b a]=butter(order,2*fband(i:i+1)/handles.Fs);

elseif get(handles.cheby1,'Value')==1

[b a]=cheby1(order,0.5,2*fband(i:i+1)/handles.Fs);

elseif get(handles.cheby2,'Value')==1

[b a]=cheby2(order,20,2*fband(i:i+1)/handles.Fs);

elseif get(handles.ellip,'Value')==1

[b a]=ellip(order,0.5,20,2*fband(i:i+1)/handles.Fs);

else

errordlg('No filter type chosen or filter type error!');

end

eval(sprintf('k=get(handles.band%d,''Value'');',i));

y=(9^k-1)/8*qfilter(b,a,handles.y);

handles.yy=handles.yy+y;

end

guidata(hObject,handles);

在程序中有一句y=(9^k-1)/8*qfilter(b,a,handles.y),作用是加权以便下一句的求和,其中k是从滚动条中得到的参数,从0到2,但需要的权值是从0到

10,令w为需要的权,即,由于实际需要w为指数变化,故设

(9)

代入w=0, k=0; w=1, k=1; w=10, k=2解得a=1/8,b=9,,从而有上述代码。

3.3混合编程实现filter函数

MATLAB中提供的filter函数,但有两个问题,一个是运行速度较慢,另一个是不能解决2.2.2节的溢出问题。由于filter函数的执行速度是整个软件速度的瓶颈,故需要提高其速度。故这里采用VC实现filter函数,具体通过MATLAB与VC的混合编程来实现。这样能够较好解决那两个问题。

具体步骤为:

(1) MATLAB中运行mex –setup将VC选作编译器

(2) 在VC中新建一个DLL工程,添加如下代码

#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

{ double *a,*b,*x,*y;

int M,n,i,j;

b=mxGetPr(prhs[0]); //获得指向矩阵的指针

a=mxGetPr(prhs[1]);

x=mxGetPr(prhs[2]);

M=mxGetM(prhs[2]); //获得矩阵的行数

plhs[0]=mxCreateDoubleMatrix(M,1,mxREAL);

y=mxGetPr(plhs[0]);

n=mxGetN(prhs[0]);

for(i=0;i

{ y[i]=b[0]*x[i];

for(j=1;j

y[i]+=b[j]*x[i-j]-a[j]*y[i-j];

if(y[i]>1)y[i]=1;else if(y[i]<-1)y[i]=-1;

}

for(;i

{ y[i]=b[0]*x[i];

for(j=1;j

y[i]+=b[j]*x[i-j]-a[j]*y[i-j];

if(y[i]>1)y[i]=1;else if(y[i]<-1)y[i]=-1;

}

}

(3) 保存为qfilter.cpp,放在MATLAB工作目录,在MATLAB中运行mex qfilter.cpp生成qfilter.dll。

这样,只需调用qfilter函数即能实现滤波。

3.4实时显示的实现

软件的功能要求实时显示波形与频谱分析结果,这里采用分批处理的方法。即先取一批信号,将其播放出来,同时进行FFT,并绘出时域波形与频谱分析

结果,然后取下一批信号……由于各批信号间的时间间隔很小,从而感觉像连

续播放,而时域波形与频谱则是实时地变化。

该功能主要在“播放”按钮的回调函数中实现

N=length(handles.yy);

n=4096;

step=n/handles.Fs;

from=1;

to=n;

ymax=max(handles.y);

ymin=min(handles.y);

f=linspace(0,handles.Fs/2,n/2);

fband=handles.fband;

num=length(fband)-1;

tic

while to<=N;

y=handles.yy(from:to,:);

pause(step-toc*0.99);

wavplay(y,handles.Fs,'async');

tic

P=fft(y,n);

Pyy =2*abs(P)/n;

loglog(handles.axes1,f,Pyy(1:n/2));

axis(handles.axes1,[fband(1) fband(num+1) 1e-3 ymax]);

plot(handles.axes2,y);

ylim(handles.axes2,[ymin ymax]);

from=from+n;

to=to+n;

end

采用异步播放方式可以使得播放不占用主线程,从而使得播放效果不会很卡。为了使得播放流畅,需要与pause的使用结合,具体方法为用tic和toc计算出其它代码运行时间,然后用播放时间减去其它代码运行时间,从而得到需要暂停运行的时间。

4.运行实例与误差分析

4.1运行实例

图 5是程序的运行的一个实例,可以看到,基本上可以实现各个频段的均衡与调结。但是并不能完全滤掉某个频段的信号。

另外,为了比较MATLAB的filter函数与VC写的qfilter的执行速度,软件中提供了选择滤波程序的界面,图 5中的运行结果为qfilter的运行时间,为0.031秒,而相同情况下,MATLAB的filter的运行时间为0.157秒,如图 6所示。从而混合编程的方式大大提高了软件的运行效率。所以在均衡器功能上直接采用qfilter。

4.2误差分析

理想的滤波器是不存在的,实际中只能尽量地接近理想滤波器,所以只能尽量地去接近理想的滤波器。对于IIR数字滤波器,阶数越高,则滤波器的精

度越高,即越接近于理想的情况,但计算机运行速度就越慢了,所以实际中应该权衡运行速度与滤波器的精度。另外,计算机本身也有误差(如截断误差),但相对于滤波器的设计误差,计算机的计算误差可以怱略不计。故提高精度关键在于提高滤波器的设计精度。

图5 运行结果实例

图6 MATLAB的filter的运行时间

另外,每个带通滤波器之间的过渡也有设计误差,理论上带通滤波器间的过滤应该满足各滤波器的频率响应曲线叠加起来为一条值为1的水平线,但实际中只能尽量去接近理论的情况。

5.总结与展望

5.1总结

本文首先对数字滤波器的原理进行了分析,并选择了一种实现数字均衡器的方案,在软件的设计上采用软件工程的理论,使用面向数据流的设计方法进行软件设计,并且采用了模块划分的方法。在实现的时候采用MATLAB与VC 混合编程的方式,这样不仅利用了MATLAB的强大工具箱,而且使得开发的软件有着运行速度快的特点。界面上采用MATLAB提供的GUIDE工具进行设计,使得软件开发效率较高。对于均衡器所要求的功能,已经全部实现,但限于篇幅,本文只给出了部分功能的实现方法。最后给出了软件的运行结果,并对软件进行了误差分析。

5.2展望

该软件在播放前需要点滤波按钮,这使得操作变得麻烦,所以可以将滤波功能加到播放中,这就意味着需要加快程序的运行速度可者采用多线程机制。带通滤波器频率交界处的误差可以通过优化设计的方法来将其减小,即各带通滤波器不完全以给定的频带为自己的生成参数,而是以附近的某个频率值作为其生成参数,这样就需要用到优化的理论。其实可以将软件的主体用VC进行开发,部分难以实现但运行次数不多的函数则借用MATLAB,实现以VC的主体的混合编程,这样可以实现多线程,并且运行速度会进一步加快,但这种开发方式的开发时间相对较长。

matlab课程设计题目

课题一: 连续时间信号和系统时域分析及MATLAB实现 课题要求: 深入研究连续时间信号和系统时域分析的理论知识。利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,实现连续时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。 1、单位阶跃信号, 2、单位冲激信号, 3、正弦信号, 4、实指数信号, 5、虚指数信号, 6、复指数信号。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘, 4、微分, 5、积分 三、用MATLAB实现信号的时域变换(参数变化,分析波形变化) 1、反转, 2、使移(超时,延时), 3、展缩, 4、倒相, 5、综合变化 四、用MATLAB实现信号简单的时域分解 1、信号的交直流分解, 2、信号的奇偶分解 五、用MATLAB实现连续时间系统的卷积积分的仿真波形 给出几个典型例子,对每个例子,要求画出对应波形。 六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。 给出几个典型例子,四种调用格式。 七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题二: 离散时间信号和系统时域分析及MATLAB实现。 课题要求: 深入研究离散时间信号和系统时域分析的理论知识。利用MATLAB强大的图

形处理功能、符号运算功能以及数值计算功能,实现离散时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB绘制常用信号的时域波形(通过改变参数分析其时域特性) 1、单位序列, 2、单位阶跃序列, 3、正弦序列, 4、离散时间实指数序列, 5、离散时间虚指数序列, 6、离散时间复指数序列。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘。 三、用MATLAB实现信号的时域变换(参数变化,分析波形的变化) 1、反转, 2、时移(超时,延时), 3、展缩, 4、倒相。 四、用MATLAB实现离散时间系统卷积和仿真波形 给出几个典型例子,对每个例子要求画出e(k),h(k),e(i),h(i),h(-i),Rzs(k)波形。 五、用MATLAB实现离散时间系统的单位响应,阶跃响应的仿真波形 给出几个典型例子,四中调用格式。 六、用MATLAB实现离散时间系统对实指数序列信号的零状态响应的仿真波形 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题三: 连续时间信号傅里叶级数分析及MATLAB实现。 课题要求: 深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。 课题内容: 一、用MATLAB实现周期信号的傅里叶级数分解与综合 以周期矩形波信号为例,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形 波形之间的关系及吉布斯现象。

MATLAB课程设计报告 基于MATLAB GUI 的滤波器设计软件

MATLAB课程设计报告 基于MATLAB GUI的“滤波器设计软件”设计

摘要 面对庞杂繁多的原始信号, 如何提取所需信号、抑制不需要的信号这就需要使用滤波器。滤波器的作用主要是选择所需频带的信号内容而抑制不需要的其他频带的信号内容。数字滤波器因其精度高、可靠性好、灵活性大等优点, 在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像处理等工程实际应用中都很广泛。根据其冲击响应函数的时域特性可将数字滤波器分为IIR(有限长冲击响应)和FIR(无限长冲击响应)。作为强大的计算软件, MATLAB 提供了编写图形用户界面的功能。所谓图形用户界面, 简称为GUI, 是由各种图形对象, 如图形窗口菜单按钮、文本框等构建的用户界面。 MATALB 可以创建图形用户界面GUI ( GraphicalUser Interface) ,它是用户和计算机之间交流的工具。MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。 关键词:MATLAB GUI IIR滤波器FIR滤波器

目录 1设计任务 (1) 2 MATLAB GUI的简介 (2) 3 滤波器设计原理 (3) 3.1滤波器概述 (3) 3.2 IIR数字滤波器 (4) 3.2.1 IIR数字滤波器设计原理 (4) 3.2.2 IIR滤波器设计思想 (5) 3.2.3 IIR滤波器设计编程实现 (6) 3.3 FIR数字滤波器 (8) 3.3.1 FIR数字滤波器设计原理 (8) 3.3.2 FIR滤波器设计思想 (9) 4 基于Matlab GUI的数字滤波器设计思路及实现 (12) 4. 1 GUI界面设计概述 (12) 4.2 “滤波器设计软件”设计所实现任务 (14) 4.3 基于Matlab GUI的数字滤波器设计实现 (16) 4.3.1 “滤波器设计软件”GUI界面设计 (16) 4.3.2 “滤波器设计软件”回调函数编写 (17) 4.3.3AutoChoose.m程序的编写 (22) 4.4 运行和结果显示 (28) 5 设计总结和心得 (33) 5.1 设计总结 (33) 5.2 设计心得 (34) Abstract (35) 参考文献 (36) 附录

matlab滤波器设计

长安大学 数字信号处理综合设 计 专业_______电子信息工程_______ 班级__24030602___________ 姓名_______张舒_______ 学号2403060203 指导教师陈玲 日期_______2008-12-27________

一、课程设计目的: 1. 进一步理解数字信号处理的基本概念、基本理论和基本方法; 2.熟悉在Windows环境下语音信号采集的方法; 3.学会用MATLAB软件对信号进行分析和处理; 4.综合运用数字信号处理理论知识,掌握用MATLAB软件设计FIR和IIR数字滤波器的方法; 5. 提高依据所学知识及查阅的课外资料来分析问题解决问题的能力。 二、课程设计内容: 1.语音信号的采集 利用windows下的录音机录制一段自己的话音,时间控制在1秒左右;并对语音信号进行采样,理解采样频率、采样位数等概念。 2.语音信号的频谱分析 利用函数fft对采样后语音信号进行快速傅里叶变换,得到信号的频谱特性。 3.设计数字滤波器 采用窗函数法和双线性变换法设计下列要求的三种滤波器,根据语音信号的特点给出有关滤波器的性能指标: 1)低通滤波器性能指标,fp=1000Hz,fc=1200Hz, As=100dB,Ap=1dB; 2)高通滤波器性能指标,fc=4800Hz,fp=5000Hz ,As=100dB,Ap=1dB; 3)带通滤波器性能指标,fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。 4.对语音信号进行滤波 比较用两种方法设计的各滤波器的性能,然后用性能好的滤波器分别对采集的语音信号进行滤波;并比较滤波前后语音信号的波形及频谱,分析信号的变化。 5.回放语音信号,感觉滤波前后的声音变化。 三、实验原理 (一)基于双线性Z变换法的IIR数字滤波器设计 由于的频率映射关系是根据推导的,所以使jΩ轴每隔2π/Ts便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证: 1) s平面的整个jΩ轴仅映射为z平面单位圆上的一周; 2) 若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的; 3) 这种映射是可逆的,既能由G(s)得到H(z),也能由H(z)得到G(s); 4) 如果G(j0)=1,那么。 双线性Z变换满足以上4个条件的映射关系,其变换公式为

滤波器设计MATLAB

数字信号处理

第一章概述 《数字信号处理》课程是通信专业的一门重要专业基础课,是信息的数字化处理、存储和应用的基础。通过该课程的课程设计实践,使我们对信号与信息的采集、处理、传输、显示、存储、分析和应用等有一个系统的掌握和理解,巩固和运用在《数字信号处理》课程中所学的理论知识和实验技能,掌握数字信号处理的基础理论和处理方法,提高分析和解决信号与信息处理相关问题的能力,为以后的工作和学习打下基础。 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。 其中,设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用

最广泛的是双线性变换法。 我们在课本中学到基本设计过程是: ①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器; ③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。 而MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。 第二章总体方案设计 首先我将所给信号用MATLAB作图分析,然后通过观察st的幅频特性曲线,确定用高通滤波器作为处理信号的滤波器。选取滤波器的通带最大衰减为,阻带最小衰减为60dB为参数。 然后通过编程序调用MATLAB滤波器设计函数ellipord和ellip设计椭圆滤波器;通过编程序调用函数cheb1ord和cheby1设计切比雪夫滤波器,并绘图显示其幅频响应特性曲线。最后使用用滤波器实现函数filter,用两个滤波器分别对信号st进行滤波后绘图显示时域波形,观察滤波效果。 实验程序框图如图所示:

MATLAB课设报告

课程设计任务书 学生姓名:董航专业班级:电信1006班 指导教师:阙大顺,李景松工作单位:信息工程学院 课程设计名称:Matlab应用课程设计 课程设计题目:Matlab运算与应用设计5 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应 用”、线性代数及相关书籍等; 3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成; 2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析, 针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: ①初步了解Matlab、熟悉Matlab界面、进行简单操作; ②MATLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计; ③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形 标注、简单颜色设定等; ④使用文本编辑器编辑m文件,函数调用; ⑤能进行简单的信号处理Matlab编程; ⑥按要求参加课程设计实验演示和答辩等。 3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献(不少于5篇); ⑦其它必要内容等。 时间安排:1.5周(分散进行) 参考文献: [1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010. [2]王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011. [3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011. [4]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010. 指导教师签名:年月日 系主任(或责任教师)签名:年月日

基于matlab的数字滤波器设计

淮北煤炭师范学院 2009届学士学位论文 基于MA TLAB的数字滤波器设计 学院、专业物理与电子信息学院 电子信息科学与技术 研究方向基于MATLAB的数字滤波器设计 学生姓名耿博 学号200513432024 指导教师姓名邹锋 指导教师职称讲师 2009 年4 月18

基于MATLAB的数字滤波器设计 耿博 (淮北煤炭师范学院物理与电子信息学院235000) 摘要随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 数字滤波是数字信号处理的重要内容,数字滤波器可分为IIR和FIR两大类。对于IIR数字滤波器的设计,需要借助模拟原型滤波器,再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。本文根据IIR滤波器和FIR滤波器的特点,在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并对采集的语音信号进行分析,最后给出了IIR和FIR对语音滤波的效果。 关键词数字滤波器;IIR ;FIR ;MATLAB

The Design of Digital Filter based on MATLAB Geng Bo School of Physics and Electronics Information, Huaibei Coal Industry Teachers? College, 235000 ABSTRACT Along with the information age and the digital world arrival, the digital signal processing has become a now extremely important discipline and the area of technology.The digital signal processing in the correspondence, the multitudinous domains the pronunciation such as the image, the automatic control, the radar, the military, the aerospace, the medical service and the domestic electric appliances and so on have obtained the widespread application.In the digital signal processing application, the digital filter are extremely important and have obtained the widespread application. The digital filter are the digital signal processing important content, the digital filter may divide into IIR and the FIR two main kinds. As for the IIR digital filter design, we need the help of analog prototype filter, and then transform analog filter into digital filter. In the paper we use the design of the pulse response invariable method, the bilinear method and full function design; as for the FIR filter, we can design it directly based on the giving frequency, in the paper it uses the design of the window function.This article according to the IIR filter and the FIR filter characteristic, uses the bilinearity method of transformation under the MATLAB bad boundary to design IIR and to design the FIR numeral filter separately with the window box number, and carries on the analysis to the gathering pronunciation signal, and finally gives IIR and FIR to the pronunciation filter effect. Keywords Digtial Filter;IIR;FIR;MATLAB

Matlab课程设计报告

自控系统仿真软件课程设计报告 MATLAB 设计题目:牛顿摆球 姓名: 学号: 院系: 班级:1203 指导教师: 2014年12月20日

一.课程设计目的 1、熟悉课程设计的基本流程; 2、掌握MATLAB语法结构及调试方法; 3、熟悉MATLAB函数调用,熟练二维画图; 4、掌握MATLAB语言在控制方面的运用; 5、学会用MATLAB进行基本仿真; 6、掌握MATLAB编程技巧,提高编程水平。 二.系统分析 1.题目的描述: (1)牛顿摆球原理描述 五个质量相同的球体由吊绳固定,彼此紧密排列。当摆动最右侧的球并在回摆时碰撞紧密排列的另外四个球,最左边的球将被弹出,并仅有最左边的球被弹出。当然此过程也是可逆的,当摆动最左侧的球撞击其它球时,最右侧的球会被弹出。当最右侧的两个球同时摆动并撞击其他球时,最左侧的两个球会被弹出。同理相反方向同样可行,并适用于更多的球。 为了更接近现实,在这里我将考虑重力及空气阻力的影响,摆球将不会永无止境的运动下去,由于外界因素的影响,摆球运动一段时间后将回归静止状态。(2)通过MATLAB动画程序制作软件,实现下述过程 当运行程序时,把最右边的小球拉到一定的高度放下,让其碰撞其余四个小球,仅让最左边的小球被弹出,当最左边小球回摆碰撞其它球时,最右边小球又被弹出,如此循环。由于是非理想条件下,摆球的摆动幅度会随摆动次数的增加越来越小,直到静止。 时间停顿两秒,把右边两小球一起拉到一定高度放下,让其碰撞其余三个球,同样仅让左边两球被弹出,当球回摆再次碰撞时,最右边两球又被同时弹出,如此循环,因为外界因素的影响,最终五个球都会静止下来。 (3)整个实验看似简单,但要在MATLAB上完成这样一个动画过程,还是需要下点功夫,克服困难的。经过自己的努力,终于实现了整个过程,这也是一种不小的收获。 2.设计要求: (1)能够实现有阻尼摆动,即摆幅随摆动次数增加越来越小,直到静止。(2)能够让摆球弧线摆动。 三.系统设计 1.系统设计过程 (1)通过函数axis建立坐标系 (2)在坐标系范围内通过函数line画各个支架 (3)通过函数title添加标题“动量守恒实验”、函数text添加标注“牛顿摆球” (4)通过函数line画出五个球,并设定其初始位置,颜色,大小,线条的擦拭方式

数字滤波器的MATLAB设计与DSP上的实现

数字滤波器的MAT LAB设计与 DSP上的实现 数字滤波器的MATLAB 设计与DSP上的实现 公文易文秘资源网佚名2007-11-15 11:56:42我要投稿添加到百度搜藏 摘要:以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在CCS5000仿真开发,然后将程序加载到TMS320VC5409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实现的关键问题。关键词 摘要:以窗函数法设计线性相位 FIR数字滤波器为例,介绍用 MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在 CCS5000仿真开发,然后将程序加载到 TMS320VC5 409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实 现的关键问题。 关键词:数字滤波器MATLAB DSP 引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应

用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1数字滤波器的设计 1.1数字滤波器设计的基本步骤 数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR )滤波器和有限长冲激响应(FIR )滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间, 在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着 MATLAB软件尤 其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 数字滤波器设计的基本步骤如下: (1确定指标 在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给岀幅度和相位响应。幅度指标主要以两种方式给岀。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FI R滤波器的设计。第二种指标是相对指标。它以分贝值的形式给岀要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。 (2)逼近

关于滤波器设计的matlab函数简表

关于滤波器设计、实现的Matlab函数分类函数名功能说明 滤波器分析 (求幅频、相频响应)abs求模值 angle求相角 freqs模拟滤波器的频率响应freqz数字滤波器的频率响应grpdelay群延迟 impz脉冲响应(离散的)zplane画出零极点图 fvtool滤波器可视化工具 滤波器实现(求输入信号通过滤波器的响应)conv/conv2卷积/二维卷积 filter求信号通过滤波器的响应 IIR滤波器阶数估算buttord巴特沃斯滤波器阶数估算 cheb1ord切比雪夫Ⅰ型滤波器阶数估算 cheb2ord切比雪夫Ⅱ型滤波器阶数估算 ellopord椭圆滤波器阶数估算 IIR数字滤波器设计(求系统函数H(z))butter cheby1 cheby2 ellip 模拟低通滤波器原型(归一化的)buttap模拟低通巴特沃斯滤波器原型cheb1ap模拟低通切比雪夫Ⅰ型滤波器原型cheb2ap模拟低通切比雪夫Ⅱ型滤波器原型ellipap模拟低通椭圆滤波器原型besselap模拟低通贝塞尔滤波器原型 模拟低通滤波器设计(求系统函数H(s))butter巴特沃斯滤波器设计cheby1切比雪夫Ⅰ型滤波器设计cheby2切比雪夫Ⅱ型滤波器设计ellip椭圆滤波器设计besself贝塞尔滤波器设计 模拟滤波器频带变换lp2bp低通→带通 lp2bs低通→带阻 lp2hp低通→高通 lp2lp低通→低通 滤波器离散化(由模拟滤波器得到数字滤波器)bilinear脉冲响应不变法impinvar双线性变换法 FIR滤波器设计fir1基于窗函数的FIR滤波器设计 fir2基于窗函数的任意响应FIR滤波器设 计 窗函数boxcar矩形窗 rectwin矩形窗 bartlett三角窗

matlab课程设计拟定题目

第一类:单位转换 1.长度单位换算的设计与实现 2.面积单位换算的设计与实现 3.体积单位换算的设计与实现 4.容积单位换算的设计与实现 5.质量单位换算的设计与实现 6.时间单位换算的设计与实现 7.温度单位换算的设计与实现 7.压强单位换算的设计与实现 8.角度单位换算的设计与实现 8.功率单位换算的设计与实现 第二类:曲线绘制 1.直线的自动绘制和相关计算 2.椭圆的自动绘制和相关计算 3.双曲线的自动绘制和相关计算 4.抛物线的自动绘制和相关计算 5.心脏线的自动绘制和相关计算 6.渐开线的自动绘制和相关计算 7.滚圆线的自动绘制和相关计算 8.三叶玫瑰线的自动绘制和相关计算9.四叶玫瑰线的自动绘制和相关计 10.阿基米德螺线的自动绘制和相关计算第三类:曲面绘制 1.球面的自动绘制和相关计算 2.椭球面的自动绘制和相关计算 3.单叶双曲面的自动绘制和相关计算 4.双叶双曲面的自动绘制和相关计算 5.抛物面的自动绘制和相关计算 6.双曲抛物面的自动绘制和相关计算 7.双曲柱面的自动绘制和相关计算 8.椭圆柱面的自动绘制和相关计算 9.抛物柱面的自动绘制和相关计算 10.圆锥面的自动绘制和相关计算 第四类:线性回归 1.男士身高体重相关计算经验公式 2.女士身高体重相关计算经验公式 3.男士胖瘦等级的确定 4.女士胖瘦等级的确定 5.男士身高脚长相关计算经验公式 6.女士身高脚长相关计算经验公式 7.父子身高相关性研究 8.母子身高相关性研究 9.父女身高相关性研究 10.母女身高相关性研究 第五类:学习成绩 1.期末总评自动计算的设计与实现 2.成绩等级自动评定的设计与实现 3.成绩分段自动统计的设计与实现 4.成绩分布折线自动绘制的设计与实现 5.成绩自动统计分析的设计与实现 6.试卷分布自动分析的设计与实现 7.试卷难度自动分析的设计与实现 8.考试成绩名次自动生成的设计与实现

MATLAB程序设计课程设计

Matlab课程设计 题目: 二、利用混合空间法增强锐化图像仿真 将原始图像增强,最终增强为如下类似图像 。 可参考如下过程

源程序: clc clear all %读取图像 J=imread('E:\工作台\MATLAB\2016课程设计\仿真2附件 \Fig0343(a)(skeleton_orig).tif'); %拉普拉斯变换得到M1 [m,n]=size(J); I=im2double(J); h1=[0,-1,0;-1,4,-1;0,-1,0]; M1=imfilter(I,h1); %与原图相加得到M2,锐化原图 M2=M1+I; %sobel算子运算结果得到M3,保留边缘去除噪声 h2=[1,0,-1;2,0,-2;1,0,-1]; h3=[-1,-2,-1;0,0,0;1,2,1]; Sx=imfilter(I,h2); Sy=imfilter(I,h3); for i=1:m for j=1:n M3(i,j)=sqrt((Sx(i,j))^2+(Sy(i,j))^2); end end %作3*3模板的均值平滑 M4=zeros(m,n); for x=2:m-1 for y=2:n-1 for a=-1:1 for b=-1:1 M4(x,y)=(M4(x,y)+M3(x+a,y+b))/9; end end end end for c=1:m for d=1:n M4(c,1)=M3(c,1); M4(1,d)=M3(1,d); end end %作幂次变换,提升亮度2倍,提升对比度 for e=1:m for f=1:n

M5(e,f)=M2(e,f)*M4(e,f); end end M6=I+M5; for g=1:m for h=1:n M7(g,h)=2*(M6(g,h))^1.15; end end subplot(241);imshow(I); subplot(242);imshow(M1); subplot(243);imshow(M2); subplot(244);imshow(M3); subplot(245);imshow(M4); subplot(246);imshow(M5); subplot(247);imshow(M6); subplot(248);imshow(M7); 分析: 1.读取图像 2.利用 Laplacian 变换得到M1,在与原图相处理得到锐化的图像 3.用 Sobel 算子运算,保留边缘去除噪声 4.用3*3的模板均值平滑化图像 5.用幂律定理,提高图像亮度,提高对比度

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

数字信号处理 课程设计报告 设计名称:基于matlab的FIR数字滤波器设计 彪

一、课程设计的目的 1、通过课程设计把自己在大学中所学的知识应用到实践当中。 2、深入了解利用Matlab设计FIR数字滤波器的基本方法。 3、在课程设计的过程中掌握程序编译及软件设计的基本方法。 4、提高自己对于新知识的学习能力及进行实际操作的能力。 5、锻炼自己通过网络及各种资料解决实际问题的能力。 二、主要设计内容 利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。 三、设计原理 FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。 目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。 如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位: 第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2 第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2 对称中心在n=(N-1)/2处 四、设计步骤 1.设计滤波器 2.所设计的滤波器对多个频带叠加的正弦信号进行处理 3.比较滤波前后信号的波形及频谱 五、用窗函数设FIR 滤波器的基本方法 基本思路:从时域出发设计 h(n)逼近理想 hd(n)。设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能

matlab课程设计题目全

Matalab课后作业 学院:电气信息工程及其自动化 班级: 学号: 姓名: 完成日期: 2012年12月23日

1、 matlab 软件主要功能是什么?电气工程及其自动化专业本科生主要用到哪 些工具箱,各有什么功能? 答:(1)主要功能:工业研究与开发; 数学教学,特别是线性代数;数值分析和科学计算方面的教学与研究;电子学、控制理论和物理学等工程和科学学科方面的教学与研究; 经济学、化学和生物学等计算问题的所有其他领域中的教学与研究;符号计算功能;优化工具;数据分析和可视化功能;“活”笔记本功能;工具箱;非线性动态系统建模和仿真功能。 (2)常用工具箱: (a ) MATLAB 主工具箱:扩充matlab 的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能。 (b )符号数学工具箱:符号表达式、符号矩阵的创建;符号可变精度求解;因式分解、展开和简化;符号代数方程求解;符号微积分;符号微分方程。 (c ) SIMULINK 仿真工具箱: Simulink 是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink 提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。 (d )信号处理工具箱:数字和模拟滤波器设计、应用及仿真;谱分析和估计;FFT 、DCT 等 变换;参数化模型。 (e )控制系统工具箱:连续系统设计和离散系统设计;状态空间和传递函数以及模型转换;时域响应(脉冲响应、阶跃响应、斜坡响应);频域响应(Bode 图、Nyquist 图);根轨迹、极点配置。 2、设y=23e t 4-sin(43t+3 ),要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。 程序如下: clc clear x=0:0.01:1.5; y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3); y1=diff(y); subplot(2,1,1) plot(x,y) subplot(2,1,2) plot(x(1:150),y1) 曲线如下图所示:

MATLAB仿真课程设计

电气工程工具软件课程设计-MATLAB 学号:3100501044 班级:电气1002 姓名:王辉军 指导老师:乔薇 2014年1月16日

课程设计任务:构建一个含有PID控制器的系统,观察 K(比例系数)、 p K(积分系数)、d K(微分系数)不同值时系统的变化。 i (Continuous模块库中的Zero-Pole模块)输入为阶跃函数 一.建立含有pid子系统的系统模型 (1)选用器件搭建电路 图1-1 图1-2 (2)构建PID控制器 图1-3

(3)上述结构图封装成PID控制器 ①创建子系统。选中上述结构图后再选择模型窗口菜单“Edit/Creat Subsystem” ②封装。选中上述子系统模块,再选择模型窗口菜单“Edit/Mask Subsystem” ③根据需要,在封装编辑器对话框中进行一些封装设置,包括设置封装文本、对话框、图标等。本次试验主要需进行以下几项设置:Icon(图标)项:“Drawing commands”编辑框中输入“disp(‘PID’)”,如下 左图示:Parameters(参数)项:创建Kp,Ki,Kd三个参数,如下右图示 图1-4 图1-5

(4)搭建单一回路系统结构框图如下图 图1-6 所需模块及设置:Sources模块库中Step模块;Sinks模块库中的Scope 模块;Commonly UsedBlocks模块库中的Mux模块;Continuous模块库中的Zero-Pole模块。Step模块和Zero-Pole模块设置如下: 图1-7 图1-8

二.比较以下参数的结果:(把各个仿真波形图截图标注) 图2-1 如上图可更改Kp,Ki,Kd的值以实现以下要求: (1)Kp=8.5,Ki=5.3,Kd=3.4 图2-2 (2)Kp=6.7,Ki=2,Kd=2.5

matlab数字滤波器设计程序

%要求设计一butterworth低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz。>>wp=30;ws=40;rp=0.5;rs=40;fs=100; >>wp=30*2*pi;ws=40*2*pi; >> [n,wn]=buttord(wp,ws,rp,rs,'s'); >> [z,p,k]=buttap(n); >> [num,den]=zp2tf(z,p,k); >> [num1,den1]=impinvar(num,den); Warning: The output is not correct/robust. Coeffs of B(s)/A(s) are real, but B(z)/A(z) has complex coeffs. Probable cause is rooting of high-order repeated poles in A(s). > In impinvar at 124 >> [num2,den2]=bilinear(num,den,100); >> [h,w]=freqz(num1,den1); >> [h1,w1]=freqz(num2,den2); >>subplot(1,2,1); >>plot(w*fs/(2*pi),abs(h)); >>subplot(1,2,2); >>plot(w1*fs/(2*pi),abs(h1)); >>figure(1); >>subplot(1,2,1); >>zplane(num1,den1); >>subplot(1,2,2); >>zplane(num2,den2);

MATLAB课程设计报告图像处理

一.课程设计相关知识综述...................................................................... 1.1 研究目的及意义 (3) 1.2 数字图像处理研究的内容........................................................... 1.3 MATLAB 软件的介绍.................................................................. 1.3.1 MATLAB 语言的特点......................................................... 1.3.2 MATLAB 图像文件格式.................................................... 1.3.3 MATLAB 图像处理工具箱简介........................................ 1.3.4 MATLAB 中的图像类型.................................................... 1.3.5 MATLAB 的主要应用........................................................ 1.4 函数介绍........................................................................................ 二.课程设计内容和要求........................................................................... 2.1 主要研究内容................................................................................ 2.2 具体要求....................................................................................... 2.3 预期达到的目标........................................................................... 三.设计过程............................................................................................... 3.1 设计方案及步骤............................................................................ 3.2 程序清单及注释........................................................................... 3.3 实验结果........................................................................................ 四.团队情况................................................................................................ 五.总结....................................................................................................... 六.参考文献............................................................................................... 一.课程设计相关知识综述. 1.1研究目的及意义

高级数字滤波器设计及Matlab实现

高级数字滤波器设计及Matlab 实现 利用Parks-McClellan 算法设计线性相位FIR 滤波器 一、 算法原理 长度为2n+1的线性相位数字滤波器的传输函数为:20 ()n k k k G z h Z -== ∑。当 Z=exp(j T ω)=exp(2j F π)时,可得到频率响应: ()exp(2)cos 2n k k G F j nF d k F ππ==-∑ exp(2)()j F H F π=- 其中2n k k d h -=,k=0,……,n-1,0n d h = max ()()()W F D F H F - 对于一个理想的低通滤波器上式中的H(F)可以表示为: 误差加权函数: 允许设计者自己给定通带和阻带内的误差范围。令p s B B A = ,设计长度为2n+1的线性相位低通滤波器只要找到k d 并使得m a x ()()()W F D F H F -最小。 设空间A 是[0,1/2]的封闭子空间,为了使0 ()cos 2n k k H F d kF π== ∑是D(F) 在A 上唯一的最佳逼近,加权误差方程()()[()()]E F W F D F H F =-在A 上至少要有n+2个交错点。因此1()()i i E F E F E -=-=±,011,n i F F F F A +<∈ ,

max ()E E F =。算法的流程如图1所示。 对于给定的n+2个频率点,需要计算n+2个方程: ()(()())(1)k k k k W F H F D F ρ-=-- 写成矩阵的形式就是: 图 1.

0000001 1 1 1 1011 1 1 1 11 1cos 2cos 4cos 2()()11cos 2cos 4cos 2()()()(1)1cos 2cos 4cos 2()n n n n n n n F F nF W F d D F d F F nF D F W F d D F F F nF W F ππππππρπππ++++++?? ???? ?? ?? ??-????????????=??????????????????-?? ????? ? 通过该方程组可得: 其中: 利用拉格朗日插值公式可得: 这里 利用求得的H(F)求出误差函数E(F)。如果对所有的频率都有()E F ρ≤,说明ρ是纹波极值,交错频率点121,n F F F + 是交错频率点。若存在某些频率使得()E F ρ>,说明初始交错点组中的某些点需要交换。 对于上次确定的121,n F F F + 中每一点,都检查其附近是否存在某一频率 ()E F ρ>,如果有再在该点附近找出局部极值点,并用该,点代替原来的

相关文档
最新文档