太原理工大学DSP课程设计

合集下载

dsp简单课程设计

dsp简单课程设计

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的软件结构课件

太原理工第三章 DSP的软件结构课件

学习交流PPT
22
绝对地址寻址
❖*(lk)寻址
用一个符号或一个表示16位地址的长立即 数来确定数据存储器中的一个地址
例:
LD *(BUFFER),A ;把地址为BUFFER 的数据单元中的数据装到AccA中
学习交流PPT
23
累加器寻址
用累加器中的数作为一个地址,可用来对存放 数据的程序存储器寻址:
LD #4,DP ;指向页4(0200h-027Fh)
ADD 9h,A ;将数据页4中地址9h的 数据加给AccA
学习交流PPT
25
直接寻址
学习交流PPT
26
间接寻址
❖8个辅助寄存器(AR0--AR7),由一个 辅助寄存器指针(ARP 3-bit)来指定
❖辅助寄存器算术单元(ARAU)作16-bit 无符号数运算,决定一个新的地址,装入 辅助寄存器中的一个
READA Smem WRITA Smem
❖READA,把累加器A所确定的程序存储器单元 中的一个字,传送到数据存储器单元Smem中。
❖WRITA,把数据单元Smem中的一个字,传送 到累加器A确定的程序存储器单元。
学习交流PPT
24
直接寻址
❖TMS320C54的数据存储器分为512页,每页 128字。设置一个数据页指针DP(Data Pointer),用9-bit指向一个数据页,再加上一 个7-bit的页内偏移地址,形成16-bit的数据地 址
16位的双寻址操作数,从DB总线读出
16位的双寻址操作数,从CB总线读出
16位立即数,数据存储器的地址
16位立即数,程序存储器的地址
16位立即数,I/O的地址
源累加器
目的累加器

(完整word版)DSP课程设计__正弦信号发生器的设计

(完整word版)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大学课程设计

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课程设计一、教学目标本课程的教学目标是使学生掌握数字信号处理(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综合课程设计一、教学目标本课程的教学目标旨在帮助学生掌握数字信号处理(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原理及应用课课程设计一、教学目标本课程的教学目标是使学生掌握数字信号处理器(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课件第一章

太原理工大学DSP课件第一章
数字系统:按照奈奎斯特准则的要求, 受A/D和处理速度的限制。
模拟与数字信号的转换
现实世界的信号绝大多数是模拟的(温 度、速度、压力等),转换成的电信号 也是模拟的(电流、电压等),要实现 数字处理就必须进行转换。
DSP芯片的应用
(1) 信号处理——如数字滤波、自适应滤波、快速傅立叶变换、 相关运算、谱分析、卷积、模式匹配、加窗、波形产生等
数字信号处理的实现
在通用计算机上用软件来实现 在通用计算机中加入专用的加速处理机实现 用单片机来实现 用通用的可编程DSP芯片实现 用专用的DSP芯片实现 用基于通用DSP核的ASIC芯片实现
Why digital?
(1)精度高 模拟系统的精度由元器件决定,模拟元器
件的精度很难达到10-3以上。而数字系统 的精度与A/D转换器的位数、计算机字长 有关,17位字长精度就可达到10-5,所以 在高精度系统中,有时只能采用数字系统。
(5)可获得高性能指标 由于数字信号处理的特点,可获得高性能指标。
例如,模拟频谱仪在频率低端只能分析到 10Hz以上的频率,且难于做到高分辨率(足 够窄的带宽)。但在数字的谱分析中,已能做 到10-3Hz的谱分析。又如,有限长冲激响应数 字滤波器可实现准确的线性相位特性,而这在 模拟系统中是很难达到的。
数字信号处理的内容
Digital Signal Processing
数字信号处理
Digital Signal Processor
数字信号处理器
算法的研究
算法的研究是指如何以最小的运算量和存储器 的使用量来完成指定的任务,如20世纪60年代 出现的快速傅立叶变换(FFT),使数字信号 处理技术发生了革命性的变化。近几年来,数 字信号处理的理论和方法得以了迅速的发展, 并取得了很大的进步,为各种实时处理的应用 提供了算法基础。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正弦信号发生器程序:.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。

相关文档
最新文档