当前位置:文档之家› C语言DSP开发与应用举例(精_哈工大课件)

C语言DSP开发与应用举例(精_哈工大课件)

C语言DSP开发与应用举例(精_哈工大课件)

C语言DSP开发与应用举例(精_哈工大课件)

哈工大c语言 练习题

求用户输入得两个数得商,程序运行时,以如下格式输入数据: Input twointegers:42↙ 请改正程序中得错误,使它能得出正确得结果。 #include<stdio、h> main() { inta, b, c; printf("Input two integers:"); scanf("%d,%d",&a, &b); c= a\b; printf("Thequotient ofaandbis:%d", c); } #include〈stdio.h> int main() { ?inta,b,c; printf("Inputtwointegers:"); scanf ("%d%d",&a,&b); ?c=a/b; printf(”The quotient of a and b is:%d\n”,c); ?return 0; } 使用const常量定义圆周率pi=3、14159,编程从键盘输入圆得半径r,计算并输出圆得周长与面积。输出得数据保留两位小数点。输入格式要求:”%lf" 提示信息:”Input r:” 输出格式要求: "printf WITHOUT width or precision specifications:\n" "circumference = %f, area= %f\n”"printf WITHwidth and precision specifications:\n" "circumference=%7、2f, area = %7。2f\n” 程序运行示例如下: Input r:5。3 printf WITHOUT width or precision specifications: circumference =33、300854,are a=88.247263 printf WITHwidthand precision specifications: circumference = 33。30, area = 88、25 #include〈stdio。h> int main() { const double PI=3.14159; double r; printf(”Inputr:"); scanf("%lf”, &r); printf("printf WITHOUT width orprecision specification s:\n"); printf("circumference = %f, area= %f\n",2*PI*r,PI*r*r); printf("printf WITHwidth and precisionspecifications:\n”); ?printf("circumference=%7.2f, area =%7、2f\n",2*PI*r,PI*r*r); return 0; } 写一个程序,将接收得华氏温度转换为对应得摄氏温度。程序应显示如下得提示信息: Please inputfahr: 然后输入一个十进制数并回车,然后程序以合适得消息形式输出转换后得华氏温度。程序使用如下得公式完成转换:摄氏温度= 5.0 *(华氏温度–32.0)/ 9.0 输入格式要求:"%lf" 提示信息:"Pleaseinput fahr: ” 输出格式要求:"Thecelsis: %.2f" #include <stdio。h〉 #include<stdlib.h> int main() { doublef; double c; printf(”Please input fahr: "); scanf("%lf",&f); c=5、0*(f-32.0)/9.0; printf("Thecels is: %、2f”,c);

哈工大C语言实验题

Q308.(10分)第5章实验2:体型判断。 医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。体指数计算公式是: t = w /(h*h) 其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。根据给定的体指数t计算公式,可判断你的体重属于何种类型: 当t<18 时,为低体重; 当18≤t<25 时,为正常体重; 当25≤t<27 时,为超重体重; 当t≥27 时,为肥胖。 ****输入提示信息格式:"Please enter h,w:\n" ****输入数据格式要求:"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入) ****输出数据格式要求: 当t<18 时,输出:"Lower weight!\n" 当18≤t<25 时,输出:"Standard weight!\n"

当25≤t<27 时,输出:"Higher weight!\n" 当t≥27 时,输出:"Too fat!\n" #include #include main() { float t,w,h; printf("Please enter h,w:\n"); scanf("%f,%f",&h,&w); t = w/(h*h); if(t<18) printf("Lower weight!\n"); else if(t>=18&&t<25) printf("Standard weight!\n"); else if(t>=25&&t<27) printf("Higher weight!\n");

哈工大C语言课程设计

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程设计说明书(论文) 课程名称:C语言课程设计 设计题目:音乐程序与波特图 院系:航天学院控制科学与工程系 班级: 设计者: 学号: 指导教师: 设计时间: 哈尔滨工业大学教务处 哈尔滨工业大学课程设计任务书

题目一 1.1题目详细描述: 播放音乐程序,实现了自选音乐曲目和直接使用键盘弹奏,而且可以在曲目播放结束后循环选择乐曲。 1.2程序设计思路及流程图: 1.3 #include #include #include #include #include #include #define N1 16 #define N2 8 #define N4 4 #define N8 2 #define N16 1 #define END 0 void playmusic(int n,int *c); void typemusic(); enum NOTES{ C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,

