数字信号处理实验教案_第1页
数字信号处理实验教案_第2页
数字信号处理实验教案_第3页
数字信号处理实验教案_第4页
数字信号处理实验教案_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字信号处理试验教案

(1112341用)

王新民

湖北工程学院物理与电子信息工程学院

目录

数字信号处理试验规定..............................

预备试验用于信号处理的MATLAB基本操作...........

试验一系统响应及系统稳定性.....................

试验二时域采样与频域采样........................

试验三用FFT对信号作频谱分析...................

试验四HR数字滤波器设计及软件实现..............

试验五FIR数字滤波器设计与软件实现.............

附录.............................................

附录1:MATLAB编程及绘图措施....................

附录2:MATLAB矩阵及矩阵的运算..................

信号处理试验规定

一、试验课程任务与规定

1.试验目的

信号处理试验教学是为了将学生的计算机操作能力、分析能力、软件设计能力与应用

实践结合起来,引导学生由浅入深地掌握信号处理理论与开发工具,具有实际应用的信号

处理软件开发与制作基础。

2.试验基本规定(以软件设计为重要体现形式)

(1)上机前应准备好试验的程序设计算法描述与关键分析内容;

(2)准备好程序测试数据和设备操作环节,上机调试、运行;

(3)完毕每个试验后进行数据与程序对比分析;

(4)递交试验成果的可执行程序、源程序并演示试验成果;

(5)写出试验汇报。

二、试验课时安排

预备试验用于信号处理的MATLAB基本操作(3课时)

试验一系统响应及系统稳定性(3课时)

试验二时域采样与频域采样(3课时)

试验三用FFT对信号作频谱分析(3课时)

试验四HR数字滤波器设计及软件实现(3课时)

试验五F1R数字滤波器设计与软件实现(3课时)

三、试验汇报格式

姓名:学号:试验日期:

试验题目:

试验目的:

试验内容:

试验地点:

试验成果:(包括列出试验编写的所有文献及各项试验成果的曲线,并加注必要的阐明)

成果分析:(包括回答试验指导书中提出的问题)

总结:

四、试验考核

(1)试验预习汇报;

(2)试验签到;

(3)上机实际操作;

(4)试验设计汇报;

五、教材及参照书

1.教材:

[1]高西全,丁玉美.数字信号处理(第三版)西电出版社,.3

2.参照书:

[1]张志勇等.MATLAB教程Ra.北京航空航天大学出版社..8

[2]陈怀琛等.MATLAB及在电子信息课程中的应用.电子工业出版社.

[3]程佩清.数字信号处理教程[M].清华大学出版社.

预备试验用于信号处理的MATLAB基本操作

1.试验目的:

①学习和掌握MATLAB最基本的矩阵运算与绘图工具。

②学习用MATLAB实现信号处理的基本操作。

2.试验环节:

①熟悉MATLAB的使用环境和措施。

②练习使用基本的向量生成、矩阵运算、绘图等语句。

A)运用冒号(:)生成向量

XI=[12345]

X2=[1.0001.5002.0002.500]

X3=[54321]

B)分别生成3*3,3*4的全0矩阵,全1矩阵和随机矩阵

C)分别输入矩阵

1231.01.11.2

A=456B=2.02.12.2

7893.03.13.2

D)分别计算A+B,A-B,A+3,A-4,A*B,A.*B,C=inv(A),A/B,A./B

E)分别计算sin(xl),cos(xl),exp(xl),lg(x2),sqrt(x2)

3.试验阐明

1.向量的生成

运用冒号(:)生成向量

a.X=j:k(j<k)

生成X=[j,j+1,广2,…,k-l,k]

b.X=j:I:k

假如I>0且j〈k或I<0且j>k,则生成向量

X=[j,j+I,j+2I,...,k-I,kl

假如I<0且j>k,则生成向量

X=[j,j+I,j+2I,...,k]

例Xl=l:5Xl=[l2345]

X2=1:0.5:3X2=[1.0001.5002.0002.5003.000]

X3=5:-1:1X3=[54321]

2.矩阵的生成

1)Zeros生成全0阵

B二Zeros(n)生成n*n的全0矩阵

B二Zeros(m,n)生成m*n的全0矩阵

B=Zeros(Size(A))生成与与矩阵A大小相似的全0矩阵

注:叫n必须是一种非负数

2)ones生成全1阵

