基于FFT的音频信号分析仪报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

音频信号分析仪设计实践报告

摘要

系统基于快速傅立叶变换(FFT)算法,以FPGA和NIOS软核为数据处理与控制核心,实现对频率范围在100Hz~10KHz,电压范围(峰-峰值)在1mV~2.5V的音频信号频率成分的分析。系统由音频信号采集、FFT处理、FIFO数据缓存、NIOS软核控制和LABVIEW 上位机显示等模块组成,硬件采用Cyclone III系列FPGA芯片EP3C25F324C8为核心,采用高性能的立体音频Codec芯片TLV320实现音频处理,对输出具有可编程增益调节,然后在Quartus环境下采用FFT IP核完成离散信号的FFT处理,采用DC_FIFO对FFT变换后的数据进行缓存处理,实现与高时钟NIOS核的通讯,在IDE环境下通过C语言编程实现FIFO 和软核CPU的控制,最终在LABVIEW显示音频信号主要频率成分的信息,实现对音频信号的分析和显示。

关键词:音频分析 FFT FPGA NIOS软核 FIFO

目录

音频信号分析仪设计实践报告 (1)

摘要 (1)

一、设计任务及要求 (3)

1)任务 (3)

2)要求 (3)

二、系统设计方案 (3)

2.1 设计方案的选择 (3)

2.2 总体设计思路 (4)

三、模块电路与程序设计 (5)

3.1 TLV320控制电路 (5)

3.2 FFT控制电路 (5)

3.3 FIFO控制电路 (7)

3.4 NIOS软核 (8)

3.5 LABVIEW显示 (8)

3.6 程序说明 (8)

四. 测试方案与测试结果 (9)

4.1 测试方案 (9)

4.2 测试结果 (9)

五.遇到问题及解决办法 (10)

六. 组员分工.................................................................................................. 错误!未定义书签。

七. 总结与感想.............................................................................................. 错误!未定义书签。八.参考文献 (12)

附录 ................................................................................................................ 错误!未定义书签。

一、设计任务及要求

1)任务

设计、制作一个可分析音频信号频率成分,并可测量正弦信号失真度的仪器。

2)要求

1.基本要求

(1)输入阻抗:50Ω

(2)输入信号电压范围(峰-峰值):100mV~5V

(3)输入信号包含的频率成分范围:200Hz~10kHz

(4)频率分辨力:100Hz(可正确测量被测信号中,频差不小于100Hz的频率分量的功率值。)

(5)检测输入信号的总功率和各频率分量的频率和功率,检测出的各频率分量的功率之和不小于总功率值的95%;各频率分量功率测量的相对误差的绝对值小于10%,总功率测量的相对误差的绝对值小于5%。

(6)分析时间:5秒。应以5秒周期刷新分析数据,信号各频率分量应按功率大小依次存储并可回放显示,同时实时显示信号总功率和至少前两个频率分量的频率值和功率值,并设暂停键保持显示的数据。

2.发挥部分

(1)扩大输入信号动态范围,提高灵敏度。

(2)输入信号包含的频率成分范围:20Hz~10kHz。

(3)增加频率分辨力20Hz档。

(4)判断输入信号的周期性,并测量其周期。

(5)测量被测正弦信号的失真度。

(6)其他。

二、系统设计方案

2.1 设计方案的选择

系统设计采用的硬件构架是以EP3C25F324C8为核心的FPGA开发板,板子包含TLV320音频信号处理电路模块,通过音频线外接PC机,PC机产生测试音频信号或采用数字信号发生器代替音频信号,完成整体硬件搭建。而对FPGA的硬件配置编程和对NIOS软

核的控制编程则主要通过在PC机上编写程序来实现。

系统整体分为五部分,分别为:音频信号采集、FFT处理、数据传输、NIOS软核控制以及LABVIEW面板显示,音频信号采集部分采用IIC总线方式控制TLV320对音频信号进行采集和AD转换。根据我们查找的资料,FFT的实现方式比较多,可以通过在C语言编程实现,也可以通过VHDL语言硬件编程实现,同样可以通过MA TLAB编写算法来实现,我们最终采用的方案是在Quartus环境下使用ALTERA元件库里的FFT IP核来实现,与整体硬件设计相辅相成。由于FFT工作时钟与NIOS CPU工作时钟不一致,数据传输需要使用FIFO做缓存,DC FIFO为双时钟工作模式,可以实现读和取的单独控制,可以十分方便地实现不同时钟模块的数据通讯。在Quartus环境下设置好的硬件需要通过NIOS软核编程实现控制,SOPC Builder可以通过Avalon总线挂接需要使用的模块,生成软核CPU,然后在IDE环境下编写C程序实现CPU对各硬件电路或信号的处理以及控制。通过串口把需要显示的信息以字符串形式发送至上位机端,LABVIEW读取串口数据,并经行相应处理和计算,最终显示出来。

2.2 总体设计思路

系统设计原理框图如图2-1所示,输入音频信号首先进行信号调理,然后是16位的TLV320对音频信号的采样和AD转换(内部DAC模块可选择性使用),接着是FFT模块对离散信号进行1024点FFT变换,FFT处理之后的数据通过FIFO缓存,然后CPU读入数据,并对数据进行频谱分析,计算出主要频率成分的频率与幅值,并把信息发送至串口,最后LABVIEW进行功率运算,显示主要频率成分的信息。

图 2-1

相关文档
最新文档