DSP与数字信号处理作业
《数字信号处理与DSP器件》作业及参考答案

《数字信号处理与DSP器件》作业及参考答案《数字信号处理与DSP器件》作业及参考答案丁喜冬中⼭⼤学物理科学与⼯程技术学院第1章概述思考题1, P12: 1,2,3, 7,9,11。
2, 查看TI公司⽹站,找出3~4种该公司⽬前主推的DSP芯⽚的型号和价格,下载datasheet。
参考答案:1、DSP算法的实现⽅法主要有哪些?答:(1)在通⽤的计算机(如PC)上涌软件(如C语⾔)实现。
(2)在通⽤计算机系统中加上专⽤的加速处理机实现。
(3)⽤通⽤的单⽚机(如MCS-51、MSP430系列等)实现。
(4)⽤通⽤的可编程DSP芯⽚实现。
(5)⽤专⽤的DSP芯⽚实现。
2、简述DSP应⽤系统的典型构成和特点。
答:DSP应⽤系统的典型构成如下所⽰:3、简述DSP应⽤系统的⼀般设计过程。
答:定义系统性能指标→采⽤⾼级语⾔进⾏性能模拟→设计实时DSP应⽤系统→借助开发⼯具进⾏软硬件调试→系统集成与独⽴系统运⾏。
7、什么是定点DSP芯⽚和浮点DSP芯⽚?各有什么优缺点?答:定点DSP芯⽚:数据以定点格式⼯作的DSP芯⽚。
动态范围⼤,精度⾼,字长为32位(可扩⾄40),程序开发周期短;但功耗⾼,速度慢,价格⾼。
浮点DSP芯⽚:数据以浮点格式⼯作的DSP芯⽚。
功耗低,速度快,价格低;但动态范围⼩,精度低,字长为16位,程序开发周期长。
9、TMS32VC5416-160⼯作在160MHz时的指令周期是多少ns?它的运算速度是多少MIPS?答:当⼯作在100MHz时,其指令周期和运算速度⼜是多少?在160MHz时的指令周期是6.25ns,运算速度是160MIPS;在100MHz时的指令周期是10ns,运算速度是100MIPS。
11、写出以下缩写词的中英⽂全称:DSP、TI、MAC、MIPS、MOPS、MFLOPS、BOPS、DIP、PGA、PLCC、PQFP、PWM答:PGA、PLCC、PQFP、PWM。
DSP:Digital Signal Processing 数字信号处理TI:Texas Instruments 德州仪器MAC:Multiplier and Accumulator 乘累加单元MIPS:Million Instructions Per Second每秒执⾏百万条指令MOPS:Million Operations Per Second每秒执⾏百万次操作MFLOPS:Million Floating-point Operations Per Second每秒执⾏百万次浮点操作BOPS:Billion Operations Per Second每秒执⾏⼗亿次操作DIP:Dual In-line Package 双列直插式封装PGA:Pin Grid Array 直插式封装PLCC:Plastic Leaded Chip Carrier带引线的塑料芯⽚载体PQFP:Plastic Quad Flat Pack 塑料扁平⽅形封装PWM:Pulse Width Modulation 脉冲宽度调制⼆, TI公司⽬前主推的DSP芯⽚的型号和价格:答:TI公司现在主要推出三个系列的dsp芯⽚,其分为从各系列芯⽚的数量来看,C6000⾼性能dsp仍然是当下主流dsp。
《数字信号处理与DSP课程设计》任务书

《数字信号处理与DSP课程设计》任务书
1.设计一个采样频率为21.5/4KHz的FIR滤波器,要求:通带截止频率为fp=1kHz,阻带起始频带fst=1.5kHz,通带允许的最大衰减为1Db,阻带应达到的最小衰减为50dB。
FIR滤波器的DSP编程采用C语言实现。
在CCS Simulator 中调试。
调试成功后,进行以下步骤。
2.由实验箱信号发生器产生1KHz的模拟方波信号,然后进行AD转换,存放在内存单元中观察这些数据的波形,然后通过DA转换后输出,在示波器上观察输出方波信号。
3.在串口数据的采集和发送程序中插入设计好的FIR低通滤波器。
对采集的方波信号进行数字低通滤波得到基波分量,存放在内存单元中观察这些数据的波形,并将滤波得到的基波分量通过DA转换后输出,在示波器上观察输出信号。
* 4.扩展要求(根据实际进度选做):
1)对采集的方波信号进行FFT变换,在CCS中分析方波频谱。
2)采集4KHz的模拟三角波或正弦波信号,并在CCS中进行Huffman编码。
DSP作业1-.

