DSP课设报告
dsp综合设计课程设计报告

dsp综合设计课程设计报告一、教学目标本课程的教学目标是使学生掌握DSP(数字信号处理器)综合设计的基本理论和实践技能。
通过本课程的学习,学生应能够:1.知识目标:理解DSP的基本概念、原理和应用;熟悉DSP芯片的内部结构和编程方法;掌握DSP算法的设计和实现。
2.技能目标:能够使用DSP芯片进行数字信号处理的设计和实现;具备DSP程序的编写和调试能力;能够进行DSP系统的故障诊断和优化。
3.情感态度价值观目标:培养学生对DSP技术的兴趣和热情,提高学生的问题解决能力和创新意识,使学生认识到DSP技术在现代社会中的重要性和应用价值。
二、教学内容本课程的教学内容主要包括DSP的基本理论、DSP芯片的内部结构和工作原理、DSP程序的设计和调试方法、DSP应用系统的设计和实现等。
具体包括以下几个部分:1.DSP的基本概念和原理:数字信号处理的基本概念、算法和特点;DSP芯片的分类和特点。
2.DSP芯片的内部结构:了解DSP芯片的内部结构和工作原理,包括CPU、内存、接口、外设等部分。
3.DSP程序的设计和调试:学习DSP程序的设计方法,包括算法描述、程序编写和调试技巧。
4.DSP应用系统的设计和实现:掌握DSP应用系统的设计方法,包括系统架构、硬件选型、软件开发和系统测试等。
三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法等。
具体方法如下:1.讲授法:通过教师的讲解,使学生掌握DSP的基本理论和原理,引导学生理解DSP技术的核心概念。
2.案例分析法:通过分析具体的DSP应用案例,使学生了解DSP技术的实际应用,培养学生的实际操作能力。
3.实验法:通过实验操作,使学生熟悉DSP芯片的使用方法和编程技巧,提高学生的实践能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选择一本合适的教材,作为学生学习的基础资料,提供系统的DSP知识。
DSP课程设计报告_5

DSP原理与应用课程设计报告书2012-2013 学年第II 学期学院:专业:学生姓名:学号:课程设计题目: TMS320LF2407A最小系统的设计起迄日期: 2 月28 日~ 3 月18 日课程设计地点: DSP实验室指导教师:系主任:一、设计目的随着科学技术的不断进步�整个国家自动化水平和信息化水平的长足发展,社会对电气信息类人才的需求日益迫切,要求也更加严格。
可编程DSP芯片是一种特别适合进行数字信号处理的微处理器,它的应用已越来越广泛。
本设计通过对TMS320F2407A芯片的学习,制作出了一个完整的最小系统实验板的原理图,加深对该芯片最小系统电路的了解,学习该芯片的基本外设及其功能。
使学生基本上掌握DSP的特点和开发应用技巧,通过具体的电路设计和调试,领会DSP系统的设计要领。
培养将DSP应用到工程实践的能力。
二、设计任务题目:设计出TMS320S2407A芯片的最小电路原理图,并设计出其PCB图,最后通过一个简单的软件程序进行对设计的最小电路图的验证。
具体包括:方案:1、硬件电路设计,包括TMS320LF2407A基本电路、电源电路、晶振、扩展RAM和指示灯,需要用Altium_Designer_10下载及安装破解软件完成原理图和PCB的设计。
2、软件设计,主要指编写该设计电路的验证程序,在实验箱上运行调试。
3、课程设计报告,包括总体设计方案、硬件电路设计和软件设计的具体说明。
三、硬件电路基本思想如图示1、时钟复位电路TMS320F2407A内部带有复位电路,因此可以直接在RS复位引脚外面连接上一个上拉电阻即可,这对于简化外围电路,减少电路板尺寸是很有用处的。
但是为了调试方便经常采用如图所示的专用芯片MAX811手动复位电路,当调试的时候可以很方便地进行手动复位。
MAX811主要用于处理器电源电压监视,在上电和电压超限时产生复位信号,并具有手动复位功能,且功耗低,适合应用在手持设备和电池供电的设备中。
dsp课程设计实验报告

