系统软件设计 - 基于MSP430的FM音频频谱分析仪的设计方案

来源:电子技术网 作者:王进峰等2014年02月24日 11:21
[导读] 系统上电后首先进行系统初始化System_Init(),对看门狗、系统时钟、定时器、I/O端口、ADC等各模块进行初始化。

  3.2 音频频谱分析仪的系统软件设计

  系统上电后首先进行系统初始化System_Init(),对看门狗、系统时钟、定时器、I/O端口、ADC等各模块进行初始化。接下来ADC12对连续的模拟信号进行采样,得到离散化的数字信号,由处理器读取该数字信号并进行相应的处理。采样频率过高,采样点数过多,会占用大量宝贵的处理器内存,降低数据处理速度;采样频率过低,又会使采样数据失真而无法恢复原始连续信号。因此,必须根据信号的频率范围来设置采样频率,同时要满足采样定理的要求。

  当采样频率一定时,增加采样点数可以提高频率分辨率,但数据存储空间和计算量也相应增大。一般可根据实际需要进行采样点数的选取,通常设置为2的整数次幂,以便于进行后续的FFT谱分析,本系统采样点数为N=16.ADC12采样流程图如图4所示。

  ADC12采样流程图

  采样后的FFT数据处理是系统的又一个重点和难点,一方面,为了得到正序FFT,需要对原始自然序列进行码位倒序排列;另一方面,为了减少处理器的浮点运算时间,旋转因子kN W 计算采用查表实现。图5为FFT运算的倒序流程图。

  FFT运算流程图

  如果提前将余弦和正弦计算出来作为全局变量,计算kN W 就可以直接调用进行加减计算,减少了大量的浮点运算时间,会以牺牲一点存储器的代价获得快速的系统响应。表1是编制的N=16时的余弦和正弦表。

  旋转因子正弦余弦表

  图6表示的是FFT运算的流程图,整个FFT程序包含在一个迭代的过程中,最后一层计算总是2-FFT蝶形运算,下面是蝶形运算和FFT计算的主程序段:

  蝶形运算和FFT计算的主程序段

  蝶形运算和FFT计算的主程序段

  当数据经过FFT处理完毕以后,最后一步就是直观地把数据显示出来了,在这里我们采用了TFT液晶HD66772.

  结合HD66772的操作时序图,利用指令对其进行读写操作,可以对液晶的读写进行编程。MSP430F149与液晶HD66772模块之间的连接分为控制总线和数据总线。在液晶屏上正确显示信息,必须对液晶进行两个基本操作:第一,写入指令代码;第二,写入显示数据。

  4.系统调试与运行

  因为MSP430F149的主时钟采用8MHz晶振,虽然系统的单条指令的执行时间仅为0.125μs,但是加上处理FFT的运算、ADC12采样频率和液晶的写入时间等影响,液晶的实际刷新频率低于25Hz,产生严重的闪烁感。为了提高刷新频率,将实心柱图改为空心线条,每隔两个空心细线条写入一个实心线条,这样液晶的写入时间减少了2/3,既能保证显示的结果的准确性,也不牺牲系统的写入HD66772液晶的GRAM的时间。解决了信号闪烁的问题。图7为输入音频信号后TFT液晶显示的频谱图。

  系统运算效果图

  图7中将输入信号30Hz-15KHz的音频信号在频域进行了16等分,每一个柱子表示1KHz的频率带宽。从图中可以看到一般音频信号的能量集中在低频段,随着频率的升高音频能量也越来越弱,这也是调频广播采用加权技术来提高性噪比的原因了。

  4.结论

  本方案通过ADC采样输入的音频信号,ADC采样完成以后,将数据进行倒序排列并进行FFT运算,结果通过TFT液晶显示出来。由于采用的处理器的处理能力的原因,不能做到很高的采样频率和很精细的频率分辨率,要提高系统的频率分辨率,就需要增加采样点数。可以借助PC的强大处理能力,将采样的数据通过预留的串口传送给PC,在PC上完成FFT运算以及显示,这就是虚拟仪器的方式,实际工作中应用前景也非常大。

上一页12全文

本文导航

相关阅读

发表评论
技术交流、积极发言! 发表评请遵守相关规定。

0 条评论

推荐阅读

每月人物

依托AI平台,涂鸦智能开启全屋智能2.0时代!

依托AI平台,涂鸦智能开启全屋智能2.0时代!
随着物联网技术的突飞猛进,生活中越来越多的家庭设备将会联上网络,变得“智慧”起来,智慧家庭的概念成了这几年媒体、企业、用户关注的焦点,而...

发力IoT边缘智能服务,研华以平台服务与边缘智能计算打开物联网应用之门

发力IoT边缘智能服务,研华以平台服务与边缘智能计算打开物联网
研华IoT嵌入式平台事业群总经理许杰弘表示,工业物联网 2009年就开始提出,至今缺乏临门一脚,现在是打开大门的时候了。研华WISE-PaaS物智联软件平台和...

每周排行

  • 型 号
  • 产品描述