3)rand生成均匀分布的随机阵

二矩阵的算术运算

1.加法和减法

对于同维矩阵指令的

A+B

A-B

对于矩阵和标量(一种数)的加减运算,指令为:

A+3

A-9

2.乘法和除法运算

A*B是数学中的矩阵乘法,遵照矩阵乘法规则

A.*B是同维矩阵对应位置兀素做乘法

B=inv(A)是求矩阵的逆

A/B是数学中的矩阵除法,遵照矩阵除法规则

A./B是同维矩阵对应位置元素相除

另A表达矩阵的转置运算

三.数组函数

下面列举某些基本函数,他们的使用方法和格式都相似。

Sin(A),cos(A),exp(A),log(A)(相称于In)

Sgrt(A)开平方abs(A)求模real(A)求实部imag(A)求虚部

式中A可以是标量也可以是矩阵

例:运用等差向量产生一种正弦值向量

t=0:0.1:10

A=sin(t)

PLot(A)

这时候即可看到一种绘有正弦曲线的窗口弹出

另:每条语句背面加表达不要显示目前语句的执行成果

不加表达要显示目前语句的执行成果。

练习:t=0:0.01:1;

y=sin(2*pi*t);

plot(t,y);

xlabel('0-T);

ylabelCTT');

text(0.6,0,'y=sin(2*pi*t)');

H=legend(,sin');

四.绘图(二维绘图)

格式1:plot(y);%绘持续曲线图。stem(y);%绘离散序列波形图。

y是一种数组,给出线性直角坐标的二维图,以y中元素的下标作为横坐标,y中元

素的值作为纵坐标,一一对应画在平面图上。(默认为点点之间用直线连接起来)

格式2:plot(x,y);%绘持续曲线图。stem(x,y);%绘离散序列波形图。

x,y都是数组,且具有相似的长度,以x元素为横坐标,y元素的值为纵坐标,一一

对应画在平面图上

线型、点型和颜色:

MATLAB会自动设定所画曲线的颜色和线型。可自动设置,在输入变量组后,加一

种引号,在引号内部放入线型和颜色的标识符。

格式:3:plot(x,y:*b,);%绘持续曲线图。stem(x,y「b,);%绘离散序列波形图。

下面给出常用选项。

r红,g绿,b蓝,y黄,m洋红,c青,w白,k黑,一实线,----虚

线,*用星号标数据点,用点标。(字母'。')用圆圈标,x(字母'xD用

叉标,-.点划线,下面给出窗口分割语句

subplot(x,y,n)

将一种窗口分割成x行,y列共x*y个窗口

例subplot(3,2,2)分割3*2个窗口。

五.阅读材料

附录1MATLAB编程及绘图措施

附录2MATLAB矩阵及矩阵的运算

附录1:MATLAB编程及绘图措施

I-MATLAB变量

MATLAB通过变量名来调用变量,变量的命名规则同C语言:以字母开头,由字母、下

划线和数字构成,注意辨别大小写,长度不超过31个。

□MATLAB常用运算符(如表1)

表1常用运算符

算术运算符运算功能

+加法

—减法

/(./)矩阵右除(矩阵元素右除)

\(A)矩阵左除(矩阵元素左除)

*(.*)矩阵乘(矩阵元素乘)

A(.A)矩阵求寒(矩阵元素求累)

()优先运算,下标,输入变量

[]生成矩阵,放输出变量

%注释符

s矩阵求共扰转置

关系运算符运算功能

==等于

不等于

<=不不小于等于

>=不小于等于

>不小于

<不不小于

逻辑运算符运算功能

&逻辑与

1逻辑或

〜逻辑非

□MATLAB常用的数学运算函数

表2常用数学运算函数

常用运算函数名运算功能

sin(x)正弦

cos(x)余弦

tan(x)正切

exp(x)指数

imag(x)复数的虚部

real(x)复数的实部

conj(x)复数的共物

log(x)NIog2(x0>loglO(x)以自然数e(2、10)为底的对数

sqrt(x)平方根

round(x)四舍五入取整

max(x)取数组的最大值

min(x)取数组的最小值

mean(x)取数组的平均值

std(x)取数组的原则差

sum(x)数组求和

阐明:

♦函数的调用格式为;

[输出参数1,输出参数2,…上函数名(输入参数1,输入参数2,…)

MATLAB常用作图函数

表3常用作图函数

函数名图形体现形式

plot(x),plot(x,y)将点用线连起来的持续波形

stem(x)离散序列波形

subplot(n1,n2)将图形窗口分隔为nl*n2个

hold保留目前图形

figure(n)打开一种新的图形窗口

grid画成网格形

title(,字符串,)给图形加标题

xlableC字符串,)给图形窗口X轴加标题

xlab-C字符串,)给图形窗口y轴加标题

(1)绘制直角坐标中的二维曲线:

格式1:plot(y)

y是一种数组,给出线性直角坐标的二维图,以y中元素的下标作为横坐标,y中元

素的值作为纵坐标,一一对应画在平面图上。(默认为点点之间用直线连接起来)

格式2:plot(x,y)

x,y都是数组,且具有相似的长度,以x元素为横坐标,y元素的值为纵坐标,一一

对应画在平面图上

线型、点型和颜色:

MATLAB会自动设定所画曲线的颜色和线型。可自动设置,在输入变量组后,加一

种引号,在引号内部放入线型和颜色的标识符。

格式:3:plot(x,y,,*b,)

例如:回平也图,在命令窗口输入:

»X=1:5;

»Y=[0.7,0.5,0.2,-0.4,0.6];

»plot(X,Y)%画连线图,见图1.1

»plot(X,Y,'*')%画散点图,见图1.2

(2)多条曲线的绘制

格式1:plot(x,[yl;y2;­]),

若X(列或行)与尸[yl;y2;..]中的(列或行)具有相似的长度,则y的行

或列数就是曲线的个数,自动给出曲线的颜色。

t=0:0.5:4*pi

y1=exp(-0.1

y2=exp(-0.1*t).*sin(t+1)

plot(t,[yl;y2])

格式2:用hold命令,在画完前一张图后用hold命令保持住。

t=0:0.5:4*pi

y1=exp(-0.1*t).*sin(t)

---------y2=expGO」*」),*sin(t+1)--------------------

plot(t,y1)

holdon

plot(t,y2「g,)

注意及时解除保持状态,即键入holdoff,否则,后来的图都会叠加在此图上,

导致混乱。

格式3:在plot后使用多输入变量

plot(x1,y1,x2,y2,...,xn,yn)每对数组可以绘出一条曲线。

t=0:0.5:4*pi

y1=exp(-0.1*t).*sin(t)

y2=exp(-0.1*t).*sin(t+1)

plot(t,yl,t,y2,,g,)

格式4:用plotyy命令,设有两个纵坐标

t=0:0.5:4*pi

yl=exp(-0.1*t).*sin(t)

y2=exp(-0.1*t).*sin(t+l)

plotyy(t,yl,t,y2)

(3)图象屏幕控制命令

图象屏幕可开可关,可以打开几处图形窗,也可以在一种图象窗内画出几

幅分图等。

格式1:figure(n):打开图形窗。

MATLAB中的第一幅图随plot命令自动打开,后来的plot命令都画在同一

张图上。假如要画在另一张新图上,就要用figure命令打开新的图形窗口。打

开后,需要指明画在哪张图上,否则,所有的图都会画在最终显示的那幅图上。

格式2:elf:清除目前图形窗的内容

格式3:close:关闭目前图形窗

格式4:closeall:关闭所有图形窗

格式5:subplot(n,m,p)将图象窗口分为n*m个子图,在p个子图处绘制图形

t=0:0.5:4*pi;y=exp(-0.1*t).*sin(t);

subplot(2,2,1);stem(t,y);

title('stem(t,y)');

subplot(2,2,2);stairs(t,y);

subplot(2,2,3);bar(t,y);

title('bar(t,y)');

subplot(2,2,4);fill(t,y/r,);

titleCfill(t,y)9);

।MATLAB程序构造

与大多数计算机语言同样,MATLAB提供了设计程序所必须的三种基本程序构造:

次序构造、循环构造及分支构造。

①次序构造

MATLAB的次序构造就是由体现式构成的语句,语句之间用逗号或分号隔开,这些

语句按次序执行。当体现式背面接分号时,体现式的成果不显示出来,保留在内存中。

。循环构造

MATLAB的循环构造就是根据一定的条件多次反复执行的一段指令。循环控制由

「or和while语句实现。

•for-end循环

for语句的基本格式为:

for循环变量=体现式1:体现式2:体现式3

循环语句组

end

阐明:

♦体现式1的值是循环变量的初值

♦体现式2的值是每执行一次循环变量要增长的值

♦体现式3的值是用来判断循环变量与否介于体现式1和体现式3之间,,假如条件满

足则执行循环,假如条件不满足则结束循环。

举例:1.运用for循环求离散傅立叶变换(DFT)。

NTN-1匹或

X(k)=£工伽)W:=Zx(n)eN%=0J…,N—1

〃=0n=0

部分源程序如下:

N=length(x);

X=zeros(l,N);

fork=0:N-l

forn=0:N-l

X(k+1)=X(k+1)+x(n+1)*exp(-j*2*pi/N*n*k);

end

end

•while-end循环

while语句的基本格式为:

while条件

循环语句组

end

阐明:

♦while语句的执行方式为:判断条件成立否,执行循环语句组,执行后再判

断条件与否成立,假如不成立就结束循环。

3分支构造

•if-else-end构造

最简朴的格式为:

if条件体现式

体现式为真时的语句组

end

假如再多一种分支,格式为:

if条件体现式

体现式为真时的语句组

else

体现式为假时的语句组

end

假如有多种程序分支,可以用switch语句,格式为:

switch条件体现式

case值1

体现式的值=值1为真时的语句组

case值2

体现式的值=值2为真时的语句组

otherwise

上述成果为假时的语句组

end

3程序的优化

•循环程序优化

要尽量使用向量或矩阵编程,而不是像在其他语言中对向量或矩阵的元素

编程,这样做,不仅可以使程序较短,并且大大提高执行的效率。

例如:一般循环编程,存为ex_l.m

x=l;

fork=l:1001

y(k)=loglO(x)

x=x+0.01

end

改为向量化编程,存为ex_2.m

x=l:0.01:10;

y=loglO(x);

比较这两个M文献的运行时间,在命令窗口运行:

»tic

»ex_l

»toc

elapsed_time=0.3800

»tic

»ex_2

»toc

elapsed_tinie=0

前一种用时0.38秒,而后一种几乎无等待。

•数组的优化

数组的预定义可以提高内存的运用率,不使用预定义,数组的多次扩维会

增长内存的碎片。

例如:一种不预定义的循环程序存为ex_3m

fork=l:100

r(k)=rank(magic(k));

end

改为一种预定义的相似运算的程序存为ex_4.m

r=zeros(100,1);

fork=l:100

r(k)=rank(magic(k));

end

在命令窗口运行,比较两个文献的运行时间ex_3.m

»tic

»ex_3

»toc

elapsed_time=1.1000

»tic

»ex_4

»toc

elapsed_time=1.0400

前一种用时比后一种长。

附录2:MATLAB矩阵及矩阵的运算

。简易矩阵

矩阵须用中括号口将元素置于其中。

阵列为一维元素所构成,而矩阵为多维元素所构成:

例如

»x=[l2345678];%一维1X8阵列

»x=0:0.02:l;

%以起始值=0、增量值=0.02、终止值=1的矩阵(阵列),又称为冒号运算

»x=linspace(0,1,100);

%运用linspace函数,起始值=0,终止值=1,以等间隔(1-0)/100划分,

元素数目为100。

令提取矩阵中的元素

A(ij)表达矩阵A的第i行、第j列交叉点处的元素;

例1.得到矩阵A第三行第二列的元素

»A=[1,2,3A5;6,7,8A1O;11,12,13,14,15];

»A

A=

令A(ii,v)提取A的子矩阵,u,v是两个向量,分别指定行与列;

调用格式:

A(L1,:)表达提取A的L1指定的行、所有列;

A(:,L2)表达提取A的所有行,L2指定的列;

A(LI,L2)表达提取A的L1指定的行,L2指定的列构成子矩阵。

例2:提取矩阵A的子矩阵:

>>A([l,3],:)%提取A中第1和第三行所有的列元素

ans=

12345

1112131415

»A(:,[2,4,5])%提取A中第2,4,5列所有的行元素

ans=

245

7910

121415

例3:将向量中满足不超过0.5的元素提取出来

»rand('seed',0);%把均匀分布的伪随机发生器置为初始状态

»x=rand(l,10);%产生1X10的均布随机矩阵

»x=

Columns1through6

0.95010.23110.60680.48600.89130.7621

Columns7through1()

0.45650.01850.82140.4447

»L=x<=0.5;

»x=x(L)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论