DSP课程设计实验语音信号的频谱分析:要求首先画出语音信号的时域波形, 然后对语音信号进行频谱分析。
在MATLAB中, 可以利用函数fft对信号进行快速傅立叶变换, 得到信号的频谱特性, 从而加深对频谱特性的理解。
其程序为:>> [y,fs,bits]=wavread('I:\xp.wav',[1024 5120]);>> sound(y,fs,bits);>> Y=fft(y,4096);>> subplot(221);plot(y);title('原始信号波形');>> subplot(212);plot(abs(Y));title('原始信号频谱');程序运行结果为:设计数字滤波器和画出频率响应:根据语音信号的特点给出有关滤波器的性能指标:低通滤波器性能指标, =1000Hz, =1200Hz, =100dB, =1dB;高通滤波器性能指标, =4800Hz, =5000Hz, =100dB, =1dB;带通滤波器性能指标, =1200Hz, =3000Hz, =1000Hz, =3200Hz, =100dB, =1dB;要求学生首先用窗函数法设计上面要求的三种滤波器, 在MATLAB中, 可以利用函数firl 设计FIR滤波器;然后再用双线性变换法设计上面要求的三种滤波器, 在MA TLAB中, 可以利用函数butte、cheby1和ellip设计IIR滤波器;最后, 利用MATLAB中的函数freqz画出各种滤波器的频率响应, 这里以低通滤波器为例来说明设计过程。
低通:用窗函数法设计的低通滤波器的程序如下:>> fp=1000;fc=1200;As=100;Ap=1;fs=22050;>> wc=2*fc/fs;wp=2*fp/fs;>> N=ceil((As-7.95)/(14.36*(wc-wp)/2))+1;>> beta=0.1102*(As-8.7);>> Win=Kaiser(N+1,beta);>>b=firl(N,wc,Win);>>freqz(b,1,512,fs);程序运行结果:这里选用凯泽窗设计, 滤波器的幅度和相位响应满足设计指标, 但滤波器长度(N=708)太长, 实现起来很困难, 主要原因是滤波器指标太苛刻, 因此, 一般不用窗函数法设计这种类型的滤波器。
DSP课程设计报告之混响

DSP课程设计报告之混响一、课程目标知识目标:1. 学生能理解混响的概念,掌握混响的物理原理和数学模型。
2. 学生能描述混响在数字信号处理(DSP)中的应用,如音乐制作、声音效果增强等。
3. 学生能解释混响参数对声音效果的影响,如混响时间、湿度、大小等。
技能目标:1. 学生能运用所学知识,使用DSP软件(如Audacity、MATLAB等)进行混响效果的实现和调整。
2. 学生能通过实验和案例分析,分析混响在音频处理中的实际应用,提高解决问题的能力。
情感态度价值观目标:1. 学生通过混响的学习,培养对声音美学的认识和鉴赏能力,提高对音乐和声音艺术的兴趣。
2. 学生在学习过程中,培养合作意识,学会倾听他人意见,提高团队协作能力。
3. 学生通过了解混响在生活中的应用,认识到科技与生活的紧密联系,增强学以致用的意识。
课程性质:本课程为高年级选修课程,以理论讲解和实践操作相结合的方式进行。
学生特点:学生具备一定的数字信号处理基础,对声音处理有一定了解,具有较强的学习能力和动手能力。
教学要求:注重理论与实践相结合,通过案例分析和实验操作,使学生掌握混响的相关知识,提高实际应用能力。
同时,关注学生的情感态度培养,激发学生的学习兴趣和团队合作意识。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 理论部分:- 混响的定义与分类:介绍混响的基本概念,包括自然混响和人工混响,以及混响的类别。
- 混响的物理原理:讲解声音在空间中的传播、反射、吸收等原理,分析影响混响效果的因素。
- 混响的数学模型:介绍混响的常见数学模型,如卷积模型、参数模型等,并分析其优缺点。
2. 实践部分:- 混响效果器的使用:结合教材,教授学生如何使用Audacity、MATLAB等软件中的混响效果器。
- 混响参数调整:指导学生通过调整混响时间、湿度、大小等参数,实现不同混响效果。
- 实践案例:分析实际案例,如音乐作品中的混响处理,使学生更好地理解混响在音频处理中的应用。
基于dsp课程设计报告

