数字信号处理第二版丁玉美第10章上机实验

上传人:E**** 文档编号:90931352 上传时间:2019-06-20 格式:PPT 页数:48 大小:375.50KB
返回 下载 相关 举报
数字信号处理第二版丁玉美第10章上机实验_第1页
第1页 / 共48页
数字信号处理第二版丁玉美第10章上机实验_第2页
第2页 / 共48页
数字信号处理第二版丁玉美第10章上机实验_第3页
第3页 / 共48页
数字信号处理第二版丁玉美第10章上机实验_第4页
第4页 / 共48页
数字信号处理第二版丁玉美第10章上机实验_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《数字信号处理第二版丁玉美第10章上机实验》由会员分享,可在线阅读,更多相关《数字信号处理第二版丁玉美第10章上机实验(48页珍藏版)》请在金锄头文库上搜索。

1、第10章 上 机实验,10.1 引言 10.2 关于实验用计算机语言 10.3 实验一: 信号、 系统及系统响应 10.4 实验二: 用FFT作谱分析 10.5 实验三: 用双线性变换法设计IIR数字滤波器 10.6 实验四: 用窗函数法设计FIR数字滤波器,10.1 引言,第一、 二章是全书的基础内容。 第三、 四章DFT、 FFT是数字信号处理的重要数学工具, 它有广泛的使用内容。,10.2 关于实验用计算机语言,MATLAB是一种交互式的以矩阵为基本数据结构的系统。 在生成矩阵对象时, 不要求明确的维数说明。 所谓交互式, 是指MATLAB的草稿纸编程环境。 与C语言或FORTRON语言

