ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:363.52KB ,
资源ID:23713410      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23713410.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字信号处理实验.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字信号处理实验.docx

1、数字信号处理实验实验一 熟悉matlab环境一、实验目的:1 熟悉matlab编程环境1 学会使用matlab对信号进行简单的运算二、实验器材:计算机三、实验内容:序列的基本运算以及序列图形的绘制四、实验步骤:1 两个信号的相加减运算信号的加减指两个长度相同的信号对应时刻的值相加减。 例:已知两个向量a=1 1 1 1和b=1 2 3 4,求c=a+b。MATLAB程序: a=1 1 1 1; b=1 2 3 4; c=a+bc = 2 3 4 52信号与标量的乘积 信号与标量的乘积的物理意义是将信号进行放大或缩小,也就是信号的尺度变换。例:已知信号,求。MATLAB程序: a=1 2 3 4

2、; c=3*ac =3 6 9 123两个信号相乘和乘方两个信号相乘即两个长度相同的序列对应元素相乘,也就是点积运算。用符号“.*”进行。一个指数信号的表示,即乘方用“.”例:已知两个向量a=1 1 1 1和b=1 2 3 4,求a*b。MATLAB程序: a=2 2 2 2; b=1 2 3 4; c=a.*bc = 2 4 6 84 信号折叠:fliplr序列以为对称轴对褶,可用将矩阵或矢量进行左右翻转的函数fliplr。源程序:function y,n=sigfold(x,n)% 实现y(n)=x(-n)y=fliplr(x); n=-fliplr(n);return x=1 2 3 4

3、 5x = 1 2 3 4 5 n=0 1 2 3 4 n = 0 1 2 3 4 y,n=sigfold(x,n)y = 5 4 3 2 1n = -4 -3 -2 -1 05信号的卷积c=conv(a,b) 用于求矢量a和b的卷积,注意这里求的是线性卷积,即若a的长度是N,b的长度是M,则卷积之后c的长度是N+M-1。例:已知线性时不变系统的输入序列,系统的单位取样响应是,求系统的输出。 a=1 1 1 1; b=1 1 1 1 1; c=conv(a,b)c = 1 2 3 4 4 3 2 16 length函数 length(x):用来计算向量x的长度。7 画图函数stem简介stem