基于dsp课程设计报告一、教学目标本课程的教学目标分为三个维度:知识目标、技能目标和情感态度价值观目标。
1.知识目标:通过本课程的学习,学生需要掌握DSP(数字信号处理器)的基本概念、原理和应用。
具体包括:了解DSP的发展历程和分类;理解DSP的基本结构和主要性能指标;掌握DSP的编程方法和应用领域。
2.技能目标:培养学生具备使用DSP进行数字信号处理的能力。
具体包括:学会使用DSP开发环境和工具;掌握DSP编程语言和算法;能够独立完成DSP项目的开发和调试。
3.情感态度价值观目标:激发学生对DSP技术的兴趣和好奇心,培养学生的创新意识和团队合作精神。
使学生认识到DSP技术在现代社会中的重要性和广泛应用,树立正确的技术观和价值观。
二、教学内容本课程的教学内容分为五个部分:DSP基础知识、DSP原理与结构、DSP编程方法、DSP应用案例和DSP项目实践。
1.DSP基础知识:介绍DSP的发展历程、分类和主要性能指标。
2.DSP原理与结构:讲解DSP的基本原理、结构和主要组成部分,如运算器、存储器、输入输出接口等。
3.DSP编程方法:学习DSP编程语言、算法和开发环境,掌握基本的编程技巧。
4.DSP应用案例:分析典型的DSP应用场景,如音频处理、图像处理、通信系统等。
5.DSP项目实践:分组进行项目实践,培养学生独立完成DSP项目的能力。
三、教学方法本课程采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:用于传授基本知识和理论,引导学生掌握DSP的基本概念和原理。
2.讨论法:鼓励学生针对案例进行分析讨论,培养学生的思考能力和团队协作精神。
3.案例分析法:通过分析实际应用案例,使学生更好地理解DSP技术的应用和价值。
4.实验法:让学生动手进行实验,培养实际操作能力和创新思维。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的教材,如《数字信号处理器原理与应用》等。
dsp交通等课程设计报告

dsp交通等课程设计报告一、课程目标知识目标:1. 让学生理解交通信号灯的基本原理,掌握数字信号处理(DSP)技术在交通控制中的应用。
2. 使学生掌握交通流量的基本概念,学会分析交通数据,并运用DSP技术进行优化处理。
3. 帮助学生了解我国交通法规及交通信号控制的相关知识。
技能目标:1. 培养学生运用DSP技术进行交通信号灯控制程序编写的能力。
2. 培养学生运用数据分析方法,对交通流量进行有效监控和优化调整的能力。
3. 提高学生的实践操作能力,学会使用相关软件和硬件进行交通信号控制系统的设计和调试。
情感态度价值观目标:1. 培养学生关注社会交通问题,树立解决实际问题的责任感和使命感。
2. 激发学生对数字信号处理技术的兴趣,提高学生主动学习的积极性。
3. 培养学生的团队协作意识,学会与他人共同探讨、解决问题。
本课程针对年级特点,结合实际交通问题,以数字信号处理技术为载体,旨在提高学生的理论知识水平、实践操作能力以及解决实际问题的能力。
课程目标具体、可衡量,为后续教学设计和评估提供明确方向。
二、教学内容本章节教学内容主要包括以下三个方面:1. 交通信号灯原理及DSP技术基础- 教材章节:第一章 交通信号灯原理;第二章 DSP技术概述- 内容安排:介绍交通信号灯的基本原理、功能及分类;讲解DSP技术的基本概念、发展历程及其在交通控制领域的应用。
2. 交通流量分析及DSP技术应用- 教材章节:第三章 交通流量分析;第四章 DSP技术在交通控制中的应用- 内容安排:分析交通流量的基本特性,讲解数据采集、处理和优化方法;探讨DSP技术在交通信号控制、拥堵缓解等方面的应用实例。
3. 交通信号控制系统设计与实践- 教材章节:第五章 交通信号控制系统设计;第六章 实践操作- 内容安排:介绍交通信号控制系统的设计原理、硬件和软件选型;指导学生进行交通信号控制程序编写,开展实践操作,培养实际动手能力。
教学内容安排和进度:本章节共计12课时,分配如下:- 第1-4课时:交通信号灯原理及DSP技术基础- 第5-8课时:交通流量分析及DSP技术应用- 第9-12课时:交通信号控制系统设计与实践教学内容具有科学性和系统性,结合教材章节和实际案例,旨在帮助学生掌握交通信号控制相关知识,提高实践操作能力。
dsp课程设计报告方波