2、作科学数值计算的程序设计相比较, 利用MATLAB可节省大量的编程时间。,10.3 实验一: 信号、 系统及系统响应,1. 实验目的 (1) 熟悉连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。 (2) 熟悉时域离散系统的时域特性。 (3) 利用卷积方法观察分析系统的时域特性。 (4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、 离散信号及系统响应进行频域分析。,2. 实验原理与方法 采样是连续信号数字处理的第一个关键环节。 对一个连续信号xa(t)进行理想采样的过程可用(10.3.1)式表示。,(10.3.1),其中 (t)为xa(t)的理想采样

3、, p(t)为周 期冲激脉冲, 即,(10.3.2),(t)的傅里叶变换 (j)为,(10.3.3),将(10.3.2)式代入(10.3.1)式并进行傅里叶变换,,式中的xa(nT)就是采样后得到的序列x(n), 即,x(n)的傅里叶变换为,(10.3.4),(10.3.5),比较(10.3.5)和(10.3.4)可知,(10.3.6),在数字计算机上观察分析各种序列的频域特性, 通常对X(ej)在0, 2上进行M点采样来观察分 析。 对长度为N的有限长序列x(n), 有,一个时域离散线性非移变系统的输入/输出关系为,其中,(10.3.8),上述卷积运算也可以在频域实现 3. 实验内容及步骤

4、(1) 认真复习采样理论、 离散信号与系统、 线性卷积、 序列的傅里叶变换及性质等有关内容, 阅读本实验原理与方法。 (2) 编制实验用主程序及相应子程序。 信号产生子程序, 用于产生实验中要用到的下列信号序列: xa(t)=Ae-at sin(0t)u(t),(10.3.9),进行采样, 可得到采样序列 xa(n)=xa(nT)=Ae-anT sin(0nT)u(n), 0n50 其中A为幅度因子, a为衰减因子, 0是模拟角频率, T为采样间隔。 这些参数都要在实验过程中由键盘输入, 产生不同的xa(t)和xa(n)。 b. 单位脉冲序列: xb(n)=(n) c. 矩形序列: xc(n)

5、=RN(n), N=10 系统单位脉冲响应序列产生子程序。 本实验要用到两种FIR系统。 a. ha(n)=R10(n); b. hb(n)=(n)+2.5(n-1)+2.5(n-2)+(n-3), 有限长序列线性卷积子程序, 用于完成两个给定长度的序列的卷积。 可以直接调用MATLAB语言中的卷积函数conv。 conv用于两个有限长度序列的卷积, 它假定两个序列都从n=0 开始。 调用格式如下: y=conv (x, h),图10.3.1 实验一的主程序框图,图10.3.2 xa(t)的幅频特性曲线,(3) 调通并运行实验程序, 完成下述实验内容: 分析采样序列的特性。 a. 取采样频率f

6、s=1 kHz, 即T=1 ms。 b. 改变采样频率, fs=300 Hz, 观察|X(ej)|的变化, 并做记录(打印曲线); 进一步降低采样频率, fs=200 Hz, 观察频谱混叠是否明显存在, 说明原因, 并记录(打印)这时的|X(ej)|曲线。, 时域离散信号、 系统和系统响应分析。 a. 观察信号xb(n)和系统hb(n)的时域和频域特性; 利用线性卷积求信号xb(n)通过系统hb(n)的响应y(n), 比较所求响应y(n)和hb(n)的时域及频域特性, 注意它们之间有无差别, 绘图说明, 并用所学理论解释所得结果。 b. 观察系统ha(n)对信号xc(n)的响应特性。 卷积定理

7、的验证。,4. 思考题 (1) 在分析理想采样序列特性的实验中, 采样频率不同时, 相应理想采样序列的傅里叶变换频谱的数字频率度量是否都相同? 它们所对应的模拟频率是否相同? 为什么? (2) 在卷积定理验证的实验中, 如果选用不同的频域采样点数M值, 例如, 选M=10和M=20, 分别做序列的傅里叶变换, 求得,所得结果之间有无差异? 为什么?,5. 实验报告要求 (1) 简述实验目的及实验原理。 (2) 按实验步骤附上实验过程中的信号序列、 系统单位脉冲响应及系统响应序列的时域和幅频特性曲线, 并对所得结果进行分析和解释。 (3) 总结实验中的主要结论。 (4) 简要回答思考题。,10.

8、4 实验二: 用FFT作谱分析,1.实验目的 (1) 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法, 所以FFT的运算结果必然满足DFT的基本性质)。 (2) 熟悉FFT算法原理和FFT子程序的应用。 (3) 学习用FFT对连续信号和时域离散信号进行谱分析的方法, 了解可能出现的分析误差及其原因, 以便在实际中正确应用FFT。,2.实验步骤 (1) 复习DFT的定义、 性质和用DFT作谱分析的有关内容。 (2) 复习FFT算法原理与编程思想, 并对照DIT-FFT运算流图和程序框图, 读懂本实验提供的FFT子程序。 (3) 编制信号产生子程序, 产生以下典型信号

9、供谱分析用:,其它n,其它n,(4) 编写主程序。 图 10.4.1 给出了主程序框图, 供参考。 本实验提供FFT子程序和通用绘图子程序。 (5) 按实验内容要求, 上机实验, 并写出实验报告。,图10.4.1 主程序框图,3. 上机实验内容 (1) 对 2 中所给出的信号逐个进行谱分析。 下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的采样频率fs, 供实验时参考。 x1(n), x2(n), x3(n), x4(n), x5(n): N=8, 16=x6(t): fs=64(Hz), N=16, 32, 64 (2) 令x(n)=x4(n)+x5(n), 用FFT计算 8

10、点和 16 点离散傅里叶变换, X(k)=DFTx(n) (3) 令x(n)=x4(n)+jx5(n), 重复(2)。,4. 思考题 (1) 在N=8时, x2(n)和x3(n)的幅频特性会相同吗? 为什么? N=16呢? (2) 如果周期信号的周期预先不知道, 如何用FFT进行谱分析? 5. 实验报告要求 (1) 简述实验原理及目的。 (2) 结合实验中所得给定典型序列幅频特性曲线, 与理论结果比较, 并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。 (3) 总结实验所得主要结论。 (4) 简要回答思考题。,6. 实验用子程序 本实验的主程序比较简单, 直接根据图 10.4