DSP作业1-.1.举几个DSP应用的例子,并说明DSP在系统中承担的任务。
(1通信:在蜂窝电话中,DSP协调各种芯片合理而快速的工作,并兼有开发和测试的功能。
(2军事:在雷达图像处理中,使用DSP进行目标识别和实时飞行轨迹估计。
(3家用电器:在高清晰数字电视中,采用DSP实现关键的MPEG2译码电路。
2.数字信号处理有哪几种实现方式,各有什么优缺点或特点?(1利用X86处理器完成优点:处理器选择范围较宽,主板及外设资源丰富,有多种操作系统可供选择,开发、调试较为方便。
缺点:数字信号处理能力不强,硬件组成较为复杂,系统体积、重量较大,功耗较高,抗环境影响能力较弱。
(2利用通用微处理器完成优点:可选范围广,硬件组成简单,系统功耗低,适应环境能力强。
缺点:信号处理的效率较低,内部DMA通道较少。
(3利用可编程逻辑阵列(FPGA进行实现优点:适合高速信号处理,具有专用数字信号处理结构。
缺点:开发需要较深的硬件基础,调试困难。
(4利用数字信号处理器实现优点:大规模集成性、稳定性好,精度高,可编程性,高速性能,可嵌入性,接口和集成方便。
缺点:成本较单片机高,甚至高于PC机,DSP技术更新速度快,开发和调试工具不尽完善,不如PC机方式编程和修改方便。
(5用ASIC芯片实现优点:集成程度高,简化系统结构。
缺点:功能单一,一般用于大批量消费电子。
3.简述数字信号处理器从哪几个方面提高做数字信号处理的能力。
存储器及总线结构;流水线;硬件乘法累加单元;零开销循环,特殊的寻址方式;高效的特殊指令;丰富的运算类指令。
4.比较TMS320C55x 系列DSP和已学过的单片机和通用微处理器的结构和指令系统的特点。
与单片机及通用微处理器相比,DSP有以下特点:分工精细,部件更多,硬件配置强;DSP字长为15/16位,而单片机字长仅为8位,运算精度高;流水线结构使在数字信号处理中用的最多的乘法运算在一个时钟周期内完成,而51单片机需要更多个时钟周期;55系列DSP内有12条独立总线,大大提高了运算能力,能够完成更复杂的功能;指令系统丰富,尤其运算类指令很多,更适宜做DSP运算。
数字信号处理实验课大作业

DSP 实验课大作业设计一 实验目的 在DSP 上实现线性调频信号的脉冲压缩、上实现线性调频信号的脉冲压缩、动目标显示(动目标显示(动目标显示(MTI MTI MTI)和动目标检测)和动目标检测)和动目标检测(MTD)(MTD)(MTD),,并将结果与MATLAB 上的结果进行误差仿真。
上的结果进行误差仿真。
二 实验内容1. MATLAB 仿真仿真设定带宽、脉宽、采样率、脉冲重复频率,用MATLAB 产生16个脉冲的LFM LFM,每个脉冲,每个脉冲有4个目标(静止,低速,高速),依次做:,依次做:1) 脉冲压缩;脉冲压缩;2) 相邻2脉冲做MTI MTI,产生,产生15个脉冲;个脉冲;3) 16个脉冲到齐后,做MTD MTD,输出,输出16个多普勒通道个多普勒通道4) 改变PRF 后,利用两次PRF 下不同的速度结果,求不模糊速度下不同的速度结果,求不模糊速度2. DSP 实现实现将MATLAB 产生的信号,在visual dsp 中做频域脉压、中做频域脉压、MTI MTI MTI、、MTD MTD,将,将MTI 和MTD 结果导入Matlab ,并将其结果与MATLAB 的结果作比较。
三 实验原理1.1. 频域脉冲压缩原理频域脉冲压缩原理一般通过匹配滤波实现脉冲压缩。
在接收机中设置一个与发射信号频率相匹配的压缩网络使经过调制的宽脉冲的发射信号(一般认为也是接受机输入端的回波信号)变成窄脉冲,使之得到良好的距离分辨力,这个过程就称为“脉冲压缩”。
而这个脉冲压缩网络实际上就是一个匹配滤波器网络。
络实际上就是一个匹配滤波器网络。
2.2. MTI 原理原理MTI MTI((Moving Target Indication Indication)即动目标显示是利用运动目标带来的多普勒频)即动目标显示是利用运动目标带来的多普勒频移来消除静止杂波。
当雷达按照一定的周期辐射LFM 信号时,目标与雷达的距离不同会使得回波的相位有所不同。
南京理工大学DSP(数字信号处理)小作文

音乐音效功能分析1 选题原因目前用户数量较多的音乐软件,如QQ 音乐,网易云音乐,酷狗音乐等。
这些听歌软件都有一个音乐音效的功能,用户可以根据个人的喜好选择不同的音效。
音效相关的处理手段与所学的DSP 课程相关度较大。
故以此例进行分析。
2 功能分析音乐的音效功能,也即声音信号处理技术。
将外界环境中的音乐模拟信号采样得到数字信号,然后对离散的数字信号进行处理,最后输出已处理的音频信号,实现不同的音乐音效。
3 原理分析3.1 采样将麦克风处的音乐模拟信号以一定的采样频率T f 进行采样,由于人耳所能辨识的声音频率在20~20Hz KHz ,根据奈奎斯特采样定理,要从抽样信号中不失真地恢复原信号,抽样信号应大于2倍的信号最高频率,因此在实际应用中,一般选取的采样频率为48KHz 或者96KHz 。
3.2 量化编码将采集到的数字音乐信号的幅值进行二进制量化编码,量化位数会影响采样结果的准确性。
一般选取的量化位数是8位或者16位。
3.3 数据处理3.3.1 混响音乐的音效有很多种,这里以“混响”音效为例进行分析。
混响,在一定范围内(如教室、客厅、浴室等),进行语音播放时,对于接收者来说,接收到的信号,除播放器直接传来的信号,还包括经物体(墙壁、门窗等)反射后的信号,并且伴有信号幅度的衰减。
3.3.2 数字信号处理模型混响信号可以看作是直接信号和各阶延迟信号的叠加,设[]y n 为接收信号,[]x n 为直接信号,且[]x n 为因果信号,对于0,[]0n x n <= 。
则[]y n 的表达式如下:2[][][][2][]k y n x n ax n m a x n m a x n km =+−+−++−+ (1.1)其中,a 表示衰减常数(01a << );m 表示延迟量,为正整数。
对式1.1两边取Z 变换,得到:()22()()11()1m m k km m Y z X z az a z a z X z az −−−−=+++++=− (1.2)因此,可以得到系统函数的表达式如下: 11()()1m mH z z a az −=>− (1.3) 由于,01a <<,所以101m a <<,因此因果系统的收敛域包括单位圆。
《数字信号处理与DSP实现技术》课后习题与参考答案

21世纪高等院校电子信息类规划教材安徽省高等学校“十二五”省级规划教材数字信号处理与DSP实现技术课后习题与参考答案主编:陈帅副主编:沈晓波淮南师范学院2015.11第1章绪论思考题1.什么是数字信号?2.什么是数字信号处理?3.数字信号处理系统的实现方法有哪些?4.数字信号处理有哪些应用?5.数字信号处理包含哪些内容?6.数字信号处理的特点是什么?第1章绪论参考答案1.时间和幅度都离散的信号称为数字信号,即信号的时间取离散的值,幅度也取离散的值。
2.数字信号处理是指在数字领域进行数字信号的加工(变换、运算等),即输入是数字信号,采用数字信号处理方法进行处理,输出仍然是数字信号。
3.数字信号处理系统的实现方法有①通用软件方法实现系统;②专用加速处理机方法;③软硬件结合的嵌入式处理方法;④硬件方法。
4.数字信号处理在通信、计算机网络、雷达、自动控制、地球物理、声学、天文、生物医学、消费电子产品等各个领域均有应用,是信息产业的核心技术之一。
比如信源编码、信道编码、多路复用、数据压缩,数字语音、汽车多媒体、MP3/MP4/MP5、数字扫面仪、数字电视机顶盒、医院监视系统、生物指纹系统等。
5.数字信号处理主要包含以下几个方面的内容①离散线性时不变系统理论。
包括时域、频域、各种变换域。
②频谱分析。
FFT谱分析方法及统计分析方法,也包括有限字长效应谱分析。
③数字滤波器设计及滤波过程的实现(包括有限字长效应)。
④时频-信号分析(短时傅氏变换),小波变换,时-频能量分布。
⑤多维信号处理(压缩与编码及其在多煤体中的应用)。
⑥非线性信号处理。
⑦随机信号处理。
⑧模式识别人工神经网络。
⑨信号处理单片机(DSP)及各种专用芯片(ASIC),信号处理系统实现。
6.数字信号处理主要具有4个方面优点:①数字信号精度高;②数字信号处理灵活性强;③数字信号处理可实现模拟信号难以实现的特性;④数字信号处理可以实现多维信号处理。
数字信号处理主要存在3个方面缺点:①需要模拟接口等增加了系统复杂性;②由于取样定理的约束其应用的频率受到限制;③功耗大。
数字信号处理_DSP__刘兴钊_习题答案_完整版

(A)
(B) (B) T {x[n]} = x[n] − u[n + 1] (D) T {x[ n]} =
k = n −5
(C) T {x[ n]} = log10 x[ n] 1-4 下列系统线性且时不变的是 (A) T { x[ n ]} =
∑
n +5
x[k ]
(B)
n + n0 k = n − n0
∑ x[k ] ∑ (−1)
x[n]
-2
图 T1-4 解: y[n] = −2δ [n] + 4δ [n − 1] − δ [n − 2] − δ [n − 3] − 2δ [n − 4] + 3δ [n − 6] + δ [n − 7]
1-20 设 x[n] = R4 [n] ,画出其偶对称分量 xe [ n] 和奇对称分量 xo [ n ] 。
∑
∞
(−1) n
k =−∞
∑
∞
x[k ]h[n − k ] =
∞ k
k =−∞ ∞
∑
∞
x[k ] ∑ (−1) n h[n − k ]
n =−∞ n
∞
∑ x[k ](−1) ∑ (−1) h[n] 1-19 求图 T1-4 中两个序列的卷积 y [ n ] 。
= h[n '] =
k =−∞ n '=−∞ k =−∞ n =−∞
k k
(c)
⎛ ⎞ ( x[ n]* h1[ n]) * h2 [ n] = ⎜ ∑ x[ k ]h1[ n − k ] ⎟ * h2 [n] ⎝ k ⎠ ⎛ ⎞ ⎛ ⎞ = ∑ ⎜ ∑ x[k ]h1[ m − k ] ⎟h2 [ n − m] = ∑ x[k ] ⎜ ∑ h2 [n − m]h1[ m − k ] ⎟ m ⎝ k k ⎠ ⎝ m ⎠ ⎛ ⎞ = ∑ x[ k ] ⎜ ∑ h2 [ n − ( m '+ k )]h1[ m '] ⎟ k ⎝ m' ⎠ ⎛ ⎞ = ∑ x[ k ] ⎜ ∑ h2 [( n − k ) − m ')]h1[m '] ⎟ = x[ n]* ( h1[ n]* h2 [ n]) k ⎝ m' ⎠
《数字信号处理与DSP实现技术》课后习题与参考答案.

21世纪高等院校电子信息类规划教材安徽省高等学校“十二五”省级规划教材数字信号处理与DSP实现技术课后习题与参考答案主编:陈帅副主编:沈晓波淮南师范学院2015.11第1章绪论思考题1.什么是数字信号?2.什么是数字信号处理?3.数字信号处理系统的实现方法有哪些?4.数字信号处理有哪些应用?5.数字信号处理包含哪些内容?6.数字信号处理的特点是什么?第1章绪论参考答案1.时间和幅度都离散的信号称为数字信号,即信号的时间取离散的值,幅度也取离散的值。
2.数字信号处理是指在数字领域进行数字信号的加工(变换、运算等),即输入是数字信号,采用数字信号处理方法进行处理,输出仍然是数字信号。
3.数字信号处理系统的实现方法有①通用软件方法实现系统;②专用加速处理机方法;③软硬件结合的嵌入式处理方法;④硬件方法。
4.数字信号处理在通信、计算机网络、雷达、自动控制、地球物理、声学、天文、生物医学、消费电子产品等各个领域均有应用,是信息产业的核心技术之一。
比如信源编码、信道编码、多路复用、数据压缩,数字语音、汽车多媒体、MP3/MP4/MP5、数字扫面仪、数字电视机顶盒、医院监视系统、生物指纹系统等。
5.数字信号处理主要包含以下几个方面的内容①离散线性时不变系统理论。
包括时域、频域、各种变换域。
②频谱分析。
FFT谱分析方法及统计分析方法,也包括有限字长效应谱分析。
③数字滤波器设计及滤波过程的实现(包括有限字长效应)。
④时频-信号分析(短时傅氏变换),小波变换,时-频能量分布。
⑤多维信号处理(压缩与编码及其在多煤体中的应用)。
⑥非线性信号处理。
⑦随机信号处理。
⑧模式识别人工神经网络。
⑨信号处理单片机(DSP)及各种专用芯片(ASIC),信号处理系统实现。
6.数字信号处理主要具有4个方面优点:①数字信号精度高;②数字信号处理灵活性强;③数字信号处理可实现模拟信号难以实现的特性;④数字信号处理可以实现多维信号处理。
数字信号处理主要存在3个方面缺点:①需要模拟接口等增加了系统复杂性;②由于取样定理的约束其应用的频率受到限制;③功耗大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、什么是DSP?简述DSPs的特点?简述DSPs与MCU、FPGA、ARM的区别?学习DSP开发需要哪些知识?学习DSP开发需要构建什么开发环境?(15分)答:(1)DSP是Digital Signal Processing(数字信号处理的理论和方法)的缩写,同时也是Digital Signal Processor(数字信号处理的可编程微处理器)的缩写。
通常流过器件的电压、电流信号都是时间上连续的模拟信号,可以通过A/D器件对连续的模拟信号进行采样,转换成时间上离散的脉冲信号,然后对这些脉冲信号量化、编码,转化成由0和1构成的二进制编码,也就是常说的数字信号。
DSP能够对这些数字信号进行变换、滤波等处理,还可以进行各种各样复杂的运算,来实现预期的目标。
(2)DSP既然是特别适合于数学信号处理运算的微处理器,那么根据数字信号处理的要求,DSP芯片一般具有下面所述的主要特点:1)程序空间和数据空间分开,CPU可以同时访问指令和数据;2)在一个指令周期内可以完成一次乘法和一次加法运算;3)片内具有快速RAM,通常可以通过独立的数据总线在程序空间和数据空间同时访问;4)具有低开销和无开销循环及跳转的硬件支持;5)具有快速的中断处理和硬件I/O支持;6)可以并行执行多个操作;7)支持流水线操作,使得取址、译码和执行等操作可以重复执行。
(3)DSP采用的是哈佛结构,数据空间和存储空间是分开的,通过独立的数据总线在数据空间和程序空间同时访问。
而MCU采用的是冯·诺依曼结构,数据空间和存储空间共用一个存储器空间,通过一组总线(地址总线和数据总线)连接到CPU)。
很显然,在运算处理能力上,MCU不如DSP;但是MCU价格便宜,在对性能要求不是很高的情况下,还是很具有优势的。
ARM是Advanced RISC(精简指令集)Machines的缩写是面向低运算市场的RISC微处理器。
ARM具有比较强的事务管理功能,适合用来跑跑界面、操作系统等,其优势主要体现在控制方面,像手持设备90%左右的市场份额均被其占有。
而DSP的优势是其强大的数据处理能力和较高的运算速度,例如加密/解密、调制/解调等。
FPGA是Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路中集成度最高的一种。
FPGA采用了逻辑单元阵列LCA(Logical Cell Array)的概念,内部包括了可配置逻辑模块CLB、输入/输出模块IOB、内部连线三个部分。
用户可以对FPGA内部的逻辑模块和I/O模块进行重置配置,已实现用户自己的逻辑。
它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。
使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性;同时FPGA可以用VHDL或Verilog HDL来编程,灵活性强。
由于FPGA能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。
当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级和除错。
但价格比较高。
(4)无论学习哪一款微处理器,无关乎两个部分:一个是硬件,一个是软件。
硬件部分,最好有过MCU或者ARM之类相关微处理器的开发经验,因为硬件上,各个处理器之间是有许多共同点的,设计时处理的方法很多是一样的。
软件部分,需要会C或者C++,当然,如果会汇编更好。
除了这两方面的技能之外,如果在信号处理理论方面有一些基础,例如知道时域与频域、s域、z域的变换,知道FFT、各种数字滤波器的知识。
(5)CCS(Code Composer Studio)是开发DSP时所需的软件开发环境,即编写、调试DSP代码都需要在CCS软件中进行。
2、经典的数字信号处理的算法主要包括哪些内容?试分别简述之?(15分)答:经典的数字信号处理的算法主要包括FFT算法、DET算法和CORDIC算法。
FFT算法是一种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform)。
FFT算法可分为按时间抽取算法和按频率抽取算法;DFT,离散傅立叶变换,是一种针对离散信号进行的变换,适合计算机数据处理的要求,将一个长度为N离散的信号,分解为N/2+1个余弦波和N/2+1个正弦波。
CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.V older1于1959年首次提出,主要用于三角函数、双曲线、指数、对数的计算。
该算法通过基本的加和移位运算代替乘法运算,使得矢量的旋转和定向的计算不再需要三角函数、乘法、开方、反三角、指数等函数。
3、简述TI公司的DSPs的产品系列及其应用范围?(15分)答:目前,TI公司在市场上主要有三大系列DSP产品:1)TMS320C2000系列,面向数字控制、运动控制领域,主要包括:TMS320C24xx/TMS320F24xx、TMS320C28xx/TMS320F28xx等。
2)TMS320C5000系列,面向低功耗、手持设备、无线终端应用领域,主要包括:TMS320C54x、TMS320C54xx、TMS320C55xx等。
3)TMS320C6000系列,面向高性能、多功能、复杂应用领域,例如图像处理,主要包括:TMS320C62xx、TMS320C64xx、TMS320C67xx 等。
此外,还有面向低端应用。
价格可以和MCU竞争、功能稍微减弱的Piccolo平台的产品,主要有TMS320F2803x/2x。
面向高端视频处理的达芬奇平台,例如DM642/DM6437/DM6467DENG,有面向移动终端的双核处理器OMAP平台,例如OMAP3530。
4、结合MATLAB、DSP技术谈谈基于DSPs的FFT的开发过程?(15分)答:MATLAB中已经提供了FFT的算法,FFT可以采用直接调用的方式:FFT正变换:X=FFT(x);X=FFT(x,N);反变换x=IFFT(X);x=IFFT(X,N);实际DSP应用中,FFT采用的是按时间抽选的基2—FFT算法。
下图所示为8点DIT的FFT运算流图:程序实现流程图如下所示: 开 始送入x (n )£¬MN £½2 M倒 序L £½1 , M£Ê£½0 , B £ 1P £½2 M £L Jk £½ J , N £1 , 2Lp Np NW B k X k X B k X W B k X k X k X )()()()()()(+-⇐+++⇐输 出结 束B 2 L £15、结合自己的专业设计一种基于DSPs的数字信号处理系统。
要求包括硬件设计与软件设计,设计中的某个算法要求利用MATLAB进行仿真或者利用DSP的实验箱进行实现(40分)答:通过F28335DSP编程实现FFT和IFFT,给定模拟采样输入,进行256点的FFT变换和反变换。
程序及DSP运行结果波形如下:#include "DSP2833x_Device.h"#include "DSP2833x_Examples.h"#include <math.h>#define pi 3.141593 // float小数点后6位#define NL 256;int N=NL; //FFT点数float Input[NL];//输入的信号序列struct Complex // 定义复数结构体{float real,imag;};struct Complex Wn;//定义旋转因子struct Complex Vn;//每一级第一个旋转因子虚部为0,实部为1 struct Complex T;//存放旋转因子与X(k+B)的乘积float output[NL]={0};// 输出的FFT幅值(复数的模)struct Complex Sample[NL];// 采样输入的实数转化为复数struct Complex MUL(struct Complex a,struct Complex b)//定义复乘{struct Complex c;c.real=a.real*b.real-a.imag*b.imag;c.imag=a.real*b.imag+a.imag*b.real;return(c);}void MYiFFT(struct Complex *xin,int N)//输入为复数指针*xin,做N点FFT{int L=0; // 级间运算层int J=0; // 级内运算层int K=0,KB=0; // 蝶形运算层int M=1,Nn=0;// N=2^Mfloat B=0; // 蝶形运算两输入数据间隔/* 以下是为倒序新建的局部变量*/int LH=0,J2=0,N1=0,I,K2=0;struct Complex T;/*以下是倒序*/LH=N/2; // LH=N/2J2=LH;N1=N-2;for(I=1;I<=N1;I++){if(I<J2){T=xin[I];xin[I]=xin[J2];xin[J2]=T;}K2=LH;while(J2>=K2){J2-=K2;K2=K2/2;// K2=K2/2}J2+=K2;}/* 以下为计算出M */Nn=N;while(Nn!=2)// 计算出N的以2为底数的幂M {M++;Nn=Nn/2;}/* 蝶形运算*/for(L=1;L<=M;L++) // 级间{B=pow(2,(L-1));Vn.real=1;Vn.imag=0;Wn.real=cos(pi/B);Wn.imag=sin(pi/B);for(J=0;J<B;J++) // 级内{for(K=J;K<N;K+=2*B) // 蝶形因子运算{KB=K+B;T=MUL(xin[KB],Vn);xin[KB].real=xin[K].real-T.real;//原址运算,计算结果存放在原来的数组中xin[KB].imag=xin[K].imag-T.imag;xin[K].real=xin[K].real+T.real;xin[K].imag=xin[K].imag+T.imag;}Vn=MUL(Wn,Vn);// 旋转因子做复乘相当于指数相加,得到的结果// 和J*2^(M-L)是一样的,因为在蝶形因子运算// 层中M与L都是不变的,唯一变x化的是级内的J// 而且J是以1为步长的,如J*W等效于W+W+W...J个W相加}}}void MYFFT(struct Complex *xin,int N)//输入为复数指针*xin,做N点FFT{int L=0; // 级间运算层int J=0; // 级内运算层int K=0,KB=0; // 蝶形运算层int M=1,Nn=0;// N=2^Mfloat B=0; // 蝶形运算两输入数据间隔/* 以下是为倒序新建的局部变量*/int LH=0,J2=0,N1=0,I,K2=0;struct Complex T;/*以下是倒序*/LH=N/2; // LH=N/2J2=LH;N1=N-2;for(I=1;I<=N1;I++){if(I<J2){T=xin[I];xin[I]=xin[J2];xin[J2]=T;}K2=LH;while(J2>=K2){J2-=K2;K2=K2/2;// K2=K2/2}J2+=K2;}/* 以下为计算出M */Nn=N;while(Nn!=2)// 计算出N的以2为底数的幂M{M++;Nn=Nn/2;}/* 蝶形运算*/for(L=1;L<=M;L++) // 级间{B=pow(2,(L-1));Vn.real=1;Vn.imag=0;Wn.real=cos(pi/B);Wn.imag=-sin(pi/B);for(J=0;J<B;J++) // 级内{for(K=J;K<N;K+=2*B) // 蝶形因子运算{KB=K+B;T=MUL(xin[KB],Vn);xin[KB].real=xin[K].real-T.real;//原址运算,计算结果存放在原来的数组中xin[KB].imag=xin[K].imag-T.imag;xin[K].real=xin[K].real+T.real;xin[K].imag=xin[K].imag+T.imag;}Vn=MUL(Wn,Vn);// 旋转因子做复乘相当于指数相加,得到的结果// 和J*2^(M-L)是一样的,因为在蝶形因子运算// 层中M与L都是不变的,唯一变x化的是级内的J// 而且J是以1为步长的,如J*W等效于W+W+W...J个W相加}}}/********************************功能:计算复数的模形参:*Sample指向需要取模的复数结构体N为取模点数*output存放取模后数值的数组*********************************/void ModelComplex(struct Complex *Sample,int N,float *output) {int i;for(i=0;i<N;i++){output[i]=sqrt(Sample[i].real*Sample[i].real+Sample[i].imag*Sam ple[i].imag)*2/N;}}void main(void){Uint16 i=0;InitSysCtrl();DINT;InitPieCtrl();IER = 0x0000;IFR = 0x0000;for(i=0;i<NL;i++){ Input[i]=1.0*sin(2*pi*i/(NL-1))+1.0/3*sin(2*pi*i*3/(NL-1))+1.0 /5*sin(2*pi*i*5/(NL-1));}for(i=0;i<NL;i++) //输入实数信号转换为复数{Sample[i].real=Input[i];// Sample[i].real=h[i];Sample[i].imag=0;}MYFFT(Sample,NL); //FFT ModelComplex(Sample,NL,output); //求模MYiFFT(Sample,NL);for(i=0;i<NL;i++){Input[i]=1.0/256*Sample[i].real;}while(1){// FilterDC(Sample,NL);}}图1 FFT变换后的输出幅值(与定义的波形一致,即主要是1,3,5次谐波,幅值分别为1V,0.3V,0.2V)图2:IFFT合成原波形。