基于处理器的FM音频频谱分析仪的设计方案

2015-04-20 09:08:04   来源:elecfans   

关键字: 处理器  FM音频  频谱分析仪

  1.前言

  在实际的广播电视发射工作中,新的发射机的进场测试,发射机的日常指标测试等都涉及了音频的测试。本文设计的音频频谱分析仪就是从信号源的角度出发,测量音频信号的频谱,从而确定各频率成分的大小,为调频广播的各项音频指标的提供参考。

  在本文中主要提出了以MSP43处理器为核心的音频频谱分析仪的设计方案。以数字信号处理的相关理论知识为指导,利用MSP430处理器的优势来进行音频频谱的设计与改进,并最终实现了在TFT液晶HD66772上面显示。

  2.频谱分析仪设计原理

  由于在数字系统中处理的数据都是经由采样得到,所以得到的数据必然是离散的。对于离散的数据,适用离散傅立叶变换来进行处理。

  快速傅里叶变换,是离散傅里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换,目前已被数字式频谱仪广泛采用。对于长度为N的复数序列 0 1 1 , , , N ? x x L x ,离散傅里叶变换公式为:

  离散傅里叶变换公式

  于是一个序列的运算被分解成两个运算的和的形式, ( ) 1 X k 和( ) 2 X k 可以继续向下分解,最终分解为两点的FFT运算。如果想要FFT运算后的输出为自然顺序排列,则输入序列需要按位倒序来排列。

  图1为8点FFT的运算图。

  8点FFT的运算图

  经过FFT运算后,可以将一个时域信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了,这就是频谱仪的一般原理。

  3.频谱分析仪的设计及实现

  本文介绍了一种基于FFT的的数字音频频谱分析仪的设计方案,通过ADC采样输入的音频信号,ADC采样完成以后,将数据进行倒序排列并进行FFT运算,结果通过TFT液晶显示出来。系统的框图如图2所示。

  频谱分析仪系统框图

  3.1 音频频谱分析仪硬件实现

  为了实现系统功能,采用16bit处理器MSP430来高效处理输入的数据流。MSP430自带ADC12模块,ADC12的采样数据经过运算,通过65K色的液晶显示频谱图。本系统硬件系统图如图3所示。

  音频频谱分析仪硬件实现

  电源模块为整个系统提供供电。系统还能响应用户按键事件,并进行相应的处理。串口模块为系统的扩展预留。

  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时的余弦和正弦表。

[1] [2]

Warning: Invalid argument supplied for foreach() in /Data/webapps/cms/SSI/relative_news_SSI.php on line 56

Warning: Invalid argument supplied for foreach() in /Data/webapps/cms/SSI/relative_news_SSI.php on line 76

Warning: Invalid argument supplied for foreach() in /Data/webapps/cms/SSI/relative_news_SSI.php on line 56

Warning: Invalid argument supplied for foreach() in /Data/webapps/cms/SSI/relative_news_SSI.php on line 76

Warning: Invalid argument supplied for foreach() in /Data/webapps/cms/SSI/relative_news_SSI.php on line 56

Warning: Invalid argument supplied for foreach() in /Data/webapps/cms/SSI/relative_news_SSI.php on line 76

Warning: file_put_contents(/Data/webapps/cms/SSI/../caches/cache_relativedata/http://www.eeworld.com.cn/Test_and_measurement/2015/0420/article_11435.html) [function.file-put-contents]: failed to open stream: No such file or directory in /Data/webapps/cms/phpcms/libs/functions/global.func.php on line 2150
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0420/article_11435.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文