11、.1 所给框图编写程序即可。 编程难点是FFT子程序。 /* DIT-FFT 函数(C语言) */; fft基 2DITFFT函数 要求: 指向复数数组指针X, FFT长度为2m, m为正整数 FFT输出结果放在输入复数数组中。 /*计算N点FFT子程序*/ /*xr:=信号序列实部,xi:=信号序列虚部,N:=FFT变换区间长度N=2M*/ /*如果信号长度小于N,应该给xr,xi后面补0*/ /*计算结果X(K)的实部和虚部分别存储在数组xr和xi中*/,void Fft(double xr,double xi,int N,int M) int L,B,J,P,k,i; double rP

12、artKB,iPartKB;/*分别代表X(K+B)的实部和虚部*/ double rCf128,iCf128 ;/*rCf存储旋转因子实部, iCf存储旋转因子虚部*/ /*旋转因子数组长度应根据自己需要调整*/ /*计算旋转因子*/,double PI2= 8.0*atan(1.0); for( i=0;iN;i+) rCfi=cos(i*PI2/N); iCfi=sin(i*PI2/N); ChangeOrder( xr, xi, N);/*调用倒序子程序*/ /*计算各级蝶形*/ for(L=1;L=M;L+) B = (int)(pow(2,(L-1)+0.5);,for(J=0;J

13、=B-1;J+) P = J*(int)(pow(2,(M-L)+0.5); for(k=J;k=N-1;k+=(int)(pow(2,L)+0.5) rPartKB = xrk+B*rCfP-xik+B*iCfP iPartKB = xik+B*rCfP+xrk+B*iCfP,xrk+B = xrk - rPartKB; xik+B = xik - iPartKB; xrk = xrk + rPartKB; xik = xik + iPartKB; /*倒序子程序*/,void ChangeOrder(double xr,double xi,int N) int LH,N1,I,J,K; d

14、ouble T; LH = N/2; J = LH; N1 = N-2; for(I =1;I=N1;I+) if(IJ) T = xrI;xrI = xrJ;xrJ = T T = xiI;xiI = xiJ;xiJ = T, K = LH; while(J=K) J=J-K; K=(int)(K/2+0.5); J=J+K; ,10.5 实验三: 用双线性变换法设计 IIR数字滤波器,1. 实验目的 (1) 熟悉用双线性变换法设计IIR数字滤波器的原理与方法。 (2) 掌握数字滤波器的计算机仿真方法。 (3) 通过观察对实际心电图信号的滤波作用, 获得数字滤波的感性知识。,2. 实验内容

15、(1) 用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。 (2) 以 0.02为采样间隔, 打印出数字滤波器在频率区间0, /2上的幅频响应特性曲线。 (3) 用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图, 观察总结滤波作用与效果。,3. 实验步骤 (1) 复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容, 按照 例 6.4.2, 用双线性变换法设计数字滤波器系统函数H(z)。 例 6.4.2 中已求出满足本实验要求的数字滤波器系统函数:,(10.5.1),A=0.090 36 B1=1.268

16、6,C1=-0.7051 B2=1.0106,C2=-0.3583 B3=0.9044,C3=-0.2155,(10.5.2),由(10.5.1)式和(10.5.2)式可见, 滤波器H(z)由三 个二阶滤波器H1(z), H2(z)和H3(z)级联组成, 如图 10.5.1 所示。,图10.5.1 滤波器H(z)的组成,(2) 编写滤波器仿真程序, 计算H(z)对心电图信号采样序列x(n)的响应序列y(n)。设yk(n)为第k级二阶滤波器Hk(z)的输出序列, y k-1 (n)为输入序列, 如图10.5.1 所示。 由(10.5.2)式可得到差分方程: yk(n)=Ay k-1 (n)+2Ay k-1 (n-1)+Ay k-1 (n-2)+Bkyk(n-1)+Ckyk(n-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号