C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494, C1=523,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988, C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976,S=10 }; typedef enum NOTES SONG; SONG song1[]={C0,N4+N2,E0,N4,G0,N2,G0,N2,A0,N1,G0,N1,E0,N4+N2, C0,N4,G0,N1/3,G0,N1/3,G0,N1/3,E0,N1,C0,N1,G10,N1/3,G10,N1/3, G10,N1/3,G10,N1/3,G10,N1/3,G10,N1/3,C0,N1,END,END}; SONG song2[]={A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1,E1,N1,B0,N1+N1,S,N1,E0,N1, A0,N1+N2,G0,N2,A0,N1,C1,N1,G0,N1+N1,S,N1,E0,N2,E0,N2,F0, N1+N2,E0,N2,F0,N1,C0,N1,E0,N1+N1,S,N1,C1,N2,C1,N2,B0,N1+N2,370, N2,F0,N1,B0,N1,B0,N1+N2,S,N1,A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1, E1,N1,B0,N1+N2,END,END}; int main() { int m,n,c=1; char b='y'; while(b=='y') { printf("Hello,what do you want to do by this program?\n"); printf("1.Listen to music.-------Press 1\n"); printf("2.Play music by yourself.-------Press 2\n"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3) /*选择方式*/ { printf("You typed wrong!Do not push me around.:(\n"); scanf("%d",&m); } if(m==1) { printf("I have two musics,choose one!(Press 1/2)\n"); scanf("%d",&n); while(n!=1&&n!=2) { printf("You typed wrong!Do not push me around.:(\n"); scanf("%d",&n); } playmusic(n,&c); } else if(m==2) { typemusic(); } getchar(); printf("Do you want to continue?(y/n)\n"); scanf("%c",&b);

14_DSP技术原理及应用教程_课后答案

1 .1 数字信号处理器与一般通用计算机和单片机的主要差别有哪些? 答:在通用的计算机上用软件实现该方法速度太慢, 适于算法仿真; 在通用计算机系统上加上专用的加速处理机实现该方法专用性较强,应用受限制,且不便于系统 的独立运行; 用通用的单片机实现这种方式多用于一些不太复杂的数字信号处理,如简单的PID控制算法; 用通用的可编程DSP芯片实现与单片机相比,DSP芯片具有更加适合于数字信号处理的软件及硬件资源,可用于复杂的数字信号处理算法; 用专用的DSP芯片实现在一些特殊场合, 要求信号处理速度极高, 用通用的DSP 芯片很难实现,而专用的DSP 芯片可以将相应的信号处理算法在芯片内部用硬件实现,不需要编程。 1 .4 什么是冯·诺埃曼结构计算机, 什么是哈佛结构计算机, 二者的特点是什么? 答:冯.诺曼结构:将指令、数据存储在同一个存储器中,统一编址,译稿指令计数器提供的地址来区分是指令还是数据。取指令和取数据都访问统一存储器,数据吞吐率低。 哈佛结构:程序和数据存储在不同的存储空间,程序存储空间和数据存储空间是两个相互独立的存储空间,每个存储空间独立编址,独立访问。 1 .8 DSP的工作电压越来越低,内核电压已低至1V,这样做有何意义?为什么DSP内核工作电压和I/O工作电压不一样? 答:集成电路速度越来越快,随之而来,功耗越来越大,这样散热就是很大的问题.在芯片走线尺寸不变的情况下,内部阻抗也不变,降低工作电压会降低功耗,这样能再较高频率下芯片发热较少。 内核不容易受到外部干扰,所以电压可以做的较低,但IO容易受外部信号干扰,保持较高电压容易是器件工作稳定,这是功耗和稳定性的折中。 1 .10 定点DSP和浮点DSP有什么区别?在具体应用中, 应如何选择? 答:在浮点DSP中,数据即可以表示成整数,也可以表示成浮点数。浮点数在运算中,表示数的范围由于其指数可自动调节,因此可避免数的规格化和溢出等问题。但浮点DSP 一般比定点DSP 复杂, 成本也较高。 在定点DSP中, 数据采用定点表示方法。它有两种基本表示方法:整数表示方法和小数表示方法。整数表示方法主要用于控制操作、地址计算和其他非信号处理的应用, 而小数表示方法则主要用于数字和各种信号处理算法的计算中 2 .4 当要使用硬中断INT3作为中断响应矢量时,请问可屏蔽中断寄存器IMR和中断标志寄存器IFR应如何设置? 答:IFR中INT3位=1,IMR中INT3位=1,使能中断。2 .5 若处理器方式寄存器PMST的值设为01A0H,而中断矢量为INT3,那么在中断响应时, 程序计数器指针PC的值为多少? 答:PMST中IPTR=(000000011)b,int3中断向量号为24H,做移量为后变为60H,则中断响应时程序计数器指针PC=01E0H. 2 .10 DSP如何与不同速度的片外存储器及其他外设进行数据交换? 答:软件可编程等待状态发生器可以将外部总线周期扩展到7个机器周期,以使’C54x能与低速外部设备接口。而需要多于7个等待周期的设备,可以用硬件READY线来接口。 2 .11 TMS320C54x可进行移位操作,它的移位范围是多少? 答:’C54x的移位操作最多可以左移31位,或右移16位。(-16~31) 2 .1 3 为什么说应尽量利用DSP的片内存储器? 答:与片外存储器相比,片内存储器不需要插入等待状态,因此成本低,功耗小。 2 .14 如何操作通用I/ O 引脚XF和BIO? 答:XF信号可以由软件控制。通过对STl中的XF位置1得到高电平,清除而得到低电平。对状态寄存器置位的指令SSBX和对状态寄存器复位的指令RSBX可以用来对XF置位和复位。同时XF引脚为高电平和低电平,亦即CPU向外部发出1和0信号。 程序可以根据BIO的输入状态有条件地跳转,可用于替代中断。条件执行指令(XC)是在流水线的译码阶段检测BIO的状态,其它条件指令(branch、call和return)是在流水线的读阶段检测BIO 的状态的。 4 .1 写出汇编语言指令的格式, 并说明应遵循怎样的规则? 答:助记符指令格式: [标号][:] 助记符[操作数列表] [;注释] 代数指令格式: [标号][:] 代数指令[;注释] 应遵循下列规则: ①语句的开头只能是标号、空格、星号或分号。 ②标号是可选项,如果使用,必须从第一列开始。 ③每个域之间必须由一个或多个空格来分开。制表符等同于空格的作用。

哈工大c语言 练习题

求用户输入的两个数的商,程序运行时,以如下格式输入数据: Input two integers:4 2↙ 请改正程序中的错误,使它能得出正确的结果。 #include <> main() { int a, b, c; printf("Input two integers:"); scanf("%d,%d", &a, &b); c = a\b; 、 printf("The quotient of a and b is :%d", c); } # include <> int main () { int a,b,c; printf ("Input two integers:"); scanf ("%d %d",&a,&b); c=a/b; printf ("The quotient of a and b is :%d\n",c); > return 0; } 使用const常量定义圆周率pi=,编程从键盘输入圆的半径r,计算并输出圆的周长和面积。输出的数据保留两位小数点。 输入格式要求:"%lf" 提示信息:"Input r:" 输出格式要求: "printf WITHOUT width or precision specifications:\n" "circumference = %f, area = %f\n" "printf WITH width and precision specifications:\n" ~ "circumference = %, area = %\n" 程序运行示例如下: Input r:printf WITHOUT width or precision specifications: circumference = , area = printf WITH width and precision specifications: circumference = , area = #include <> int main() ~ { const double PI=; double r; printf("Input r:"); scanf("%lf", &r); printf("printf WITHOUT width or precision specifications:\n"); printf("circumference = %f, area = %f\n",2*PI*r,PI*r*r); printf("printf WITH width and precision specifications:\n"); printf("circumference = %, area = %\n",2*PI*r,PI*r*r); return 0; | } 写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息: Please input fahr: 然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度= *(华氏温度–)/ 输入格式要求:"%lf" 提示信息:"Please input fahr: " 输出格式要求:"The cels is: %.2f" #include <> | #include <> int main() { double f; double c;

DSP原理及其应用技术_课程设计_报告

郑州航空工业管理学院 电子通信工程系 DSP原理及应用课程设计报告 设计题目:基于TMS320F2812 DSP微处理器的最小系统设计 学号:********** 专业:电子信息工程专业 设计日期:2012年6月14日 指导老师:赵成陈宇

设计任务 1、利用Protel软件绘制并添加TMS320F2812的原理图库; 2、利用Protel软件绘制TMS320F2812最小系统的电路原理图,包括时钟电路模块,电源模块、复位电路模块、JTAG接口模块; 3、安装最小系统电路,在CCS下建立工程,编译并将其下载到TMS320F2812最小系统中运行。 相关设备 PC机,CCS集成开发环境,最小系统电路板及元件,XDS510仿真调试器,外用表,示波器,稳压电源。 设计原理 TMS320F2812 DSP微处理器属于通用可编程微处理器,在应用时涉及硬件电路设计及软件设计,在理论课部分,主要是了解了F2812的体系架构及软件开发的相关知识,在具体使用时,需要绘制电路原理图及版图。 TMS320F2812 DSP微处理器运行的基本环境包括时钟电路、电源电路、复位电路及JTAG接口调试电路等,为了便于测试系统的运行情况,一般在其外围直接设计串口通信电路及相关的测试电路,这里即在外围配置了XF及串口通信电路。 可以使用Protel或其他电路版图设计软件绘图,其中需要用到学习过的F2812的封装、管脚分布、时钟电路、复位电路等知识。 可以参考教材附录部分的电路原理图。 通过F2812最小电路的设计,可以将理论与实践统一联系,更深入地理解F2812的开发方法。 应用基础 能使用Protel设计电路原理图; 了解F2812硬件的相关知识及电路设计; 能使用CCS建立并调试DSP工程。 设计报告 在课程设计的最后一次指导课上提交打印版。 目录 一、设计的目的和意义…………………………………………………………………3页 二、CCS软件概述………………………………………………………………………3页

DSP原理与应用技术-考试知识点总结

第一章 1、DSP系统的组成:由控制处理器、DSPs、输入/输出接口、存储器、数据传输网络构成。P2图1-1-1 2、TMS320系列DSPs芯片的基本特点:哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令、快速的指令周期。 3、哈佛结构:是一种将程序指令储存和数据储存分开的储存器结构。特点:并行结构体系,是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。系统中设置了程序和数据两条总线,使数据吞吐率提高一倍。 4、TMS320系列在哈佛结构之上DSPs芯片的改进:(1)允许数据存放在程序存储器中,并被算数运算指令直接使用,增强芯片灵活性(2)指令储存在高速缓冲器中,执行指令时,不需要再从存储器中读取指令,节约了一个指令周期的时间。 5、冯诺依曼结构:将指令、数据、地址存储在同一存储器中,统一编址,依靠指令计数器提供的地址来区分是指令、数据还是地址,取指令和去数据都访问同一存储器,数据吞吐率低。 6、流水线操作:TMS320F2812采用8级流水线,处理器可以并行处理2-8条指令,每条指令处于流水线的不同阶段。 解释:在4级流水线操作中。取 指令、指令译码、读操作数、执 行操作可独立地处理,执行完全 重叠。在每个指令周期内,4条 不同的指令都处于激活状态,每 条指令处于不同的操作阶段。 7、定点DSPs芯片:定点格式工作的DSPs芯片。 浮点DSPs芯片:浮点格式工作的DSPs芯片。 (定点DSPs可以浮点运算,但是要用软件。浮点DSPs用硬件就可以)8、DSPs芯片的运算速度衡量标准:指令周期(执行一条指令所需时

哈工大C语言程序设计习题ex6

习题6 6.3 阅读程序,按要求在空白处填写适当地表达式或语句,使程序完整并符合题目要求. (1)下面程序模拟了骰子地6000次投掷,用rand函数产生1~6之间地随机数face,然后统计1~6每一面出现地机会(概率)存放到数组frequency中. (2)从键盘输入10个整型数据,放入数组a 中,求其最大值、最小值及其所在元素地下标位置,并输出. (3)下面程序地功能是从键盘输入一行字符,统计其中有多少单词.假设单词之间以空格分开. (4)下面地函数Squeeze(char s[],char c)地功能是删除字符串s中所出现地与变量c相同地字符. (5)下面地函数MyStrcmp()用于实现函数strcmp()地功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符地ASCII码值之差作为函数值返回. 6.4 编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和. 6.5 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数地位置对换后,再输出调整后地数组. 6.6 输入5×5阶地矩阵,编程实现: (1)求两条对角线上地各元素之和. (2)求两条对角线上行、列下标均为偶数地各元素之积. 6.7 编程打印如下形式地杨辉三角形. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 6.8 编程将下列矩阵中地元素向右移动一列,最右一列移至第一列. 1 4 6 8 10 12 6.9 利用公式c ij=a ij+b ij计算m×n阶矩阵A和m×n阶矩阵B之和.已知a ij为矩阵A地元素,

b ij 为矩阵B 地元素, c ij 为矩阵C 地元素(i =1,2,…,m ;j =1,2,…,n ).*6.10 利用公式c ij =∑=n k ik a 1 *b kj 计算矩阵A 和矩阵B 之积.已知a ij 为m ×n 阶矩阵A 地元素 (i =1,2,…,m ;j =1,2,…,n ),b ij 为n ×m 阶矩阵B 地元素(i =1,2,…,n ;j =1,2,…,m ),c ij 为m ×m 阶矩阵C 地元素(i =1,2,…,m ;j =1,2,…,m ).6.11 输入一行字符,统计其中地英文字符、数字字符、空格和其他字符地个数. 6.12 编写一个函数Inverse(),实现将字符数组中地字符串逆序存放地功能. 6.13 不用函数strcat(),编程实现字符串连接函数strcat()地功能,将字符串srcStr 连接到字符串dstStr 地尾部.

DSP原理及应用-(修订版)--课后习题答案

第一章: 1、数字信号处理的实现方法一般有哪几种? 答:数字信号处理的实现是用硬件软件或软硬结合的方法来实现各种算法。(1) 在通用的计算机上用软件实现;(2) 在通用计算机系统中加上专用的加速处理机实现;(3) 用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制;(4)用通用的可编程 DSP 芯片实现。与单片机相比,DSP 芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;(5) 用专用的 DSP 芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用 DSP 芯片很难实现( 6)用基于通用 dsp 核的asic 芯片实现。 2、简单的叙述一下 dsp 芯片的发展概况? 答:第一阶段, DSP 的雏形阶段( 1980 年前后)。代表产品: S2811。主要用途:军事或航空航天部门。第二阶段, DSP 的成熟阶段( 1990 年前后)。代表产品: TI 公司的 TMS320C20 主要用途:通信、计算机领域。第三阶段, DSP 的完善阶段( 2000 年以后)。代表产品:TI 公司的 TMS320C54 主要用途:各个行业领域。 3、可编程 dsp 芯片有哪些特点? 答: 1、采用哈佛结构( 1)冯。诺依曼结构,( 2)哈佛结构( 3)改进型哈佛结构2、采用多总线结构 3.采用流水线技术4、配有专用的硬件乘法-累加器5、具有特殊的 dsp 指令6、快速的指令周期7、硬件配置强8、支持多处理器结构9、省电管理和低功耗 4、什么是哈佛结构和冯。诺依曼结构?它们有什么区别? 答:哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。冯。诺依曼结构:该结构采用单存储空间,即程序指令和数据共 用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。 区别:哈佛:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。冯:当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。 5、什么是流水线技术? 答:每条指令可通过片内多功能单元完成取指、译码、取操作数和执行等多个步骤,实现多条指令的并行执行,从而在不提高系统时钟频率的条件下减少每条指令的执行时间。利用这种流水线结构,加上执行重复操作,就能保证在单指令周期内完成数字信号处理中用得最多的乘法 - 累加运算。(图)6、什么是定点 dsp 芯片和浮点 dsp 芯片?它们各有什么优缺点? 答:若数据以定点格式工作的称为定点 DSP 芯片。若数据以浮点格式工作的称为浮点 DSP芯片。

DSP原理及应用教学大纲

《DSP原理及应用》实验教学大纲 学习DSP的目的是应用其进行研发及工程实践,故实验是《DSP原理及应用》课程学习中的重要环节。通过实验,可以对DSP器件的功能进行实际操作,并在实际操作中熟悉器件的使用特性。实验是DSP应用的基本内容,为学生今后从事相关工作打下基础。 本实验有以下任务:(1)掌握如何使用DSP仿真平台;(2)掌握DSP内部结构和工作原理;(3)熟悉DSP 的指令系统;(4)熟悉用DSP实现各种基本算法。通过实验使学生加深对DSP基本理论、硬件系统、指令系统的理解,学会用仿真器进行开发,使书本上枯燥的内容变得生动,增加学生学习本课程的兴趣。此外学生的实验技能、动手能力、分析问题、解决问题的能力都将得到培养,为进一步进行工程实践奠定良好的基础。 三、实验方式 1、实际操作—要求根据目的要求完成各实验项目,对实验结果进行分析整理并写出实验报告。 2、上机设计仿真—学生先根据实验要求设计出实验电路和实验步骤,后上机进行设计仿真,最后记录仿真结果并分析写出实验报告。 3、基本要求: (1)掌握DSP仿真开发系统的结构。掌握仿真器的连接和安装,熟悉开发软件Code Composer Studio 的界面和基本操作。 (2)掌握TMS320C54x芯片的硬件结构,了解CPU、寄存器和存储器中各数据的含义。 (3)了解TMS320C54x芯片外部设备的工作原理,熟悉数据的处理过程和中断。 (4)了解TMS320C54x芯片的指令系统,熟悉各种指令和基本算法。 (5)能够独立完成简单小程序的编写和调试。 通过实验,使学生基本具有DSP的开发能力。 四、实验项目设置、学时分配及基本要求

DSP技术与应用习题库及答案王忠勇讲解

一、填空题 第一章 1.数字信号处理特点大量的实时计算(FIR IIR FFT),数据具有高度重复(乘积和操作在滤波、卷积和FFT中等常见)。 2.信号处理的作用信号改善;信号检测、估计等 3.信号处理的方法信号波形分析/变换、滤波、现代谱估计/分析、自适应滤波等。 4.信息系统包括采集、传输、处理、等。5.数字信号处理常用算法有FIR 滤波、IIR 滤波、离散傅里叶变换、卷积、离散余弦变换等 6.处理器速度的提高得益于器件水平、处理器结构、并行技术等。7.DSP结构特点包括采用哈佛结构体系、采用流水线技术、硬件乘法器、多处理单元、特殊的DSP指令。 8.DSP芯片按用途分为通用型DSP 、专用型DSP 。9.DSP芯片按数据格式分为浮点型、定点型。 第二章 1.C28x芯片具有C27X、C28X、C2XLP操作模式。2.C28x芯片模式选择由ST1中的AMODE和OBJMODE位组合来选定模式。 3.CPU内核由CPU、仿真逻辑、接口组成。 4.CPU主要特性是保护流水线、独立寄存器空间算术逻辑单元(ALU)、地址寄存器算术单元(ARAU)、循环移位器乘法器。 5.CPU信号包括存储器接口信号、时钟和控制信号、复位和中断信号、仿真信号。 6.TMS320F2812组成特点是32位、定点、改进哈佛结构、循环的寻址方式。7.存储器接口有3组地址总线。 8.存储器接口有3组数据总线。 9.存储器接口地址总线有PAB、DRAB、DWAB、 10.CPU中断控制寄存器有IFR 、IER 、DBGIER。 11.ACC累加器是32位的,可表示为ACC、AH、AL。12.被乘数寄存器是32 位的,可表示为XT、T、TL 。13.乘数结果寄存器是32位的,可表示为P 、PH、PL。14.数据页指针寄存器16 位的,有65536 页,每页有64个存储单元。数据存储空间容量是4M字。 15.堆栈指针复位后SP指向地址是0x000400h 。 第三章 1.DSP芯片内部包含存储器类型有片内双访问存储器(DARAM)、片内单访问程序/数据RAM(SARAM)、掩膜型片内ROM存储器、闪速存储器(Flash)一次性可编程存储器(OTP)。 2.C28x具有32 位的数据地址和22位的程序地址,总地址空间可达4G字(每个字16位)的数据空间和4M字的程序空间。 3.在程序地址中保留了64个地址作为CPU的32个中断向量。

大学MOOC哈工大C语言程序设计精髓第六周编程题答案

大学M O O C哈工大C语言程序设计精髓第六周 编程题答案 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出?Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 #include<> #include <> int main() { char score[100]; int flag = 0, i, s; char grade; printf("Please input score:\n"); while (1) { flag=0; scanf("%s", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') { continue;

} else { flag = 1; break; } } s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf("Input error!\n"); printf("Please input score:\n"); continue; } else{ break; } } s = atoi(score); if (s >= 90) {

DSP控制器原理及技术实验报告

实验二定时器 一.实验目的 1. 熟悉如何编写 28335 的中断服务程序; 2. 掌握长时间间隔的定时器的处理。 3. 掌握片外设的设置方法。 二.实验容 1. 系统初始化; 2. DSP 的初始设置; 3. 定时中断的编写; 三.实验要求 1. 通过本实验,熟悉中断的结构及用中断程序控制程序流程,掌握定时器的应用; 2. 分析给定程序代码功能,并在实验报告中给出程序流程图和必要的注释; 3. 改变定时时间,下载运行,观察结果,在报告中计算出运行时间。 四.实验背景知识 TMS320F28335 片上有 3 个 32-位 CPU 定时器,分别被称为 CPU 定时器 0、1 和2。每个定时器中均有一个 32-位减计数器,当计数器减到 0 时,产生一个中断。其中,CPU 定时器 0 的中断 TINT0 为 PIE 中断,CPU 定时器 1 的中断 TINT1 直接连到 CPU中断的 INT13,CPU 定时器 2 的中断 TINT2 直接连到 CPU 中断的 INT14。如下图所示。 CPU 定时器 2 保留为实时操作系统(如 DSP BIOS)使用,而 CPU 定时器 0、 1 则可被用户使用,SEED-DEC28335 未使用 CPU 定时器 0,用户可以根据应用的需要灵活使

用。 CPU 定时器的原理框图和定时中断如下图所示。 定时器在工作过程中,首先用 32 位计数寄存器(TIMH:TIM)装载周期寄存器(PRDH:PRD)部的值。计数寄存器根据 SYSCLKOUT 时钟递减计数。当计数寄存器等于 0 时,定时器中断输出产生一个中断脉冲。 定时器计数器(TIMH: TIM): TIM 寄存器保存当前 32 位定时器计数值的低 16 位,TIMH 寄存器保存高 16 位。每隔(TDDRH:TDDR+1)个时钟周期 TIMH:TIM 减 1,当 TIMH:TIM 递减到 0 时,TIMH:TIM 寄存器重新装载 PRDH:PRD 寄存器保存的周期值,并产生定时器中断TINT信号。 定时器周期寄存器(PRDH:PRD):PRD 寄存器保存 32 位周期值的低 16 位,PRDH 保存高 16 位。当 TIMH: TIM 递减到零时,在下次定时周期开始之前 TIMH: TIM 寄存器重新装载 PRDH:PRD 寄存器保存的周期值;当用户将定时器控制寄存器(TCR)的定时器重新装载位(TRB)置位时, TIMH: TIM 也会重新装载 PRDH: PRD 寄存器保存的周期值。 五.实验准备 1 实验硬件准备 1. 将 DSP 仿真器与计算机连接好; 2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC28335 单元的 J18 相连接; 3. 启动计算机,当计算机启动后,打开SEED-DTK28335的电源。观察 SEED-DTK_MBoard 单元的+5V,+3.3V,+15V,-15V 的电源指示灯灯及 SEED-DEC28335 的电源指示灯 D2 是否均亮;若有不亮,断开电源,检查电源。 2 实验软件准备

DSP原理及应用邹彦主编课后答案

第一章 1、数字信号处理实现方法一般有几种?答:课本P2(2.数字信号处理实现) 2、简要地叙述DSP芯片的发展概况。答:课本P2( DSP芯片的发展概况) 3、可编程DSP芯片有哪些特点?答:课本P3( DSP芯片的特点) 4、什么是哈佛结构和冯诺依曼结构?他们有什么区别?答:课本P3-P4(1.采用哈佛结构) 5、什么是流水线技术?答:课本P5(3.采用流水线技术) 6、什么是定点DSP芯片和浮点DSP芯片?它们各有什么优缺点? 答:定点DSP芯片按照定点的数据格式进行工作,其数据长度通常为16位、24位、32位。 定点DSP的特点:体积小、成本低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。 浮点DSP芯片按照浮点的数据格式进行工作,其数据长度通常为32位、40位。 由于浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。但它的硬件结构相对复杂、功耗较大,且比定点DSP芯片的价格高。通常,浮点DSP芯片使用在对数据动态范围和精度要求较高的系统中。 7、DSP技术发展趋势主要体现在哪些方面?答:课本P9(发展技术趋势) 8、简述DSP系统的构成和工作过程。答:课本P10(系统的构成) 9、简述DSP系统的设计步骤。答:课本P12(系统的设计过程) 10、DSP系统有哪些特点?答:课本P11(系统的特点) 11、在进行DSP系统设计时,应如何选择合理的DSP芯片?答:课本P13(芯片的选择) 12、TMS320VC5416-160的指令周期是多少毫秒?它的运算速度是多少MIPS? 解:f=160MHz,所以T=1/160M==;运算速度=160MIPS 第二章 1、TMS320C54x芯片的基本结构都包括哪些部分?答:课本P17(各个部分功能如下) 2、TMS320C54x芯片的CPU主要由几部分组成?答:课本P18( 3、处理器工作方式状态寄存器PMST中的MP/MC、OVLY和DROM3个状态位对’C54x的存储空间结构有何影响?答:课本P34(PMST寄存器各状态位的功能表) 4、TMS320C54x芯片的内外设主要包括哪些电路?答:课本P40(’C54x的片内外设电路) 5、TMS320C54x芯片的流水线操作共有多少个操作阶段?每个操作阶段执行什么任务?完成一条指令都需要哪些操作周期?答:课本P45(1.流水线操作的概念) 6、TMS320C54x芯片的流水线冲突是怎样产生的?有哪些方法可以避免流水线冲突? 答:由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。解决的办法:①由CPU通过延时自动解决;②通过程序解决,如重新安排指令或插入空操作指令。 7、TMS320C54x芯片的串行口有哪几种类型?答:课本P42(TMS320C54x芯片的串行口) 8、TMS320VC5402 共有多少可屏蔽中断?它们分别是什么?NMI和RS属于哪一类中断源?答:课本P56(对VC5402来说,这13个中断的硬件名称为...... RS 和NMI属于外部硬件中断。) 9、试分析下列程序的流水线冲突,画出流水线操作图。如何解决流水线冲突?(解题时参考课本P52【例】) STLM A,AR0 STM #10,AR1 LD *AR1,B

哈工大C语言2015年试卷

哈工大二〇一五年春季学期 C 语言与数据结构 试 题 题号 一 二 三 四 五 六 七 八 九 十 十一 十二 总分 分数 学号 姓名 一、填空题。(每题2分,共14分) 1.列举出三种逻辑运算符_____、_____、_____。 2.多分支选择语句中switch 后面括号的表达式的值的类型应为___________。 3.以有符号的十进制整数形式输入变量a ,则该语句为______________________。 4.初始化二维数组 int a[2][3]; 则*a 表示____________________。 5.for(i=1,sum=0;i<100;i++) sum=sum+i;该语句运行结束后,sum 的值为_____。 6.C 语言规定标识符的第一个字符必须为_________或_________。 7.定义结构体变量如下:struct stu student1,*p ;则引用结构体成员num 的方法多种,请写出任意两种_______________________________ ____________________________________________________________________。 二、画出三种基本结构的流程图 (6分)

三、在二维数组中,若某一位置上的元素在该行中最小,而在该列中最大,则该元素即为该二维数组的鞍点。要求输入一个二维数组,当鞍点存在时,把鞍点找出来并输出。(10分)

四、有一个函数: 5(0)21(08)4(8)x x y x x x x

中国大学MOOC 哈工大 C语言程序设计精髓第六周编程题答案

6.1 下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 #include #include int main() { char score[100]; int flag = 0, i, s; char grade; printf("Please input score:\n"); while (1) { flag=0; scanf("%s", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') { continue; } else { flag = 1; break; } } s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf("Input error!\n"); printf("Please input score:\n"); continue; } else{ break; } } s = atoi(score); if (s >= 90)

grade = 'A'; } else if (s >= 80) { grade = 'B'; } else if (s >= 70) { grade = 'C'; } else if (s >= 60) { grade = 'D'; } else { grade = 'E'; } printf("grade: %c\n", grade); return 0; } 6.2 编程计算a+aa+aaa+…+aa…a(n个a)的值(4分) 题目内容: 编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。 #include #include int main() { int n,a,i,j; double p=0,q=0; printf("Input a,n:\n"); scanf( "%d,%d",&a,&n); for(i=1;i<=n;i++) { for(j=0,p=0;j

相关主题