《数字信号处理》 一实验指导 数字信号处理课程组 信息学院 班级: 姓名: 学号: 实验序号 2 3 4 5 成绩 综合评定: 成绩: 指导教师签字:
《数字信号处理》 —实验指导 数字信号处理课程组 信息学院 班级: 姓名: 学号: 实验序号 1 2 3 4 5 成绩 综合评定: 成绩: 指导教师签字:
实验一典型离散信号及其MATLAB实现 一、实验目的 I.掌握MATLAB语言的基本操作,学习基本的编程功能。 2.掌握MATLAB产生常用离散时间信号的编程方法。 3.掌握MATLAB计算卷积的方法。 二、实验原理 (一)MATLAB常用离散时间信号 [1n=0 1. 单位抽样序列:6(n)= 0n≠0 x=zeros(1,N); 在MATLAB中可以利用zeros(O函数实现。 x(I)=1 1 n=k 如果6(n)在时间轴上延迟了k个单位,得到8(n-k)即:6n-k)= 0n≠0 1 n≥0 2.单位阶跃序列:(n 0n<0 在MATLAB中可以利用ones()函数实现。x=Ones(L,N); 3.正弦序列:x(n)=Asin(2gin/Fs+p) n=0:N-1 在MATLAB中: x=A*sin(2*pi*f n/Fs+fai) 4.复正弦序列:x(n)=ejom n=0:N-1 在MATLAB中: x exp(j*w*n) 5.指数序列:x(n)=a” n=0:N-1 在MATLAB中: x=a.n 6.y=f1iplr(x)一一信号的翻转 y=square(x)一一产生方波信号
2 实验一 典型离散信号及其 MATLAB 实现 一、实验目的 1. 掌握 MATLAB 语言的基本操作,学习基本的编程功能。 2. 掌握 MATLAB 产生常用离散时间信号的编程方法。 3. 掌握 MATLAB 计算卷积的方法。 二、实验原理 (一)MATLAB 常用离散时间信号 1. 单位抽样序列: = 0 1 (n) 0 0 = n n 在 MATLAB 中可以利用 zeros()函数实现。 (1) 1; (1, ); = = x x zeros N 如果 (n) 在时间轴上延迟了 k 个单位,得到 (n − k) 即: − = 0 1 (n k) 0 = n n k 2.单位阶跃序列: 0 1 u(n) 0 0 n n 在 MATLAB 中可以利用 ones()函数实现。 x = ones(1, N); 3.正弦序列: x(n) = Asin( 2fn/ Fs +) 在 MATLAB 中: *sin( 2* * * / ) 0 : 1 x A pi f n Fs fai n N = + = − 4.复正弦序列: j n x n e ( ) = 在 MATLAB 中: exp( * * ) 0 : 1 x j w n n N = = − 5.指数序列: n x(n) = a 在 MATLAB 中: x a n n N .^ 0 : 1 = = − 6.y=fliplr(x)——信号的翻转; y=square(x)——产生方波信号
y=sawtooth(x)一一产生锯齿波信号: y=sinc(x)一一产生sinc函数信号。 (二)离散时间信号的卷积 由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间 信号处理领域被广泛应用。离散时间信号的卷积定义为 m)=xm)*m)=∑x(m)hn-m) =-0 可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。 MATLAB求离散时间信号卷积和的命令为conv,其语句格式为 y=conv(x,h) 其中,X与h表示离散时间信号值的向量:y为卷积结果。用MATLAB进行卷积和运算时, 无法实现无限的累加,只能计算时限信号的卷积。 三、实验内容 (一)离散信号的产生 离散信号的图形显示使用stem指令。 1.编写MATLAB程序,产生下列典型脉冲序列。 (1)单位脉冲序列:起点n0,终点nf,在ns处有一单位脉冲。 (2)单位阶跃序列:起点n0,终点nf,在ns前为0,在ns处及以后均为 1(n0<=ns<=nf)。 (3)实指数序列:x3=(0.75)” (4)复指数序列:x4=e02+j0,7n 其MATLAB程序如下: n0=0;nf=10;ns=3: nl=n0:nf;x1=[(nl-ns)==0]; %单位脉冲序列 n2=n0:nf;x2=[(n2-ns)>=0]: %单位阶跃序列 n3=n0:nf;x3=(0.75).^n3: %实指数序列 n4=n0:nf:x4=exp((-0.2+0.7j)*n4); %复指数序列 subplot(2,2,1),stem(nl,x1); subplot(2,2,2),stem(n2,x2);
3 y=sawtooth(x)——产生锯齿波信号; y=sinc(x)——产生 sinc 函数信号。 (二)离散时间信号的卷积 由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间 信号处理领域被广泛应用。离散时间信号的卷积定义为 =− = = − m y(n) x(n) * h(n) x(m)h(n m) 可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。 MATLAB 求离散时间信号卷积和的命令为 conv,其语句格式为 y=conv(x,h) 其中,x 与 h 表示离散时间信号值的向量;y 为卷积结果。用 MATLAB 进行卷积和运算时, 无法实现无限的累加,只能计算时限信号的卷积。 三、实验内容 (一) 离散信号的产生 离散信号的图形显示使用 stem 指令。 1. 编写 MATLAB 程序,产生下列典型脉冲序列。 (1)单位脉冲序列:起点 n0,终点 nf,在 ns 处有一单位脉冲。 (2)单位阶跃序列:起点 n0,终点 nf,在 ns 前为 0,在 ns 处及以后均为 1(n0<=ns<=nf)。 (3)实指数序列: n x (0.75) 3 = (4)复指数序列: j n x e ( 0.2 0.7) 4 − + = 其 MATLAB 程序如下: n0=0;nf=10;ns=3; n1=n0:nf;x1=[(n1-ns)==0]; %单位脉冲序列 n2=n0:nf;x2=[(n2-ns)>=0]; %单位阶跃序列 n3=n0:nf;x3=(0.75).^n3; %实指数序列 n4=n0:nf;x4=exp((-0.2+0.7j)*n4); %复指数序列 subplot(2,2,1),stem(n1,x1); subplot(2,2,2),stem(n2,x2);
subplot(2,2,3),stem(n3,x3); figure subplot(2,2,1),stem(n4,real(x4)); subplot(2,2,2),stem(n4,imag(x4)); subplot(2,2,3),stem(n4,abs(x4)); subplot(2,2,4),stem(n4,angle(x4)); (二)离散时间信号的卷积 用MATLAB编写卷积运算函数。 function [y,ny]=conv_improve(x,nx,h,nh) %[x,nx]为第一个信号 %[h,nh]为第二个信号 %conv(x,h)可以实现两个有限长度序列的卷积 nyl=nx(1)+nh(1); ny2=nx(length(x))+nh(length(h)): ny=[ny1:ny2] y=conv (x,h) 在命令窗口调用卷积函数。x=[340-2235]:nx=[-3:3]:h=[145601];nh=[N:N+5]; N是你的学号最后两位,带入后求结果。 结果为: 四、实验分析 观察实验结果,掌握、分析典型的离散时间信号,分析卷积运算。 五、实验总结 总结实验认识、过程、效果、问题、收获、体会、意见和建议
4 subplot(2,2,3),stem(n3,x3); figure subplot(2,2,1),stem(n4,real(x4)); subplot(2,2,2),stem(n4,imag(x4)); subplot(2,2,3),stem(n4,abs(x4)); subplot(2,2,4),stem(n4,angle(x4)); (二)离散时间信号的卷积 用 MATLAB 编写卷积运算函数。 function [y,ny]=conv_improve(x,nx,h,nh) %[x,nx]为第一个信号 %[h,nh]为第二个信号 %conv(x,h)可以实现两个有限长度序列的卷积 ny1=nx(1)+nh(1); ny2=nx(length(x))+nh(length(h)); ny=[ny1:ny2]; y=conv(x,h); 在命令窗口调用卷积函数。x=[3 4 0 -2 2 3 5]; nx=[-3:3]; h=[1 4 5 6 0 1]; nh=[N:N+5]; N 是你的学号最后两位,带入后求结果。 结果为: 四、实验分析 观察实验结果,掌握、分析典型的离散时间信号,分析卷积运算。 五、实验总结 总结实验认识、过程、效果、问题、收获、体会、意见和建议
实验二离散时间信号和离散时间系统 一、实验目的 1.掌握计算线性时不变系统的冲激响应的方法。 2.理解时域采样的概念及方法。 3.掌握离散时间信号的z变换和z逆变换分析 4.了解离散时间傅里叶变换(DTFT) 二、实验原理 (一)信号采样 采样就是利用周期性抽样脉冲序列P(t),从连续信号X(t)中抽取一系列的离散值,得 到抽样信号(或称抽样数据信号)即离散时间信号。 (二)线性时不变离散时间系统 线性系统:满足线性叠加原理的系统。若y,(n)和yz(n)分别是输入序列x(n)和xz(n) 的响应,则输入x(n)=a(n)+bx2(n)的输出响应为y(n)=ay1(n)+by2(n)。 时不变系统:即系统参数不随时间变化的系统,亦即系统对于输入信号的响应与信号加 于系统的时间无关。即满足:若y(n)是x(n)的响应,则y(n-m)是输入x(n-m)的响应,其中 m是任意整数。 数字滤波器对单位样本序列6n)的响应称为冲激响应,用h()表示。线性时不变离散 系统对输入信号x)的响应y)可用h()来表示:ym)=∑h(k)x(n-k)。 (三)z变换和逆z变换 序列x(n)的z变换定义为: x()=x() 其中,z是复变量。相应地,单边z变换定义为: X)=2” 刀=0 MATLAB提供了计算离散时间信号单边z变换的函数ztrans和z反变换函数iztrans: Z=ztrans((x),x=iztrans(z)。上式中的x和Z分别为时域表达式和z域表达式的符号表示,可
5 实验二 离散时间信号和离散时间系统 一、实验目的 1.掌握计算线性时不变系统的冲激响应的方法。 2.理解时域采样的概念及方法。 3.掌握离散时间信号的 z 变换和 z 逆变换分析 4.了解离散时间傅里叶变换(DTFT) 二、实验原理 (一)信号采样 采样就是利用周期性抽样脉冲序列 pT(t),从连续信号 xa(t)中抽取一系列的离散值,得 到抽样信号(或称抽样数据信号)即离散时间信号。 (二)线性时不变离散时间系统 线性系统:满足线性叠加原理的系统。若 y1(n)和 y2(n)分别是输入序列 x1(n)和 x2(n) 的响应,则输入 x(n)=ax1(n)+bx2(n)的输出响应为 y(n)=ay1(n)+by2(n)。 时不变系统:即系统参数不随时间变化的系统,亦即系统对于输入信号的响应与信号加 于系统的时间无关。即满足 :若 y(n)是 x(n)的响应,则 y(n-m)是输入 x(n-m)的响应,其中 m 是任意整数。 数字滤波器对单位样本序列 (n) 的响应称为冲激响应,用 h(n)表示。线性时不变离散 系统对输入信号 x(n)的响应 y(n)可用 h(n)来表示: =− = − k y(n) h(k)x(n k) 。 (三)z 变换和逆 z 变换 序列 x(n) 的 z 变换定义为: ( ) ( ) =− − = n n X z x n z 其中,z 是复变量。相应地,单边 z 变换定义为: ( ) ( ) = − = n 0 n X z x n z MATLAB 提供了计算离散时间信号单边 z 变换的函数 ztrans 和 z 反变换函数 iztrans: Z=ztrans(x),x=iztrans(z)。上式中的 x 和 Z 分别为时域表达式和 z 域表达式的符号表示,可