数电实验一 离散卷积的C语言编程.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数电实验一 离散卷积的C语言编程

实验一 离散卷积的C语言编程实验 DSP实验室 实验性质 综合设计性实验 实验目的 1 了解和认识常用的各种信号; 2 掌握卷积的定义和计算方法; 3 掌握在计算机中生成以及绘制信号序列图的方法。 实验原理 离散时间系统中几种常用信号序列: (1)单位冲激序列 实验原理 (2)单位阶跃序列 实验原理 (3)矩形序列(门序列)RN(n) 实验原理 (4)指数序列 实指数序列 复指数序列 实验原理 (5)正弦序列 实验原理 离散卷积运算,也称之为卷积和运算,是求解离散时间系统输出响应的一种重要和有效的方法。 定义为: 实验内容 1、用C语言编程产生以下时间序列信号: ① x1(n)=n u(n) 0≤n≤31 ② x2(n)=an u(n) 0≤n≤31, 0<a<1 ③ x3(n)= RN(n) 0≤n≤31 ④ 产生自己欲实现的一个任意序列 (参考《数字信号处理实验教程》69页序列xa(n)=Ae-anTsin(w0nT)u(n), 0≤n≤31 )。 实验内容 2、 用C语言编程实现 ① y1(n)=x1(n)*x3(n) ② y2(n)=x2(n)*x3(n) 并在显示器上观察到x1(n)、x3(n)和y1(n)、y2(n)四个相应序列。 实验内容 3、 用C语言编程实现任意离散序列与门序列RN(n)的线性卷积。 设门序列是一个系统的单位采样响应,求系统的输出,其长度在256点以内。 实验内容 *4 、要求用菜单操作实现序列输入、显示输出,用数组和序列两种显示形式。 扩展实验 1.在生成信号x2(n)=an u(n) 0≤n≤31, 0<a<1时,参数a取不同数值,绘制x2(n)序列图,观察并分析信号波形。 扩展实验 1 的傅里叶变换为 编程绘制实现幅频特性曲线( )。 扩展实验 2.分析采样序列的特性。 a.取采样频率=1kHz ,即T=1ms 。观察所得采样 的幅频特性 。应当注意,实验中所得频谱是用序列 的傅氏变换公式求得的,所以在频率度量上存在关系: 为数字频率, 为模拟频率。 b.改变采样频率, =300Hz ,观察 的变化,并做记录(打印曲线);进一步降低采样频率, =200Hz ,观察频谱混叠是否明显存在,说明原因,并记录(打印)这时的曲线。 实验结果 实验要求 1 实验前,自己编制C语言程序。 2 实验中,自己调试程序,并保存信号波形,分析屏幕绘制的各种信号是否正确,同时准备验收时回答老师提出的各方面相关问题。 3 实验后,撰写实验报告和心得体会。 4 参考《数字信号处理实验教程》第四章(基础理论实验)。 实验程序 #include stdio.h #include stdlib.h #include math.h #include msp.h void mcmpdft(complex x[],complex y[],int n,int isign) { /*---------------------------------------------------------------------- Routinue mcmpdft: Directly to Compute the DFT/IDFT of Complex Data x(n) By DFT definition; in chapter 3. If ISIGN=-1: For Forward Transform; ISIGN=1 : For Inverse Transform. in chapter 3 ----------------------------------------------------------------------*/ complex t,ts,z; float pi2; int m,k; pi2=8.*atan(1.); t.real=0.;t.imag=isign*pi2/n; ts.real=0.0; * * a=0.5 for(m=0;mn;m++) {y[m]=x[0]; for(k=1;kn;k++) {ts.imag=t.imag*k*m;

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档