太原理工大学DSP课程设计
- 格式:doc
- 大小:57.50 KB
- 文档页数:10
dsp简单课程设计一、教学目标本课程旨在让学生了解和掌握DSP(数字信号处理器)的基本原理和应用,培养学生对DSP技术的兴趣和热情。
知识目标:使学生掌握DSP的基本概念、工作原理和主要性能指标;了解DSP 在不同领域的应用,如通信、音视频处理、工业控制等。
技能目标:通过实践操作,培养学生使用DSP芯片进行程序设计和系统应用的能力;使学生能够运用DSP技术解决实际问题,提高创新能力。
情感态度价值观目标:培养学生对新技术的敏感度,增强其对DSP技术的自信心和责任感;激发学生对电子科技和自动化的兴趣,培养其积极向上的学习态度。
二、教学内容本课程的教学内容主要包括DSP的基本原理、DSP芯片的结构与工作原理、DSP程序设计方法和DSP应用实例。
1.DSP基本原理:介绍DSP的定义、分类和发展历程,使学生了解DSP技术的基本概念。
2.DSP芯片结构与工作原理:详细讲解DSP芯片的内部结构、工作原理和主要性能指标,以便学生能够深入理解DSP的运作方式。
3.DSP程序设计方法:教授DSP的编程语言、程序设计流程和调试技巧,使学生具备实际的编程能力。
4.DSP应用实例:分析DSP技术在通信、音视频处理、工业控制等领域的应用实例,帮助学生了解DSP技术的广泛应用。
三、教学方法为了提高教学效果,本课程将采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
1.讲授法:通过教师的讲解,使学生掌握DSP的基本原理和应用。
2.讨论法:学生就DSP技术的相关问题进行讨论,培养学生的思考能力和团队协作精神。
3.案例分析法:分析DSP技术在实际应用中的案例,帮助学生更好地理解DSP技术的价值和应用前景。
4.实验法:安排学生进行DSP实验,锻炼学生的动手能力,提高其对DSP技术的实际应用能力。
四、教学资源为了保证教学效果,我们将准备以下教学资源:1.教材:选用权威、实用的DSP教材,为学生提供系统、全面的学习资料。
2.参考书:提供相关的DSP技术参考书籍,丰富学生的知识储备。
太原理工大学DSP课程设计设计题目:正弦信号发生器的设计学院:信息工程班级:通信110姓名:学号:同组人:指导老师:李鸿艳实验地点:中区图书馆起点机房时间:2013 年12 月23 日设计题目 正弦信号发生器 设计目的1、通过实验掌握DSP 的软件开发过程2、学会运用汇编语言进行程序设计,在此集成开发环境下完成工程项目创建, 程序编写,编译,链接,调试以及数据的分析。
3、学会用CCS(Code Composer Studio)仿真模拟DSP 芯片,通过CCS 软件平台上应用C54X 汇编语言来实现正弦信号发生装置。
设计内容编写一个产生正弦波信号的程序,在CCS 软件下进行模拟运行,观察输出结果设计原理本实验产生正弦波的方法是泰勒级数展开法。
泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。
求一个角度的正弦值取泰勒级数的前5项,得近似计算式:一、总体方案设计本实验是基于CCS 开发环境的。
CCS 是TI 公司推出的为开发TMS320系列DSP 软件的集成开发环境,是目前使用最为广泛的DSP 开发软件之一。
它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。
通过CCS 软件平台上应用C54X 汇编语言来实现正弦信号发生装置。
总体思想是:正弦波的波形可以看作由无数点组成,这些点与x 轴的每一个角度值相对应,可以利用DSP 处理器处理大量重复计算的优势来计算x 轴每一点对应的y 的值(在x 轴取N 个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的SIN 子程序组成,相应的软件流程图如图。
))))((((981761541321 !9!7!5!3)sin(22229753⨯-⨯-⨯-⨯-=+-+-=xx x x x x x x x x x二、设计内容1、设置在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动;双击C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驱动;点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。
dsp大学课程设计一、教学目标本课程的教学目标旨在帮助学生掌握数字信号处理(DSP)的基本理论、算法和实现方法。
通过本课程的学习,学生应能够:1.知识目标:–理解数字信号处理的基本概念、原理和数学基础。
–熟悉常用的数字信号处理算法,如傅里叶变换、离散余弦变换、快速算法等。
–掌握DSP芯片的基本结构、工作原理和编程方法。
2.技能目标:–能够运用DSP算法进行实际问题的分析和解决。
–具备使用DSP开发工具和实验设备进行软硬件调试的能力。
–能够编写DSP程序,实现数字信号处理算法。
3.情感态度价值观目标:–培养学生的创新意识和团队合作精神,提高解决实际问题的能力。
–增强学生对DSP技术的兴趣和热情,为学生进一步深造和职业发展奠定基础。
二、教学内容本课程的教学内容主要包括以下几个方面:1.数字信号处理基础:包括信号与系统的基本概念、离散信号处理的基本算法等。
2.离散余弦变换和傅里叶变换:离散余弦变换(DCT)和快速傅里叶变换(FFT)的原理和应用。
3.数字滤波器设计:低通、高通、带通和带阻滤波器的设计方法和应用。
4.DSP芯片和编程:DSP芯片的基本结构、工作原理和编程方法,包括C语言和汇编语言编程。
5.实际应用案例:包括音频处理、图像处理、通信系统等领域的实际应用案例分析。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式:1.讲授法:通过教师的讲解,使学生掌握数字信号处理的基本概念和原理。
2.讨论法:通过分组讨论和课堂讨论,培养学生的思考能力和团队合作精神。
3.案例分析法:通过分析实际应用案例,使学生了解数字信号处理在工程中的应用。
4.实验法:通过实验操作,使学生掌握DSP芯片的基本编程方法和实验技能。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《数字信号处理》(或其他指定教材)。
2.参考书:提供相关的参考书籍,供学生自主学习和深入研究。
3.多媒体资料:制作课件、教学视频等,以丰富教学手段和提高学生的学习兴趣。
大学dsp课程设计一、教学目标本课程的教学目标是使学生掌握数字信号处理(DSP)的基本理论、算法和实现方法,培养学生运用DSP技术解决实际问题的能力。
具体目标如下:1.知识目标:(1)掌握数字信号处理的基本概念、原理和算法。
(2)熟悉DSP芯片的结构、工作原理和编程方法。
(3)了解数字信号处理在通信、音频、图像等领域的应用。
2.技能目标:(1)能够运用DSP算法进行数字信号处理。
(2)具备使用DSP开发工具进行程序设计和仿真。
(3)能够阅读和分析DSP芯片的数据手册,进行硬件编程。
3.情感态度价值观目标:(1)培养学生对数字信号处理的兴趣,提高学习的积极性。
(2)培养学生团队协作、自主学习的能力。
(3)使学生认识到数字信号处理技术在现代社会中的重要性,培养学生的责任感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.数字信号处理基本理论:采样与恢复、离散时间信号与系统、离散傅里叶变换、快速傅里叶变换等。
2.DSP芯片及其编程:DSP芯片结构、指令系统、编程方法、硬件接口等。
3.数字信号处理算法实现:数字滤波器、快速卷积、数字信号合成等。
4.应用实例分析:通信系统、音频处理、图像处理等。
三、教学方法为实现教学目标,本课程将采用以下教学方法:1.讲授法:用于传授基本理论、概念和算法。
2.案例分析法:通过实际案例,使学生更好地理解理论知识。
3.实验法:培养学生动手能力,巩固理论知识。
4.讨论法:鼓励学生积极参与课堂讨论,提高思维能力。
四、教学资源为实现教学目标,本课程将采用以下教学资源:1.教材:选用权威、实用的教材,如《数字信号处理》(李晓波等编著)。
2.参考书:提供相关领域的参考书籍,如《DSP原理与应用》(陈后金著)。
3.多媒体资料:制作课件、视频等多媒体资料,辅助教学。
4.实验设备:配备DSP实验开发板、仿真器等实验设备,为学生提供动手实践的机会。
五、教学评估本课程的教学评估将采用多元化、全过程的评价方式,以全面、客观地评价学生的学习成果。
dsp综合课程设计一、教学目标本课程的教学目标旨在帮助学生掌握数字信号处理(DSP)的基本原理和应用技能,通过理论学习与实践操作相结合的方式,培养学生的技术创新能力和实际问题解决能力。
知识目标:学生将掌握数字信号处理的基本概念、算法和典型的DSP芯片应用。
具体包括:•数字信号处理的基础理论•常用数字滤波器的设计与分析•快速算法实现,如FFT、IFFT等•DSP芯片的工作原理及编程方法技能目标:通过课程学习和实践操作,学生将能够熟练使用DSP相关软件(如MATLAB等)进行算法仿真和系统设计,并具备一定的硬件操作能力,包括:•利用仿真工具对DSP算法进行验证•设计简单的数字信号处理系统•进行DSP芯片编程和硬件调试情感态度价值观目标:通过课程学习,培养学生对数字信号处理技术的兴趣和热情,增强其科技责任感和创新意识,激发学生将所学知识应用于工程实践和科研探索中,为我国信息技术产业的发展贡献自己的力量。
二、教学内容教学内容围绕数字信号处理的基本理论、算法实现、DSP芯片应用及系统设计展开。
1.数字信号处理基础:涵盖信号的采样与恢复、离散时间信号处理、离散时间系统特性等基本概念。
2.数字滤波器设计:包括常用滤波器(低通、高通、带通、带阻)的设计方法和理论。
3.快速算法:重点讲解快速傅里叶变换(FFT)、快速卷积等高效算法。
4.DSP芯片介绍:详细讲解DSP芯片的结构、工作原理及编程环境。
5.实际应用案例:结合实际案例,使学生理解DSP技术在现代通信、音视频处理等领域的应用。
三、教学方法结合课程特点,采用多种教学方法激发学生的学习兴趣和主动性:1.讲授法:系统讲解理论知识,确保学生掌握扎实的基础。
2.案例分析法:通过具体案例,使学生理解DSP技术的应用。
3.实验法:安排实验课,让学生动手实践,加深对理论知识的理解。
4.小组讨论法:鼓励学生分组讨论,培养团队合作精神,提高问题解决能力。
四、教学资源为支持课程的顺利进行,将准备以下教学资源:1.教材:《数字信号处理》(或等同教材)2.参考书籍:提供相关领域的参考书籍,丰富学生的知识视野。
dsp原理及应用课课程设计一、教学目标本课程的教学目标是使学生掌握数字信号处理器(DSP)的基本原理和应用技术,培养学生运用DSP技术解决实际问题的能力。
具体目标如下:1.知识目标:(1)了解DSP的基本概念、发展历程和分类;(2)掌握DSP的基本结构、工作原理和性能指标;(3)熟悉DSP编程语言和开发工具;(4)了解DSP在不同领域的应用实例。
2.技能目标:(1)能够使用DSP开发工具进行程序设计和仿真;(2)具备阅读和分析DSP相关英文资料的能力;(3)具备使用DSP解决实际问题的能力。
3.情感态度价值观目标:(1)培养学生对DSP技术的兴趣和好奇心;(2)培养学生勇于探索、创新的精神;(3)培养学生团队协作和交流分享的良好习惯。
二、教学内容本课程的教学内容分为五个部分:1.DSP基本原理:介绍DSP的概念、发展历程、分类和性能指标。
2.DSP基本结构:讲解DSP的内部结构、工作原理和指令系统。
3.DSP编程与开发:学习DSP编程语言、开发工具和使用方法。
4.DSP应用案例:分析DSP在通信、图像处理、音频处理等领域的应用实例。
5.实践环节:进行DSP实验,巩固所学知识和技能。
三、教学方法本课程采用多种教学方法相结合,以提高学生的学习兴趣和主动性:1.讲授法:讲解DSP基本原理、结构和编程方法;2.案例分析法:分析DSP在不同领域的应用实例;3.实验法:进行DSP实验,锻炼学生的动手能力;4.讨论法:学生分组讨论,培养团队协作和交流分享的能力。
四、教学资源本课程的教学资源包括:1.教材:选用国内外优秀教材,如《数字信号处理器原理与应用》;2.参考书:提供相关领域的参考书籍,如《DSP算法与应用》;3.多媒体资料:制作课件、教学视频等,辅助学生理解抽象概念;4.实验设备:配备DSP开发板和仿真器,供学生进行实验和实践。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答和团队协作等情况,占总评的30%。
本科课程设计报告课程名称: DSP原理及应用实验名称: FIR滤波器的DSP实现实验地点:起点机房专业班级:学号:学生:指导教师:FIR 滤波器的DSP 实现一、设计目的1 了解FIR 滤波器的原理和特性2. 熟悉设计FIR 数字滤波器的原理和方法3. 学习FIR 滤波器的DSP 的实现过程。
5. 学习使用CCS 软件。
二、设计容1通过MATLAB 来设计一个低通滤波器,并对它进行模拟仿真,确定FIR 滤波器系数2. 用DSP 汇编语言及C 语言进行编程,实现FIR 运算,对产生的合成信号滤除信号中高频成分,观察滤波前后波形的变化。
三、设计原理数字滤波器是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。
一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足差分方程为:()()()∑-=-=1N I i n x i h n y对其进行z 变换,可得到FIR 滤波器的传递函数为:()Z H =()()()∑-=-=10N n nz n b z X z Y FIR 滤波算法实际上是一种乘法累加运算。
它不断输入样本,经延时 ,作乘法累加,再输出滤波结果y (n )。
FIR 滤波器的结构如图1:图1:FIR滤波器的结构图可以看出,在数字滤波器中FIR滤波器有以下几个特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零;(2)系统函数H(z)在|z|>0处收敛,在|z|>0处只有零点,有限z平面只有零点,而全部极点都在z=0处;(3)结构主要是非递归结构,没有输出到输入的反馈。
在DSP芯片中,实现z-1算法很方便,可采用循环缓冲区法,其特点如下:(1)对于N级FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(窗),用来放最新的N个输入样本;(2)从最新样本开始取数;(3)读完最后一个样本后,输入最新样本来代替最老样本,而其他数据位置不变;(4)用片循环缓冲区长度寄存器对缓冲区进行间接寻址,是循环缓冲区地址首位相邻。
dsp课程设计一、课程目标知识目标:1. 理解数字信号处理(DSP)的基本概念,掌握其基本原理和算法;2. 学会使用数学工具进行信号的时域、频域分析,并能够解释分析结果;3. 掌握滤波器的设计方法,能够运用所学知识对实际信号进行处理。
技能目标:1. 能够运用DSP技术对实际信号进行采集、处理和分析,解决实际问题;2. 熟练使用DSP软件和硬件平台,进行算法的实现和验证;3. 培养创新意识和团队协作能力,通过小组合作完成综合性的DSP项目。
情感态度价值观目标:1. 培养学生对数字信号处理技术的兴趣和热情,激发其主动探索精神;2. 培养学生严谨的科学态度,注重实践与理论相结合,提高问题解决能力;3. 增强学生的团队合作意识,培养沟通、交流和协作能力。
课程性质:本课程为专业选修课,旨在帮助学生掌握数字信号处理的基本理论和方法,提高实际问题解决能力。
学生特点:学生已具备一定的电子技术和数学基础,对信号处理有一定了解,但实践经验不足。
教学要求:注重理论与实践相结合,强调学生动手实践,培养解决实际问题的能力。
通过本课程的学习,使学生能够独立完成DSP相关项目的设计与实现。
二、教学内容1. 数字信号处理基础:信号与系统、离散时间信号与系统、线性时不变系统、卷积运算等;2. 离散傅里叶变换:傅里叶级数、离散傅里叶变换(DFT)、快速傅里叶变换(FFT)等;3. 数字滤波器设计:滤波器原理、无限长冲激响应(IIR)滤波器设计、有限长冲激响应(FIR)滤波器设计等;4. 数字信号处理应用:数字信号处理在语音、图像、通信等领域的应用案例分析;5. 实践教学:使用DSP软件和硬件平台进行算法实现和验证,开展综合性的DSP项目。
教学大纲安排:第一周:数字信号处理基础第二周:离散时间信号与系统第三周:线性时不变系统与卷积运算第四周:离散傅里叶变换第五周:快速傅里叶变换第六周:数字滤波器设计原理第七周:IIR滤波器设计第八周:FIR滤波器设计第九周:数字信号处理应用案例分析第十周:实践教学与项目开展教学内容与教材关联性:本课程教学内容依据教材章节进行安排,涵盖数字信号处理的基本理论、方法和应用,确保学生系统掌握DSP相关知识。
正弦信号发生器程序:.asm.mmregs.def start.def d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360STACK: .usect "STACK",10Hk_theta .set 286 ;theta=pi/360(0.5deg) start:.textSTM #STACK+10H,SPSTM k_theta,AR0STM 0,AR1STM #sin_x,AR6STM #90,BRCRPTB loop1-1LDM AR1,ALD #d_xs,DPSTL A,@d_xsSTL A,@d_xcCALL sinx ;d_sinx=sin(x)CALL cosx ;d_cosx=cos(x)LD #d_sinx,DPLD @d_sinx,16,A ;A=sin(x)MPYA @d_cosx ;B=sin(x)*cos(x)STH B,1,*AR6+ ;AR6----2*sin(x)MAR *AR1+0loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.) STM #88,BRCRPTB loop2-1LD *AR7-,ASTL A,*AR6+loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.) STM #sin_x,AR7RPTB loop3-1LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6 ;generate sin waveSTM #1,AR0STM #360,BKB loop3sinx:.def d_xs,d_sinx.data.word 030BH ;C2=1/(6*7).word 0666H ;C3=1/(4*5).word 1556H ;C4=1/(2*3)d_coef_s .usect "coef_s",4d_xs .usect "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .usect "sin_vars",1d_l_s .usect "sin_vars",1.textSSBX FRCTSTM #d_coef_s,AR5 ;move coeffs table_sRPT #3MVPD #table_s,*AR5+STM #d_coef_s,AR3STM #d_xs,AR2STM #d_l_s,AR4ST #7FFFH,d_l_sSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA A ;A=T*A=x^2(1-x^2/72)STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72);T=x^2(1-x^2/72)MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72))ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))ST B,*AR2 ;(d_temp)=B||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RETcosx:.def d_xc,d_cosxd_coef_c .usect "coef_c",4.datatable_c .word 0249H ;C1=1/(7*8).word 0444H ;C2=1/(5*6).word 0AABH ;C3=1/(3*4)d_xc .usect "cos_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_l_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR5 ;move coeffs table_cRPT #3MVPD #table_c,*AR5+STM #d_coef_c,AR3STM #d_xc,AR2STM #c_l_c,AR4ST #7FFFH,c_l_cSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2MPYA A ;A=T*A=x^2(1-x^2/56)STH A,*AR2 ;(d_temp)=x^2(1-x^2/56)MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56); T=x^2(1-x^2/56)MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56))ST B,*AR2 ;(d_temp)=x^2(1-x^2/30(1-x^2/56))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))SFTA A,-1,A ;-1/2NEG AMPYA *AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))MAR *AR2+RETDADD *AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))STH B,*AR2 ;cos(theta)RET.endFFT变换:..c#include "math.h"#define sample_1 256#define signal_1_f 60#define signal_2_f 200#define signal_sample_f 512#define pi 3.1415926int input[sample_1];float fwaver[sample_1],fwavei[sample_1],w[sample_1]; float sin_tab[sample_1];float cos_tab[sample_1];void init_fft_tab();void input_data();void fft(float datar[sample_1],float datai[sample_1]); void main(){int i;init_fft_tab();input_data();for (i=0;i<sample_1;i++){fwaver[i]=input[i];fwavei[i]=0.0f;w[i]=0.0f;}fft(fwaver,fwavei);while(1);}void init_fft_tab(){float wt1;float wt2;int i;for (i=0;i<sample_1;i++){wt1=2*pi*i*signal_1_f;wt1=wt1/signal_sample_f;wt2=2*pi*i*signal_2_f;wt2=wt2/signal_sample_f;input[i]=(cos(wt1)+cos(wt2))/2*32768;}}void input_data(){int i;for(i=0;i<sample_1;i++){sin_tab[i]=sin(2*pi*i/sample_1);cos_tab[i]=cos(2*pi*i/sample_1);}}void fft(float datar[sample_1],float datai[sample_1]){int x0,x1,x2,x3,x4,x5,x6,x7,xx;int i,j,k,b,p,L;float TR,TI,temp;for(i=0;i<sample_1;i++){x0=x1=x2=x3=x4=x5=x6=0;x0=i&0x01;x1=(i/2)&0x01;x2=(i/4)&0x01;x3=(i/8)&0x01;x4=(i/16)&0x01;x5=(i/32)&0x01;x6=(i/64)&0x01;x7=(i/128)&0x01;xx=x0*128+x1*64 +x2*32+x3*16+x4*8+x5*4+x6*2+x7;datai[xx]=datar[i];}for(i=0;i<sample_1;i++){datar[i]=datai[i];datai[i]=0;}for(L=1;L<=8;L++){b=1;i=L-1;while(i>0){b=b*2;i--;}for(j=0;j<=b-1;j++){p=1;i=8-L;while(i>0){p=p*2;i--;}p=p*j;for(k=j;k<256;k=k+2*b){TR=datar[k];TI=datai[k];temp=datar[k+b];datar[k]=datar[k]+datar[k+b]*cos_tab[p]+datai[k+b]*sin_tab[p];datai[k]=datai[k]-datar[k+b]*sin_tab[p]+datai[k+b]*cos_tab[p];datar[k+b]=TR-datar[k+b]*cos_tab[p]-datai[k+b]*sin_tab[p];datai[k+b]=TI+temp*sin_tab[p]-datai[k+b]*cos_tab[p];}}}for(i=0;i<sample_1/2;i++){w[i]=sqrt(datar[i]*datar[i]+datai[i]*datai[i]);}}.asm.global _fir,_init,_B,_outdata _firbset frctamov #_B,xdpmov #_B,cdpmov t0,ac0sub #1,ac0mov ac0,mmap(csr)add ac0,ar0mov #0,ac0rpt csrmacmz *ar0-,*cdp+,ac0mov hi(ac0),t0ret_initmov mmap(t0),ac0sub #1,ac0mov ac0,ar7rptz ac0,ar7mov ac0,*ar0+ret_outdatamov t1,ac0sub #2,ac0mov ac0,mmap(csr)add ac0,ar0rpt csrdelay *ar0-mar *ar0+mov t0,*ar0retFIR滤波器:.c#include "s.h"#include "math.h"#define signal_1_f 200#define signal_2_f 620#define signal_sample_f 2000 #define pi 3.1415926#define coff_L 23#define bufer_L 256int data_in[bufer_L];int out[bufer_L] ;int firout;int x[coff_L+1];int k=0;int bufer=bufer_L;extern int fir(int *,int);extern int init(int *,int);extern int outdata(int *,int,int);void inputwave();void main(){inputwave();init(x,BL);while(1){x[0]=data_in[k];firout=fir(x,BL);outdata(out,firout,bufer);k++;if(k>=bufer_L){k=0;}}}void inputwave(){float wt1;float wt2;int i;for(i=0;i<=bufer_L;i++){wt1=2*pi*i*signal_1_f;wt1=wt1/signal_sample_f;wt2=2*pi*i*signal_2_f;wt2=wt2/signal_sample_f;data_in[i]=(cos(wt1)+cos(wt2))/2*32768; }}IIR滤波器:.c#include "math.h"#define signal_1_f 500#define signal_2_f 10000#define signal_sample_f 25000#define pi 3.1415926#define IIRNUMBER_L 2#define bufer_L 256int N_L=IIRNUMBER_L;int data_in[bufer_L];int out[bufer_L] ;int x[IIRNUMBER_L+1];int y[IIRNUMBER_L+1];int k=0;int bufer=bufer_L;int fBn[IIRNUMBER_L]={0,0x634a};int fAn[IIRNUMBER_L]={0xe5c,0xe5c};extern int iir(int *x,int *y,int *fAn,int *fBn,int N_L); extern int init(int *,int *,int);extern int outdata(int *,int,int);void inputwave();void main(){int iirout;inputwave();init(x,y,N_L);while(1){x[0]=data_in[k];iirout=iir(x,y,fAn,fBn,N_L);outdata(out,iirout,bufer);k++;if(k>=bufer_L){k=0;}}}void inputwave(){float wt1;float wt2;int i;for(i=0;i<=bufer_L;i++){wt1=2*pi*i*signal_1_f;wt1=wt1/signal_sample_f;wt2=2*pi*i*signal_2_f;wt2=wt2/signal_sample_f;data_in[i]=(cos(wt1)+cos(wt2))/2*32768; }}.asm.global _iir,_init,_outdata_iirbset frctsub #1,t0mov t0,mmap(csr)add t0,ar0mov xar2,xdpmov ar2,cdpmov #0,ac0rpt csrmacmz *ar0-,*cdp+,ac0add t0,ar1mov xar3,xdpmov ar3,cdprpt csrmacmz *ar1-,*cdp+,ac0mar *ar1+mov hi(ac0),*ar1mov hi(ac0),t0bclr frctret_initsub #1,t0mov t0,mmap(csr)mov #0,ac0rpt csrmov ac0,*ar0+rpt csrmov ac0,*ar1+ret_outdatamov t1,ac0sub #2,ac0mov ac0,mmap(csr)add ac0,ar0rpt csrdelay *ar0-mar *ar0+mov t0,*ar0ret。