4、(x,y)函数说明:stem函数是一个二维的画图函数,其中x和y分别是两个长度相同的向量。如果要绘制一个二维离散函数的图像,则x表示各个点横坐标的取值,y表示各个点纵坐标的取值。stem(.,fill)函数说明:这样的格式是可以将离散值的顶端填充成实心。例如: ,画出该序列。 x=1 2 3 4; n=(0:3); stem(n,x); stem(n,x,fill);观察两幅图的不同之处。五 实验报告1按照以上例题分别将matlab程序实现,并验证结果的正确性。2 在每道例题后面绘制出原序列和结果序列。3 用matlab实现下列函数并画图(1) (2) ,求两个序列的卷积,并分别画出序列x1(

5、n),x2(n),x(n)。实验二 matlab中离散信号的表示一、实验目的:学会使用matlab表示离散信号二、实验器材:计算机三、实验内容:1、 产生单位脉冲序列2、 产生单位阶跃序列3、 产生离散正弦信号四、实验步骤:1 产生单位脉冲序列(1)方法一axis(xmin xmax ymin ymax):用来限制x轴和y轴的起止点。xlabel(string)和ylabel(string):用来标注x轴和y轴。text(x,y,string):在(x,y)位置显示字符string。function x,n=impseq(n0,n1,n2)if(n0n2)|(n1n2) error(必须满足n

6、1=n0 n=-5:5; x=impseq(0,-5,5); stem(n,x); ylabel(x(n);axis(-5,5,0,1.5);text(5.5,0,n)结果如图2.1。(2)方法二zeros(m,n) 或者zeros(m n)函数说明:zeros(m,n)返回一个m行n列的零矩阵。 x=1 zeros(1,9); n=(0:9); stem(n,x,fill);结果如图2.2。2产生单位阶跃序列(矩形序列)plot(x,y):用来画由x和y向量各对应点组成的直线。(1)方法一function x,n=stepseq(n0,n1,n2)%产生单位阶跃序列 x(n)=u(n-n0)

7、if(n0n2)|(n1n2) error(必须满足n1=n0=0;return n=-1:8; a= length(n); y1=zeros(1,a); x,n=stepseq(3,-1,8); stem(n,x,filled),hold on, plot(n,y1); axis(0,12,0,1.1); text(12.2,0,n) ylabel(x(n);结果如图2.3。(2)方法二用MATLAB中的ones函数实现:x=ones(1,N);产生1行N列的1向量。 n=(0:9); x=ones(1,10); stem(n,x,fill);3产生离散正弦信号产生一个以1个单位作为采样间隔

8、,一个周期采样50个点的正弦信号。 R=50; %Generate sin signal m=0:1:R-1; s=sin(2*pi*m/R);y1=zeros(1,50); stem(m,s),hold on,plot(m,y1);五 实验报告1 按照上述步骤完成每个例题,学习每个函数的使用方法,将每道题的实验结果保留下来,附在实验报告上。2 用MATLAB产生一个序列,,并画图。附上实验程序和结果图。3用MATLAB产生一个矩形序列,,并画图。附上实验程序和结果图。4 用MATLAB产生一个以2个单位作为采样间隔,一个周期采样25个点的正弦信号,。附上实验程序和结果图。5 分析stem和p

9、lot函数的差别。实验三 用matlab进行系统分析一、实验目的:1、 学会使用matlab进行系统分析,会求解差分方程2、 绘制零极点图3、 将有理传输函数的部分分式展开二、实验器材:计算机三、实验内容:1、求系统的零极点2、系统零极点图的绘制3、有理传输函数的部分分式展开4、数字滤波器的单位脉冲响应5、求解差分方程四、实验步骤:1、求系统的零极点z,p,k = tf2zp(b,a)函数说明:该函数既可以用于模拟滤波又可以用于数字滤波。其中a,b都为列矢量,是分子和分母多项式的系数降幂排列。z表示零点的列矢量,p表示极点的列矢量, k表示增益。例:求以下传输函数的零极点和增益 b=2 3;

10、a=1 0.4 1; b,a=eqtflength(b,a);%使两个矢量具有同样的长度 z,p,k=tf2zp(b,a) 结果是:z = 0 -1.5000p = -0.2000 + 0.9798i -0.2000 - 0.9798ik = 2写成零极点形式: 2、系统零极点图的绘制函数zplane的调用格式:zplane(z,p)函数zplane(z,p)可以绘出列矢量z中的零点和列矢量p中的极点。上题中的例子,画出它的零极点图 b=2 3; a=1 0.4 1; b,a=eqtflength(b,a); z,p,k=tf2zp(b,a) zplane(z,p);3、有理传输函数的部分分式

11、展开residuez调用格式:r,p,k=residuez(b,a)将有理分式表示的传输函数展开成部分分式的形式,并且也可以将部分分式的形式转换回原来的有理分式形式。设有理分式的分子和分母多项式分别是:如果没有重根,并且mn,则有:返回的列矢量p包含有理分式的极点位置,列矢量r包含各一次分式分子系数,即对应极点的留数,行矢量k包含z的负幂的多项式部分的系数。如果length(b)小于length(a),矢量k是空的。例题:求以下传输函数的部分分式展开: b=0 -3; a=2 -5 2; r, p, k = residuez(b,a)r = -1 1p = 2.0000 0.5000k = 由

12、此得到的部分分式展开:例题: 求传输函数的部分分式展开 b=18; a=18 3 -4 -1; r,p,k=residuez(b,a)r = 0.3600 0.2400 0.4000p = 0.5000 -0.3333 -0.3333k = 由此得到原式的部分分式展开为:4、数字滤波器的单位脉冲响应impz调用格式:h,t=impz(b,a) 计算滤波器的脉冲响应h,取样点数n由impz自动选取,并记录在矢量t中(t=0:n-1)h,t=impz(b,a,n) 可以由用户指定取样点和取样时刻。当n为标量时,t=0:n-1,即在0n-1时刻计算冲激响应,0时刻表示滤波器的起点;当n为时间量时,则

13、表示t=n,即在这些指定的时刻计算脉冲响应例:已知滤波器画出滤波器的单位脉冲响应。(画出50个点) b=0.2 0.1 0.3 0.1 0.2 a= 1 -1.1 1.5 -0.7 0.3 impz(b,a,50)5 求解差分方程(1)filter(求解零状态响应)调用格式:y = filter(b,a,X) b和a分别是系统函数中分子系数和分母系数的降幂排列,X为输入该系统的激励函数,y得到的是在激励X作用下,输出的响应。此时求的是零状态响应。例:用MATLAB计算差分方程 当输入序列为 时的输出结果 。 解: N=41; b=0.8 -0.44 0.36 0.22; a=1 0.7 -0.

14、45 -0.6; x=1 zeros(1,N-1); k=0:1:N-1; y=filter(b,a,x); stem(k,y) xlabel(n);ylabel(幅度) (2)filtic调用格式:z = filtic(b,a,y,x):b和a分别是系统函数中分子系数和分母系数的降幂排列,y和x分别是系统和激励的初始值,即,。z = filtic(b,a,y):当激励的初始值为零时,使用该函数求出矢量z,再利用y=filter(b,a,x,z)求出全响应。其中x为输入激励信号。五 实验报告1 按照上述步骤完成每个例题,学习每个函数的使用方法,将每道题的实验结果保留下来,附在实验报告上。2 给

15、定系统的差分方程(1)用MATLAB将系统函数展开成零点极点乘积的形式。写出系统函数的零极点表示式。(2)画出系统的零极点图。(3)将系统函数展开成部分分式的形式。写出展开的结果。(4)求出系统的单位脉冲响应。()(5)若系统的输入激励是,求此时系统的输出。其中。(6)若系统的初始条件为,求系统全响应以上每个小题都要求将程序和运算结果附在题后面,并计算结果是否与MATLAB得到的结果一致。并写出(4)和(5)你自己手算的结果。实验四 用matlab计算频率响应一、实验目的:学会用matlab绘制滤波器或传输函数的频率响应二、实验器材:计算机三、实验内容:1、 模拟滤波器频率响应的绘制2、 数字

16、滤波器频率响应的绘制四、实验步骤:1、模拟滤波器频率响应的绘制freqs函数可以一次画出滤波器的幅频特性和相频特性调用格式:h,w=freqs(b,a) 自动设定200个频率点来计算频率响应h,w=freqs(b,a,n) 设定n个频率点来计算频率响应freqs(b,a)矢量b,a分别为分子和分母多项式的系数构成的矢量例 有一模拟滤波器,其传递函数如下,用freqs绘制出它的幅频特性和相频特性。y = logspace(a,b) generates a row vector y of 50 logarithmically spaced points between decades 10a an

17、d 10b. a=1 0.4 1; b=0.2 0.3 1; w=logspace(-1,1); freqs(b,a,w);结果如图所示。2、数字滤波器的频率响应函数freqz调用格式:h,w=freqz(b,a,n) 可得到数字滤波器的n个频率点的复频响应,这n个频率点均匀的分布在上半单位圆上,并记录在w中,相应的频率响应记录在h中,n值最好选2的幂次方,默认时为512h=freqz(b,a,w) 计算在矢量w中指定的频率点处的频率响应,指定的频率要在02之间例:求数字滤波器的幅频和相频特性曲线。 b=0.2 0.3 1; a=1 0.4 1; freqz(b,a,128)五 实验报告1有一

18、模拟滤波器,其传递函数如下,用freqs绘制出它的幅频特性和相频特性。2求数字滤波器的幅频和相频特性曲线。3设一阶系统的差分方程是,求其幅频特性和相频特性。实验五 用matlab进行信号变换一、实验目的:1、理解离散傅里叶变换和傅里叶变换的关系2、学会用matlab对信号进行离散傅里叶变换二、实验器材:计算机三、实验内容:1、求离散信号的傅里叶变换2、求离散信号的傅里叶反变换四、实验步骤:1、求离散信号的傅里叶变换离散傅里叶反变换: y=fft(x)y=fft(x,n) n点FFT例:,求4点,8点,16点的离散傅里叶变换。 x=1 1 1 1x = 1 1 1 1 y=fft(x,4)y =

19、 4 0 0 0 y=fft(x,8)y = Columns 1 through 4 4.0000 1.0000 - 2.4142i 0 1.0000 - 0.4142i Columns 5 through 8 0 1.0000 + 0.4142i 0 1.0000 + 2.4142i y=fft(x,16)y = Columns 1 through 4 4.0000 3.0137 - 2.0137i 1.0000 - 2.4142i -0.2483 - 1.2483i Columns 5 through 8 0 0.8341 + 0.1659i 1.0000 - 0.4142i 0.4005

20、 - 0.5995i Columns 9 through 12 0 0.4005 + 0.5995i 1.0000 + 0.4142i 0.8341 - 0.1659i Columns 13 through 16 0 -0.2483 + 1.2483i 1.0000 + 2.4142i 3.0137 + 2.0137i对比N8和16的幅度谱function y=amplitude(x,n)% amplitude 计算序列x(n)的幅度谱m=0:1:n-1;y1=zeros(1,n);s=abs(fft(x,n)subplot(2,1,n/8),stem(m,s),hold on,plot(m,

21、y1);return x=1 1 1 1; amplitude(x,8);s = Columns 1 through 7 4.0000 2.6131 0 1.0824 0 1.0824 0 Column 8 2.6131 amplitude(x,16);s = Columns 1 through 7 4.0000 3.6245 2.6131 1.2728 0 0.8504 1.0824 Columns 8 through 14 0.7210 0 0.7210 1.0824 0.8504 0 1.2728 Columns 15 through 16 2.6131 3.62452、求离散信号的傅里

22、叶反变换y=ifft(x)y=ifft(x,n) 求n 点的x傅立叶反变换五 实验报告1 已知序列,求,它的数值解是什么?并绘图。(附上MATLAB源程序)2 已知线性时不变系统的单位抽样响应,系统的输入,求与的6点、8点、10点的圆周卷积,并画图。(附上MATLAB源程序)说明哪个圆周卷积是系统的输出。实验六 用MATLAB设计IIR数字滤波器一、实验目的:学会用MATLAB设计IIR数字滤波器二、实验器材:计算机三、实验内容:1 学会用冲激响应不变法设计IIR数字滤波器2 学会用双线性法设计IIR数字滤波器四、实验步骤1 冲激响应不变法实现模拟到数字滤波器的变换函数impinvar调用格式

23、:bz,az=impinvar(b,a,Fs)bz,az=impinvar(b,a)函数说明: bz,az=impinvar(b,a,Fs)可将矢量(b,a)表示的模拟滤波器变换成数字滤波器(bz,az),两者的冲激响应不变,即模拟滤波器的冲激响应按Fs取样后等同于数字滤波器的单位脉冲响应。其中,b和a为行矢量,分别包含模拟域分子和分母多项式按s 的降幂排列的系数,而bz和az也为列矢量,分别包含数字域分子和分母多项式按z的降幂排列的系数。 bz,az=impinvar(b,a) 采用默认值为1Hz的Fs。例:设模拟滤波器的系统函数为,试利用冲激响应不变法设计IIR数字滤波器。 b=1; a=

24、1 sqrt(2) 1; bz,az=impinvar(b,a);bz = 0 0.4530az = 1.0000 -0.7497 0.2431 freqs(b,a);title(模拟滤波器的频率响应); figure; %新打开一个绘图窗口 freqz(bz,az);title(数字滤波器的频率响应);最后得到的数字滤波器的系统函数是(T1时)2 双线性变换实现模拟到数字滤波器的变换函数bilinear调用格式:zd,pd,kd= bilinear(z,p,k,Fs)zd,pd,kd= bilinear(z,p,k,Fs,Fp)numd,dend= bilinear(num,den,Fs)n

25、umd,dend= bilinear(num,den,Fs,Fp)函数说明:zd,pd,kd= bilinear(z,p,k,Fs)为零极点增益表示的bilinear函数,其中z,p,k为s域传递函数的零点、极点和增益,Fs为取样频率;zd、pd、kd为双线性变换后z域传递函数的零点、极点和增益。numd,dend= bilinear(num,den,Fs)为用传输函数表示的bilinear函数,这里的num和den为行矢量,分别包含模拟域分子和分母多项式按s的降幂排列的系数(NUM(s)/DEN(s)),numd和dend也为列矢量,分别包含数字域分子和分母多项式按z的降幂排列的系数(NUM

26、d(s)/DENd(s)).例:用双线性变换法实现上例的模拟滤波器的系统函数,并比较用冲激响应不变法实现的数字滤波器和用双线性实现的区别。 b=1; a=1 sqrt(2) 1; bz,az=bilinear(b,a,1)bz = 0.0836 0.1671 0.0836az = 1.0000 -1.0978 0.5699freqz(bz,az);3 巴特沃思滤波器的相关函数(1)选择Butterworth滤波器阶数的函数buttord调用格式:n,Wn=buttord(Wp,Ws,Rp,Rs)n,Wn=buttord(Wp,Ws,Rp,Rs,s)函数说明:Buttord可在给定滤波器性能情况

27、下,选择模拟或数字Butterworth滤波器的最小阶数,其中,Wp和Ws分别是通带和阻带的截止频率,取值范围为0Wp(或Ws)Ws时,这时为高通滤波器;当Wp和Ws为二元矢量时,若WpWs,则为带通或带阻滤波器,这时Wn也为二元矢量。模拟域n,Wn=buttord(Wp,Ws,Rp,Rs,s)可得满足指定性能的模拟Butterworth滤波器的阶数n和归一化模拟截止频率Wn,从而可利用buttord函数设计模拟滤波器。(2)Butterworth模拟和数字滤波器设计函数butter调用格式:b,a=butter(n,Wn)b,a=butter(n,Wn,frype)b,a=butter(n,Wn,s)说明:a)数字域b,a=butter(n,Wn):可以设计出截止频率为Wn,n阶的Butterworth低通滤波器。得到的滤波器的系统函数的系数b和a,分别表示系统函数分子和分母按z降幂排列的系数。b,a=butter(n,Wn,frype)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1