dsp课程设计报告方波一、教学目标本课程的教学目标是使学生掌握方波信号的性质、产生方法和应用,能够运用数字信号处理理论分析和设计方波信号处理电路,培养学生的理论联系实际的能力和创新意识。
具体分解为以下三个目标:1.知识目标:(1)掌握方波信号的定义、特点和分类。
(2)了解方波信号产生的方法,能够运用相关算法生成方波信号。
(3)熟悉方波信号在数字信号处理中的应用领域,如通信、雷达、音频处理等。
2.技能目标:(1)能够运用数学方法分析方波信号的波形、频率、幅值等参数。
(2)掌握至少一种编程语言,能够实现方波信号的生成和处理算法。
(3)具备一定的实验操作能力,能够通过实验验证方波信号处理的理论。
3.情感态度价值观目标:(1)培养学生对数字信号处理的兴趣,增强学习的主动性。
(2)培养学生团队合作精神,提高沟通与协作能力。
(3)培养学生关注国家发展战略,认识数字信号处理在科技前沿和国家经济建设中的重要地位。
二、教学内容本课程的教学内容主要包括以下几个部分:1.方波信号的基本概念:介绍方波信号的定义、特点和分类,使学生了解方波信号在数字信号处理中的重要性。
2.方波信号的产生方法:讲解方波信号产生的原理,介绍常见的方波信号生成算法,如查表法、计数器法等。
3.方波信号的处理方法:分析方波信号的处理方法,如滤波、采样、量化等,使学生掌握方波信号处理的基本技巧。
4.方波信号处理的应用:介绍方波信号在通信、雷达、音频处理等领域的应用,提高学生的实践能力。
5.实验与实践:安排一定数量的实验,使学生在实践中掌握方波信号处理的理论,培养学生的动手能力。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解方波信号的基本概念、产生方法、处理方法和应用,引导学生掌握课程的核心知识。
2.讨论法:学生分组讨论方波信号处理的问题,培养学生的思考能力和团队合作精神。
3.案例分析法:分析实际案例,使学生了解方波信号处理在实际工程中的应用,提高学生的实践能力。
DSP技术课程设计实验报告

