数字信号处理实验指导书
数字信号处理实验指导书

《数字信号处理》实验指导书信息与机电工程学院实验中心2017-11-20实验一 常见离散信号的MATLAB 产生和图形显示一、实验目的:加深对常用离散信号的理解; 二、实验原理:1、基础知识:R1.1 单位样本序列10[]0n n n δ=⎧=⎨≠⎩如果()n δ在时间轴上延迟了k 个单位,得到()n k δ-,即:1[]0n k n k n kδ=⎧-=⎨≠⎩R1.2 单位阶跃序列10[]0n u n n ≥⎧=⎨<⎩ R1.3 指数序列[]n x n A α=,其中()00j e σωα+=,j A A e φ=,则前式化为()000000[]cos()sin()n j n n n x n A eA e n j A e n σωφσσωφωφ++==+++R1.4 正弦序列0[]cos()x n A n ωφ=+,其中A ,0ω,φ是实数,分别称为正弦序列的振幅、角频率和初始相位。
00/2f ωπ=称为频率。
2、用到的MATLAB 命令 运算符和特殊符号 : . + -* / .^ ; %基本矩阵和矩阵控制 i ones pirand randnzeros基本函数 cos sin exp imag real二维图形 axis gird legendplotstem title xlabel ylabelstairs 通用图形函数 clf subplot三、实验内容及要求:编制程序产生信号,并绘出其图形。
例1.1单位样本和单位阶跃序列% 程序 P1.1% 一个单位样本序列的产生clf;% 产生一个从-10到20的向量n = -10:20;% 产生单位样本序列u = [zeros(1,10) 1 zeros(1,20)];% 绘制单位样本序列stem(n,u);xlabel('时间序号 n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2]);习题:Q1.1 运行程序P1.1,以产生单位样本序列u[n]并记录它。
《数字信号处理》实验指导书(完整)

《数字信号处理》实验指导书通信教研室安阳工学院二零零九年三月第1章 系统响应及系统稳定性1.1 实验目的● 学会运用MATLAB 求解离散时间系统的零状态响应;● 学会运用MATLAB 求解离散时间系统的单位取样响应;● 学会运用MATLAB 求解离散时间系统的卷积和。
1.2 实验原理及实例分析1.2.1 离散时间系统的响应离散时间LTI 系统可用线性常系数差分方程来描述,即∑∑==-=-Mj jN i i j n x b i n y a 00)()( (1-1) 其中,i a (0=i ,1,…,N )和j b (0=j ,1,…,M )为实常数。
MATLAB 中函数filter 可对式(13-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。
函数filter 的语句格式为y=filter(b,a,x)其中,x 为输入的离散序列;y 为输出的离散序列;y 的长度与x 的长度一样;b 与a 分别为差分方程右端与左端的系数向量。
【实例1-1】 已知某LTI 系统的差分方程为)1(2)()2(2)1(4)(3-+=-+--n x n x n y n y n y试用MATLAB 命令绘出当激励信号为)()2/1()(n u n x n=时,该系统的零状态响应。
解:MATLAB 源程序为>>a=[3 -4 2];>>b=[1 2];>>n=0:30;>>x=(1/2).^n;>>y=filter(b,a,x);>>stem(n,y,'fill'),grid on>>xlabel('n'),title('系统响应y(n)')程序运行结果如图1-1所示。
1.2.2 离散时间系统的单位取样响应系统的单位取样响应定义为系统在)(n 激励下系统的零状态响应,用)(n h 表示。
数字信号处理实验指导书

注意此书用的时候N要先付值数字信号处理实验指导书目录前言 (1)第一章MATLAB基础知识 (1)第二章MATLAB基本数值运算 (4)第三章MATLAB的图形处理功能 (8)第四章MATLAB的程序设计 (11)第五章常用数字信号处理函数 (16)第六章MATLAB在数字信号处理中的应用 (23)实验一常见离散信号的MATLAB产生和图形显示 (33)实验二离散系统的频率响应分析和零、极点分布 (37)实验三序列线性卷积、圆周卷积的计算及其关系的研究 (39)实验四利用DFT分析信号的频谱 (41)实验五信号时间尺度变换的研究 (43)实验六快速傅里叶变换及其应用 (47)实验七IIR滤波器的实现与应用 (56)实验八FIR滤波器的实现与应用 (61)第一章MATLAB基础知识§1-1 MA TLAB软件简介MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境,在这个环境中,问题与求解都能方便地以数学的语言(主要是矩阵形式)或图形方式表示出来。
与大家常用的Fortran 和C等高级语言相比,MA TLAB的语法规则更简单,更贴近人的思维方式,被称为“草稿纸式的语言”。
§1-2 MA TLAB应用入门1.MATLAB的安装与卸载MATLAB软件在用户接口时具有较强的亲和力,其安装过程比较典型,直接运行光盘中的安装向导支撑程序SETUP.exe,按其提示一步步选择即可。
MATLAB自身带有卸载程序,在其安装目录下有uninstall子目录,运行该目录下uninstall.exe的即可;也可以通过Windows系统的安装卸载程序进行卸载。
2.MATLAB的启动与退出MATLAB安装完成后,会自动在Windows桌面上生成一个MA TLAB图标,它是指向安装目录下\bin\win32\matlab.exe的链接,双击这个图标即可来到MATLAB集成环境的基本窗口;也可以在开始菜单的程序选项中选择MATLAB 快捷方式;还可以在MA TLAB的安装路径的bin子目录中双击可执行文件matlab.exe。
《数字信号处理》实验指导书

R6(n)
0.5
0 0.2
0
5
10
15
20
25 n
30
35
40
45
ቤተ መጻሕፍቲ ባይዱ
50
Magnitude
0.1
0 4
-3
-2
-1
0 Frequency(rad)
1
2
3
Phase
2 0 -2 -4 -3 -2 -1 0 Frequency(rad) 1 2 3
k=0 时的直流分量及其合成的波形:
0.5
the Kth harmonic
the Kth harmonic
0
the Kth harmonic
0 5 10 15 20 25 n 30 35 40 45 50
0
-0.5
-0.5
0
5
10
15
20
sum of the first K+1 harmonics
1
sum of the first K+1 harmonics
25 n
30
35
0
-0.5
-0.5
0
5
10
15
20
sum of the first K+1 harmonics
1
sum of the first K+1 harmonics
25 n
30
35
40
45
50
1
0.5
0.5
0 0 5 10 15 20 25 n 30 35 40 45 50
0 0 5 10 15 20 25 n 30 35 40 45 50
数字信号处理实验指导书

j j
括幅频特性和相频特性)曲线。并将其和第 4 步中得到的结果进行比较。
七. 实验报告内容与要求
1. 简述实验目的、实验原理及实验方法和步骤。 2. 对各实验所得结果进行分析和解释。 3. 打印程序清单和要求的各信号波形。 4. 总结实验中的主要结论。 5. 简要回答思考题。
八. 思考
1. 信号的频域特性即信号的傅立叶变换利用 MATLAB 程序如何实现? 2. 信号的频域特性即频率响应函数 H (e ) 利用 MATLAB 程序如何求取?
4
X (e j ) FT [ x(n)]
n
x ( n) e
j n
(2.1)
序列和信号的傅立叶变换是ω的连续函数, 而计算机只能计算出有限个离散频率点的 函数值。因此在取得频谱函数后,应该在 0~2π之间取许多点,计算这些点的频谱函数 的值,并取它们的包络,该包络才是需要的频率特性。当然,点数取得多一些,该包络才
y(n) 0.05 x(n) 0.05 x(n 1) 0.9 y(n 1) 的响应 y2 (n) ,并绘出 y2 (n) 的时域特性曲
线。
( n) ,并绘出 y1 ( n) 的 5. 利用卷积函数 conv () 求信号 x1 ( n) 通过系统 h1 (n) 的响应 y1
j 能接近真正得频率特性。通常对 X (e ) 在[0,2π]上取模 X (e ) ,绘出幅频特性曲
j
线进行观察分析。系统的频域特性,通常是指求系统频率响应函数 H (e ) ,即系统单位 脉冲响应 h(n)的傅里叶变换。 对于线性时不变时域离散系统,当系统的输入序列为 x(n) ,系统的单位脉冲响应为 为 h(n) ,则线性时不变系统的输出序列为
《数字信号处理实验》指导书

《数字信号处理实验》实验1 常用信号产生实验目的:学习用MATLAB编程产生各种常见信号。
实验内容:1、矩阵操作:输入矩阵:x=[1 2 3 4;5 4 3 2;3 4 5 6;7 6 5 4]引用 x的第二、三行;引用 x的第三、四列;求矩阵的转置;求矩阵的逆;2、单位脉冲序列:产生δ(n)函数;产生δ(n-3)函数;3、产生阶跃序列:产生U(n)序列;产生U(n-n0)序列;4、产生指数序列:x(n)=0.5n⎪⎭⎫⎝⎛4 35、产生正弦序列:x=2sin(2π*50/12+π/6)6、产生取样函数:7、产生白噪声:产生[0,1]上均匀分布的随机信号:产生均值为0,方差为1的高斯随机信号:8、生成一个幅度按指数衰减的正弦信号:x(t)=Asin(w0t+phi).*exp(-a*t)9、产生三角波:实验要求:打印出程序、图形及运行结果,并分析实验结果。
实验2 利用MATLAB 进行信号分析实验目的:学习用MATLAB 编程进行信号分析实验内容:1数字滤波器的频率响应:数字滤波器的系统函数为:H(z)=21214.013.02.0----++++z z z z , 求其幅频特性和相频特性:2、离散系统零极点图:b =[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3];画出其零极点图3、数字滤波器的冲激响应:b=[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3];求滤波器的冲激响应。
4、 计算离散卷积:x=[1 1 1 1 0 0];y=[2 2 3 4];求x(n)*y(n)。
5、 系统函数转换:(1)将H(z)=)5)(2)(3.0()1)(5.0)(1.0(------z z z z z z 转换为直接型结构。
(2)将H (z )=3213210.31.123.7105.065.06.11-------+--+-zz z z z z 转换为级联型结构。
《数 字 信 号 处 理》 实 验 指 导 书PPT文档共55页

3、法律是最保险的头盔。——爱·科 克 4、一个国家如果纲纪不正,其国风一 定颓败 。—— 塞内加 5、法律不能使人人平等,但是在法律 面前人 人是平 等的。 ——波 洛克
谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
《数字信号处理》实验指导书(全)

数字信号处理实验指导书电子信息工程学院2012年6月目录实验一离散信号产生和基本运算 (3)实验二基于MATLAB的离散系统时域分析 (7)实验三基于ICETEK-F2812-A 教学系统软件的离散系统时域分析 (9)实验四基于MATLAB 的FFT 算法的应用 (16)实验五基于ICETEK-F2812-A 的FFT 算法分析 (18)实验六基于ICETEK-F2812-A 的数字滤波器设计 (20)实验七基于ICETEK-F2812-A的交通灯综合控制 (24)实验八基于BWDSP100的步进电机控制 (26)实验一离散信号产生和基本运算一、实验目的(1)掌握MATLAB最基本的矩阵运算语句。
(2)掌握对常用离散信号的理解与运算实现。
二、实验原理1.向量的生成a.利用冒号“:”运算生成向量,其语句格式有两种:A=m:nB=m:p:n第一种格式用于生成不长为1的均匀等分向量,m和n分别代表向量的起始值和终止值,n>m 。
第二种格式用于生成步长为p的均匀等分的向量。
b.利用函数linspace()生成向量,linspace()的调用格式为:A=linspace(m,n)B=linspace(m,n,s)第一种格式生成从起始值m开始到终止值n之间的线性等分的100元素的行向量。
第二种格式生成从起始值m开始到终止值n之间的s个线性等分点的行向量。
2.矩阵的算术运算a.加法和减法对于同维矩阵指令的A+BA-B对于矩阵和标量(一个数)的加减运算,指令为:A+3A-9b.乘法和除法运算A*B 是数学中的矩阵乘法,遵循矩阵乘法规则A.*B 是同维矩阵对应位置元素做乘法B=inv(A)是求矩阵的逆A/B 是数学中的矩阵除法,遵循矩阵除法规则A./B 是同维矩阵对应位置元素相除另'A表示矩阵的转置运算3.数组函数下面列举一些基本函数,他们的用法和格式都相同。
sin(A),cos(A),exp(A),log(A)(相当于ln)sqrt(A)开平方 abs(A)求模 real(A)求实部 imag(A)求虚部 式中A 可以是标量也可以是矩阵 例: 利用等差向量产生一个正弦值向量 t=0:0.1:10 A=sin(t) plot(A)这时候即可看到一个绘有正弦曲线的窗口弹出 另:每条语句后面加“;”表示不要显示当前语句的执行结果 不加“;”表示要显示当前语句的执行结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理实验指导书武汉理工大学教材中心2010年7月实验一 时域离散信号的产生一、实验目的1、了解常用时域离散信号及其特点;2、掌握MATLAB 程序的编程方法;3、熟悉MATLAB 函数的调用方法。
二、实验原理在时间轴上的离散点取值的信号,称为离散时间信号。
离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。
它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n 取整数代表时间的离散时刻。
在MA TLAB 中用向量来表示一个有限长度的序列。
常用离散信号: 1、单位抽样序列10()(00n n n δδ =⎧⎧= ⎨⎨ ≠ ≠⎩⎩0001n=n 或n-n )=0n n2、单位阶跃序列0110()(-)000n n u n u n n n n ≥ ≥⎧⎧= = ⎨⎨ < <⎩⎩00n 或n3、实指数序列()n x n a =4、复指数序列()()j t x n e αω+=5、正(余)弦序列0()sin()m x n U n ωθ=+6、随机序列在利用计算机进行系统的研究时,经常需要产生随机信号,MATLAB 提供一个工具函数rand 来产生随机信号。
7、周期序列()()x n x n N =+三、实验用函数1、stem功能:绘制二维图形。
调用格式:stem(n,x);n为横轴,x为纵轴的线性图形。
2、length功能:计算某一变量的长度或采样点数。
调用格式:N=length(t);计算时间向量t的个数并赋给变量N。
3、axis功能:限定图形坐标的范围。
调用格式:axis([x1,x2,y1,y2]);横坐标从x1—x2,纵坐标从y1—y2。
4、zeros功能:产生一个全0序列。
调用格式:x=zeros(1,n);产生n个0的序列。
5、ones功能:产生一个全1序列。
调用格式:y=ones(1,n);产生n个1的序列。
四、参考实例例1.1 用Matlab产生单位抽样序列。
%先建立函数impseq(n1,n2,n0)function [x,n]=impseq(n1,n2,n0)n=[n1:n2];x=[(n-n0)==0];%编写主程序调用该函数[x,n]=impseq(-2,8,2);stem(n,x)程序运行结果如图1-1所示:图1-1 单位抽样序列例1.2实数指数序列(运算符“.^”)Matlab程序如下:n=[0:10];x=0.9.^n;stem(n,x)程序运行结果如图1-2所示图1-2 实数指数序列例1.3复数指数序列((0.10.3)()(1010)j nx n en -+= -≤≤)Matlab 程序如下:n=[-10:10]; alpha=-0.1+0.3*j; x=exp(alpha*n); real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x); subplot(2,2,1); stem(n,real_x) subplot(2,2,2); stem(n,image_x) subplot(2,2,3); stem(n,mag_x) subplot(2,2,4); stem(n,phase_x) 程序运行结果如图1-3所示图1-3 复数指数序列例1.4正、余弦序列(0()sin()m x n U n ωθ=+)Matlab 程序如下: n=[0:10];x=3*cos(0.1*pi*n+pi/3); stem(n,x)程序运行结果如图1-4所示图1-4 正、余弦序列例1.5随机序列rand(1,N)产生其元素在[0,1]之间均匀分布长度为N的随机序列randn(1,N)产生均值为0,方差为1,长度为N的高斯随机序列例1.6周期序列如何生成周期序列1、将一个周期复制p次;2、借助矩阵运算、matlab下标能力。
先生成一个包含p列x(n)值的矩阵,然后用结构(:)来把p列串接成一个长周期序列。
因为这个结构只能用于列向,最后还需要做矩阵转置获得所需序列。
Matlab程序如下:x=[1,2,3]; %一个x(n)xn=x'*ones(1,3) %生成p列x(n)xn=xn(:)' %将p列串接成长列序列并转置stem(xn)程序运行的结果如图1-5所示图1-5 周期序列五、实验任务1、调试部分例题程序,掌握Matlab基本操作方法。
2、编写程序,完成下列函数波形:1)利用zeros函数生成单位抽样序列;2)利用zeros函数和ones函数生成单位阶跃序列;六、实验报告1、简述实验目的、原理。
2、写出上机调试通过的实验任务的程序并描述其图形曲线。
实验二离散序列的基本运算一、实验目的1、加强MATLAB运用。
2、了解离散时间序列在时域中的基本运算。
3、熟悉相关函数的使用方法,掌握离散序列运算程序的编写方法。
二、实验原理离散序列的时域运算包括信号的相加、相乘,信号的时域变换包括信号的移位、反折、倒相及尺度变换等。
在MA TLAB中,序列的相加和相乘运算是两个向量之间的运算,因此参加运算的两个序列必须具有相同的长度,否则不能直接进行运算,需要进行相应的处理后再进行运算。
三、实验用函数1、find功能:寻找非零元素的索引号。
调用格式:find((n>=min(n1))&(n<=max(n1))):在符号关系运算条件的范围内寻找非零元素的索引号。
2、fliplr功能:对矩阵行元素进行左右翻转。
调用格式:x1=fliplr(x):将x的行元素进行左右翻转,赋给变量x1。
四、实例1、信号的时域变换1)序列移位将一个离散序列进行移位,形成新的序列:x1(n)=x(n-m)。
当m>0时,原序列向右移m 位,当m<0时,原序列向左移。
%建立移位函数(sigshift(x,m,n0))function [y,n]=sigshift(x,m,n0)n=m+n0;y=x;2)序列反折在这个运算中,x(n)以n=0为基准点,以纵轴为对称轴反折得到一个新的序列。
y(n)=|x(-n)|在MA TLAB中提供了fliplr函数实现序列反折。
%建立反折函数(sigfold(x,n))function [y,n]=sigfold(x,n)y=fliplr(x);n=-fliplr(n);3)序列倒相是求一个与原序列的向量值相反,对应的时间向量不变的新序列。
4)序列的尺度变换通过对时间轴的放大或压缩形成新的序列。
2、序列的算术运算1)序列相加序列相加是指两个序列中相同序号的序列值逐项对应相加,形成新的序列。
参加运算的两个序列的维数不同时%建立通用函数function [y,n]=sigadd(x1,n1,x2,n2)n=min(min(n1),min(n2)) : max(max(n1),max(n2));y1=zeros(1,length(n));y2=y1;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;y=y1+y2;1)序列相乘序列相加是指两个序列中相同序号的序列值逐项对应相乘,形成新的序列。
参加运算的两个序列的维数不同时处理方法与序列相加相同。
五、实验任务1、理解序列运算的性质,了解函数语句的意义。
2、利用例题函数完成下列序列运算1)已知x1(n)=u(n+1) (-3<n<5);x2(n)=u(n-3) (-4<n<7)求:x(n)=x1(n)+x2(n)2)已知x1(n)=3e-0.25n (-2<n<8)x2(n)=u(n+1) (-3<n<6)求:x(n)=x1(n)*x2(n)六、实验报告1、简述实验目的和原理。
2、列写上机调试通过的程序,并描绘其波形曲线。
实验三 离散卷积的原理及应用一、实验目的1、通过实验进一步理解卷积定理,了解卷积过程;2、掌握应用线性卷积求解离散时间系统响应的基本方法。
二、实验原理对于线性移不变离散系统,任意的输入信号x(n)可以用()n δ及其位移的线性组合来表示,即()()()k x n x k n k δ∞=-∞=-∑当输入为()n δ时,系统的输出y(n)=h(n),由系统的线性移不变性质可以得到系统对x(n)的响应y(n)为()()()k y n x k h n k ∞=-∞=-∑称为离散系统的线性卷积,简写为y(n)=x(n)*h(n)也就是说,如果已知系统的冲激响应,将输入信号与系统的冲激响应进行卷积运算,即可求得系统的响应。
三、实验用函数1、卷积函数conv功能:进行两个序列的卷积运算。
调用格式:y=conv(x,h);用于求解两有限长序列的卷积。
2、sum功能:求各元素之和。
调用格式:y=sum(x);求序列x 中各元素之和。
3、hold功能:控制当前图形窗口是否刷新的双向切换开关。
调用格式:hold on :使当前图形窗口中的图形保持且不被刷新,准备接受绘制新的图形。
hold off :使当前图形窗口中的图形不具备不被刷新的性质。
4、impz功能:求解数字系统的冲激响应。
调用格式:[h,t]=impz(b,a);求解数字系统的冲激响应h ,取样点数为缺省值。
[h,t]=impz(b,a,n);求解数字系统的冲激响应h ,取样点数由n 确定。
impz(b,a);在当前窗口用stem(t,h)函数绘制图形。
5、dstep功能:求解数字系统的阶跃响应。
调用格式:[h,t]=dstep(b,a);求解数字系统的冲激响应h ,取样点数为缺省值。
[h,t]=dstep(b,a,n);求解数字系统的冲激响应h ,取样点数由n 确定。
dstep(b,a);在当前窗口用stairs(t,h)函数绘制图形。
四、参考实例在利用Matlab 提供的卷积函数进行卷积运算时,主要是确定卷积结果的时间区间。
conv 函数默认两信号的时间序列从n=0开始,卷积结果对应的时间序列也从n=0开始。
如果信号不是从0开始,则编程时必须用两个数组确定一个信号,其中,一个数组是信号波形的幅度样值,另一个数组是其对应的时间向量。
%建立一个适用于信号从任意时间开始的通用函数 function [y,ny]=sconv(x,h,nx,nh,p) y=conv(x,h);n1=nx(1)+nh(1); %计算y 的非零样值的起点位置n2=nx(length(x))+nh(length(h)); %计算y 的非零样值的宽度 ny=n1:p:n2; %确定y 的非零样值的时间向量五、实验任务已知一个IIR 数字低通滤波器的系统函数公式为1231230.13210.39630.39630.1321()10.343190.604390.20407z z z H z z z z ------+++=-+-输入一个矩形信号序列 x=square(n/5) (-2<n<10π),求该系统的响应。