版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 练习设计要求和目的1.1 练习设计要求1、编写 FFT 程序, N 可以自己设置。输入数据从 WAV 格式的音频文件中 读取。2、实现数字频谱,以图形的形式显示。设计人机交互界面。3、与 Matlab 中的 fft 算法进行比对研究,并对设计结果进行思考和分析。4、分析编写的 fft 算法的运算时间,进行实际值与估计值的比较。1.2 练习目的温习 DFT 算法原理和对基本性质的理解, FFT 是 DFT 的一种快速算法,学 习 FFT 程序结构和编程方法。学习 FFT 对语音信号的谱分析,了解可能出现的 分析误差及其原因, 一遍在以后的应用中正确应用 FFT。将理论联系应用到实际, 为
2、接下来进一步的学习打下基础。第二章 FFT 算法实现原理2对于有限长序列 x(n),求其 N 点的傅里叶变换( DFT )需要经过 N2 次复数 乘法运算和 N*(N-1) 次复数加法运算。随着 N 的增加,运算量将急剧增加,而在 实际问题中, N 往往是较大的,如当 N=1024 时,完成复数乘法和复数加法的次 数分别为百万以上,无论是用通用计算机还是用 DSP 芯片,都需要消耗大量的 时间和机器内存,不能满足实时的要求。因此, DFT 的这种运算只能进行理论 上的计算,不适合对实时处理要求高的场合。因此,研究作为 DSP 的快速算法 的 FFT 是相当必要的,快速傅里叶变换( FFT )是
3、为提高 DFT 运算速度而采用 的一种算法, 快速算法的种类很多, 而且目前仍在改进和提高, 它是根据离散傅 里叶变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。 基于所学的 DIT-FFT 的运算规律和编程思想以及在本科学习中对 MATLAB 的学 习和使用,该练习在 MATLAB 环境下编写基 2 DIT-FFT 算法实现对语音信号的 快速傅里叶变换, 再与 MATLAB 软件自带的 FFT 函数实现对语音信号的傅里叶 变换进行比较, 如果得到的频谱相同, 那么编写的程序就是正确的。 其中输入数 据从wav语音文件中获取, 用MATLAB 采样得到离散序列 x1。如果有能
4、力可以 选做系统人机对话界面。用 GUI 界面完成人机交互方便使用的。本课程设计主要是对数字信号的分析。快速傅里叶变换( FFT)是为提高 DFT 运算速度而采用的一种算法。对一个有限长度序列 x(n)的 N 点的 DFT 为: X(k)=x(n)WknN (k=0,1,,N-1;n=0,1,,N-1;W=e-j2/N)。求出 N点的 DFT,需要 N2 次复数乘法运算, N*(N-1) 次复数加法运算。当 N 值较大时,要完成的复数乘法 运算和复数加法运算得次数都非常多,无论是用通用计算机还是用 DSP 芯片, 都需要消耗大量的时间,不适合于对实时处理要求高的场合。为了能实时处理 DFT,要
5、想减少 DFT 的运算量可以有两个途径:第一是降 N,N 的值减小了,运算量就减少了;第二是利用旋转因子的周期 性和对称性,可约性。利用这两个途径实现 DFT的快速傅里叶变换 (FFT),FFT 算法基本上可分为时域抽取法和频域抽取法。W=e-j2 /N 的性质:(1)周期性WNkn WN(k N)n WNk(n N)(2)共轭对称性WNkn WN( k)n* WNk( n) *(3)可约性WNkn WmmNkn ,WNkn WNkn/ /mm本程序是用基 2 的按时间抽取的 FFT 算法( DIT-FFT ),设序列 x(n)的长度 为 N,且 N 满足 N=2M,M 为正整数。若 N 不能
6、满足上述关系, 可以将序列 x(n) 补零实现按时间抽取基 2-FFT 算法的基本思路是将 N 点序列按时间下标的奇偶 分为两个 N/2 点序列,计算这两个 N/2 点序列的 N/2 点 DFT,计算量可减小约 一半;每一个 N/2 点序列按照同样的划分原则, 可以划分为两个 N/4 点序列, 最 后,将原序列划分为多个 2 点序列,将计算量大大降低。按时间下标的奇偶将 N点 x(n)分别抽取组成两个 N/2点序列,分别记为 x1(n) 和 x2(n),将 x(n) 的 DFT 转化为 x1(n)和 x2(n)的 DFT 的计算。x(x2(r2r)1) x1x(r()r) , r 0,1, N
7、2 1x(2r 1) x2(r)2N1X k x n WNnkn0N 2 N 1 x n WNnkx nWNnkn 0,2,4.n 1,3,5.N1 N 1 22x 2r WN2rkx 2r 1 WN2r 1 kr 0,1r 0,1N 1N122x1 r WN2rkx2 r WN2r 1 kr 0,1 r 0,1利用系数 WNnk 的可约性,即22 j N rk2 rk j N 2rk 2 rk W N e N e 2 WNN 1 N 122X kx1 r WNrk WNk x2 r WNrkX(1 k) WNk X(2 k), 0 k N 1用蝶形运算可表式为:以此类推,还可以把 x1(n)
8、和 x2(n)按 n 值得奇偶分为两个序列,这样就达到 了降 N 得目的,从而减少了运算量。FFT对DFT的数学运算量改进:直接采用 DFT进行计算,运算量为 N2次 复数乘法和 N*(N-1) 次复数乘法。当采用 M 次 FFT 时,由 N=2M 求得 M=log 2N, 运算流图有 M 级蝶形,每一级都由 N/2 个蝶形运算构成,这样每一级蝶形运算 都需要 N/2 次复数乘法和 N 次复数加法。 M 级运算共需要复数乘法次数为 C=N/2*M, 复数加法次数为 C=N*M 。当 N 值较大时, FFT 减少运算量的特点表 现的越明显。第三章 设计具体内容3.1 语音信号的读取读取 wav
9、文件的数据之后需要对语音信号进行分析,如语音信号的时域分 析、频谱分析、语谱图分析。在 MATLAB 中,我们可以通过 y,fs,bits=wavread( 语音信号路径 ,N1 N2)语句。用于读取语音, 采样值放在向量 y中,fs表示采样 频率(Hz),bits表示采样位数。 N1 N2表示读取从 N1点到 N2点的值(若只有 一个 N 的点则表示读取前 N 点的采样值)。向量 y 则就代表了一个信号(也即 一个复杂的 “函数表达式 ”)也就是说可以像处理一个信号表达式一样处理这个声 音信号。3.2 语音信号的时频分析利用 MATLAB 中的“wavread命”令来读入(采集)语音信号,
10、将它赋值给某 一向量。再对其进行采样,记住采样频率和采样点数。读取 wav 文件并进行采 样:b,fs,bits=wavread( inter.wav ,1024); %读取 wav 文件 x=reshape(b,1,2048);%从 x 中返回一个 1*2048 的矩阵 x1画出语音信号的时域波形,再对语音信号进行频谱分析。 MATLAB 提供了 快速傅里叶变换算法 FFT 计算 DFT 的函数 fft 。3.3 算法运算时间分析 采用 matlab中的 tic 和 toc指令计算运行时间。 tic,t=fft(x),toc/ 测试 FFT 子程序运算所需时间 tic,t=myditfft(
11、x)/ 测试自编 fft 算法 myditfft 运算时间 经过测试, matlab自带的 FFT 对该语音文件的运算时间为3.4 设计图形用户界面如下图所示:图 3-1 设计图形用户界面在编程开始前一定要按照顺序将各个按键排序好, 不然在编程的时候会显得 没有条理。 想要在某个按键实现什么功能, 可在按键界面上鼠标右击按键, 点击 view backs,在点击 callback,然后会自动跟踪到那个按键的位置。第四章 调试与结果 自编算法与机带算法仿真波形比较, 我们知道 MATLAB 软件自带 FFT 算法, 我们可以通过比较自编算法仿真结果与机带算法仿真结果来检验自编算法的正 确性。自编算法与 FFT算法幅值比较图如图 4-1 所示:图 4-1 幅值比较图自编算法 FFT 算法频谱分贝计较图如图 7 所示:图 4-2分贝比较图由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年网络安全工程师职业技术考核试题及答案解析
- 水电站应急预案制定方案
- 安全员A证考试考前冲刺练习题【夺分金卷】附答案详解
- 安全员A证考试考前冲刺模拟题库附答案详解【预热题】
- 安全员A证考试题库检测题型附参考答案详解(考试直接用)
- 安全员A证考试考前冲刺练习【考点提分】附答案详解
- 沈阳社区面试题型及答案解析(2025版)
- 安全员A证考试测试卷带答案详解(培优a卷)
- 安全员A证考试每日一练附参考答案详解【培优a卷】
- 安全员A证考试能力提升打印大全【历年真题】附答案详解
- (一诊)重庆市九龙坡区区2026届高三学业质量调研抽测(第一次)物理试题
- 2026年榆能集团陕西精益化工有限公司招聘备考题库完整答案详解
- 2026广东省环境科学研究院招聘专业技术人员16人笔试参考题库及答案解析
- 2026年保安员理论考试题库
- 2025年人保保险业车险查勘定损人员岗位技能考试题及答案
- 被动关节活动训练
- GB/T 5781-2025紧固件六角头螺栓全螺纹C级
- 教师心理素养对学生心理健康的影响研究-洞察及研究
- DGTJ08-10-2022 城镇天然气管道工程技术标准
- 公路工程质量管理制度范本
- 广东省广州市八区联考2025-2026学年生物高二上期末调研试题含解析
评论
0/150
提交评论