实验设计报告实验项目名称:基于DSP的数字滤波器设计与仿真目录一、课程设计的目的和要求 (3)二、系统功能介绍及总体设计方案 (3)1、系统功能介绍 (3)2、总体设计方案流程图 (3)三、主要内容和步骤 (4)1、滤波器原理 (4)2、DSP 实现FIR滤波的关键技术 (4)3.操作步骤 (6)四、详细设计 (7)1、MATLAB程序流程图 (7)2、CCS汇编程序流程图 (8)五、实验过程 (8)1.汇编语言 (8)2.C语言 (13)六、结论与体会 (18)七、参考文献 (19)八、附件:源程序清单 (19)汇编程序清单: (19)C程序清单 (21)一、课程设计的目的和要求通过课程设计,加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。
通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则。
学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。
二、系统功能介绍及总体设计方案1、系统功能介绍一个实际的应用系统中,总存在各种干扰。
数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。
在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。
设定模拟信号的采样频率为32000Hz,。
设计一个FIR低通滤波器,其参数为:滤波器名称: FIR低通滤波器采样频率: Fs=40000Hz通带: 4000Hz~4500Hz过渡带: 2500Hz~3000Hz,3500Hz~4000Hz带内波动: 0.5dB阻带衰减: 50dB滤波器级数: N=154滤波器系数:由MATLAB根据前述参数求得。
2、总体设计方案流程图三、主要内容和步骤1、滤波器原理对于一个FIR 滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:其中N-1是FIR 的滤波器的阶数,为延时结,为端口信号函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于CCS和ICETEK5509实验箱FFT算法的C语言实现与验证学院:姓名:学号:班级:指导老师:完成报告日期:设计目的1.本课程设计与理论课、实验课一起构成《DSP芯片原理与应用》完整课程体系;2.针对理论课、实验课中无时间和不方便提及内容和需强调重点进行补充与完善;3.以原理算法的实现与验证体会 DSP技术的系统性,并加深基本原理的体会。
二、设计任务1.设计一个以ICETEK550为硬件主体,FFT为核心算法的频谱分析系统方案;2.用C语言编写系统软件的核心部分,熟悉CCS调试环境的使用方法,在CCS IDE中仿真实现方案功能;3.在实验箱上由硬件实现频谱分析。
三、设计内容1. 设计方案原理1)FFT工作原理及工作方式工作原理:快速傅里叶变换是离散傅里叶变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。
它对傅氏变换的理论并没有新的新的发现,但是对于在计算机系统或者说数字系统中应用离散傅里叶变换,可以说是进了一大步。
设x(n)为N项的复数序列,由DFT变换,任一 X(n)的计算都需要NT次复数乘法和N(N-1)次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法。
所以作一次离散傅里叶变换需要作 4NT次实数乘法及N(4N-2)次实数加法。
而在FFT中,利用 Wn的周期性和对称性,把一个 N项序列分为两个 N/2项的子序列,每个N/2点DFT变换需要(N/2) 2次运算,再用N次运算把两个N/2点的DFT 变换组合成一个N点的DFT而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的 DFT运算单元,那么 N点的DFT就只需要作(N/2)(log2N)次复数乘法和N (log2N)次复数加法。
这样,运算量的节约就很大,这就是 FFT的优越性。
工作方式:第一步,将1个N点的时域信号分成N个1点的时域信号,然后计算这N 个1点时域信号的频域,得到N个频域的点,然后将这个N个频域的点按照一定的顺序加起来,就得到了我们需要的频谱。
这里每个点的意思是复数,都有实部和虚部。
认真看蝶形图可以看出它是按照比特反转顺序来分解的。
第二步,计算每个点的频谱,这一步很简单,因为一个时域的点的频谱的数值就是它自己,所以这一步什么也不需做,但需明白这时候 N 个点不是时域信号了,而是频域信号。
第三步,将这 N 个频域信号结合起来,这一步是最麻烦的一步。
就是和前面时域分解的顺序相反,将2个1 点的频域信号变成 1 个2点的频域信号,再将 2个 2 点的频域信号变成 1 个 4 点的频域信号,一直到结束。
2)DSP工作原理数字信号处理器(DSP)是一种可编程的高性能处理器,近年来发展很快。
它不仅适用于数字信号处理,而且在图像处理、语音处理、通信等领域得到了广泛地应用。
通用的微处理器在运算速度上很难适应信号实时处理的要求。
数字信号处理器中集成有高速的乘法器硬件,能快速地进行大量数据的乘法海和加法运算。
快速傅里叶变换的出现使得 DFT在实际应用中得到了广泛的应用。
3)A/D 模数转换原理TMS320VC5509 模数转换模块带内置采样和保持的 10 位模数转换模块 ADC,最小转换时间为500ns,最大采样率为21.5kHz。
它有2个模拟输入通道( AIN0—AIN1 )。
模数转换模块接到启动转换信号后,开始转换第一个通道的数据。
经过一个采样时间的延迟后,将采样结果放入转换结果寄存器总保存。
转换结束后设置标志,等待下一个启动信号。
模数转换相对于计算机来说是一个较为缓慢的过程。
一般采用中断方式启动转换或保存结果,这样在 CPU 忙于其他工作时可以少占用处理时间。
设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结果2.设计方案流程图:1)FFT程序流程框图:2) A/D 转换流程框图开始初始化CPU睛钟" tMIF. AD 釆样时钟启动ADO 道采集(连续236次)ff 入绕冲区“ADC启刚AU1通逋采集{连续2%次)存入缓冲隨nADCI3.主要实现方法1)在CCS 上进行软件仿真:A. 参考教材P371的14.3节完成CCS 环境中的FFT 工程的建立; 本工程的建立有点投机取巧,不太符合老师的要求,只是直接将书上给的 FFTd 故成了头文件FFT.h 然后将其加入之前做实验时时老师给的一个关于 泰勒级数展开的工程c55_si nO 。
B. 设计检测信号,验证FFT 算法的正确性及FFT 的部分性质;基于谱线易于观察分析的角度,故本次软件仿真用的检测信号为正弦函数, 也就是工程中由泰勒级数展开生成的正弦曲线。
下面给出FFT.h 的程序和部分注解:#in elude <math.h>struct compx { float real,imag;}; /* 定义一个复数结构 */struct compx s[257];/*FFT 输入和输出:均从s[1]开始存放*/struct compx EE(struct compx ,struct compx ); /* 定义附复数相乘结构 */void FFT(struct compx *, int ); /*FFT 函数定义 */#define FFT_N 256struct compx EE(struct compx b1,struct compx b2) {struct compx b3;//对两个复数进行乘法运算b3.real=b1.real*b2.real-b2.imag*b2.imag; // 输入参数: 两个以联合体定义的复数b3.imag=b1.real*b2.imag+b1.imag*b2.real; return(b3);}/*输入:xin(实部,虚部),输出:xin(实部,虚部),N:FFT 点数*/ void FFT(struct compx *xin, int N){int f,m,nv2,nm1,i,k,j=1,l; struct compx v,w,t; nv2=N/2; /* 变址运算,即把自然顺序变成倒位序,采用雷德算法 */f=N;for(m=1;(f=f/ 2)!=1;m++){;} nm1=N-1; /* 变址运算 */ for(i=1;i<=nm1;i++){if(i<j)/*如果i<j,即进行变址*/ { t=xin[j];xin[j]=xin[i];xin[i]=t;} k=nv2; /* 求 j 的下一个倒位序 */ while(k<j) /*如果k<j,表示j 的最高位为1*/{j=j-k; /* 把最高位变成 0*/k=k/2; /*k/ 2,比较次高位, 以此类推, 逐个比较, 直到某个位为 0*///i,ip 分别表示参加蝶形运算的两个节点// 蝶形运算xin[ip].real=xin[i].real-t.real;j=j+k;}/*fft*/{ int le,lei,ip; float pi; for(l=1;l<=m;l++){le=pow(2,1); lei=le/2; pi=3014159265; v. real=1.0;v.imag=0.0;w. r eal=cos(pi/lei); w.imag=-sin(pi/lei);/* 把 0 改为 1*///FFT 运算核,使用蝶形运算完成 FFT 运算//w 为系数商,即当前系数与前一个系数的商 for(j=1;j<=lei;j++)// 控制计算不同种蝶形结, 即计算系数不同的蝶形结for(i=j;i<=N;i=i+le) //控制计算同种蝶形结运算,即计算系数相同蝶形结{ip=i+lei;t=EE(xin[ip],v);xin[ip].imag=xin[i].imag-t.imag; xin[i].real=xin[i].real+t.real;xin[i].imag=xin[i].imag+t.imag;}v=EE(v,w); // 改变系数,进行下一个蝶形运算}}}}下面给出 main 函数的程序及部分注解struct compx s[257];float w[257];float a[257];float m[257];main(){int i;double x;float pi=3.1415926;for(i=0;i<256;i++){x=280*pi*i/ 256;// 倍频系数为k=280/2 mysin[i]=fun_sin(x);s[i+1].real=mysin[i];// 结构体s 从 1 开始存放s[i+1].imag=0 ;// 两路信号选择实部信号输入让虚部信号为0 }FFT(s,256);〃将256点正弦曲线进行FFTfor(i=1;i<257;i++){w[i]=s[i].real;a[i]=s[i].imag;// 将虚部值赋给数组 am[i]=sqrt(s[i].real*s[i].real+s[i].imag*s[i].imag);?/ 取模计算功率谱} }程序及频谱的分析倍频数为1的sin函数的波形图及系统自带的FFT对它变换后的图形如下:新建工程中对sin函数进行FFT后的实部、虚部如下:虽然倍频数是1但是结构体s中的值是从s[1]开始存放的所以第一根谱线的位置出现在2处,第二根谱线与第一根谱线关于129对称。
由图中可以看出实部只有3.14而虚部的谱线值为128,显然二者不在一个数量级,这正好验证了 sin(nk) — -2j( △( k-n ) - △ (k+n))这一理论公式。
.改变倍频系数,使其倍频系数分别为 64、128、140,观察分析频谱变化如下图所示:istruct rompx s[257]; float 叽257]; float a[257J; floot(n[257];io0z lJ3B£31C-5iot i; doible z;float p“3・ 1415926;for(i-0;i<256;L**t){x«12B*pi*i/256;■ysiolij^f i_ n(x); s[ulj.rcal-t3y3in|i];s[i*l].iiMg=0 ;MSFFT(Se256);Eor|isl;i<25?;i44.)ajil-sjiJ.iinBg;r[i]»-;qr: (s[i] .rwl<«[i] .r( })K3<a?討・B5鼻36 512 768 10? 12366, T 3®M2«-5) (65, -128)1S«3)5 730 »■g XxU ScUastruct COEDX s[257];float w 257];float a 257];float m 257];lmain()int i; double s;float pi-3.1415926;for(i«D;i<256;i++) {z=25o*pi»i/256:Kiysin i]=fun_sin(x;:s[i+l .real=mysin[i];s i+1]・i mag=0 ;•FFT(sJ56);for(i-l;i<257;i++]E i =s[i].real;a i =s[ij m i=sqrt(s[i].reai*s[L].real+! }hlJ▼J T5CC03进1E67-•1E67-0333・5叫5CC(T333$低“・333$・5[C0[ .................. ........... ......................(「' 42;'「k • •府ni ' 17(1 色0) ll28(~oj Tine bn Aato SciletXTIGt COJtipX s[2&7]; laar lc.mf. A [257];loat u[257];—11[ Ireysi n [1 | - ■: __ 1 n (x a[i + L] .nal-myoLn [■ sli*i ].FFT(S F256);Foti Xl-L :i <Z57;lt+ (w[i ]-e[i ].real; a[i ] =■&f i ] .inug r)若增大倍频数两根谱线均往中间跑也就是都朝着对称轴跑,为128时虚部两根谱线一上一下相互抵消;当继续增大倍频系数使其大于 128,虚部两根谱线交换位置变为左上右下,这意味着发生了频谱混跌效应, 因为此程序设的抽样点数为 257,理论上2fs>=fh ,但是实际要2fs>fh,所以 在倍频系数为128时会出现频谱消失,而在倍频系数为140时会出现频谱交 错。