DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1459|回复: 0
打印 上一主题 下一主题

[待整理] 基于MSP430的FM音频频谱分析仪的设计方案

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-28 06:59:09 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
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的运算图。
       
       
        图1 8点FFT蝶形运算图
       
        经过FFT运算后,可以将一个时域信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了,这就是频谱仪的一般原理。
       
        3.频谱分析仪的设计及实现
       
        本文介绍了一种基于FFT的的数字音频频谱分析仪的设计方案,通过ADC采样输入的音频信号,ADC采样完成以后,将数据进行倒序排列并进行FFT运算,结果通过TFT液晶显示出来。系统的框图如图2所示。
       
       
        图2 频谱分析仪系统框图
       
        3.1音频频谱分析仪硬件实现
       
        为了实现系统功能,采用16bit处理器MSP430来高效处理输入的数据流。MSP430自带ADC12模块,ADC12的采样数据经过运算,通过65K色的液晶显示频谱图。本系统硬件系统图如图3所示。
       
       
        图3 音频频谱分析系统硬件图
       
        电源模块为整个系统提供供电。系统还能响应用户按键事件,并进行相应的处理。串口模块为系统的扩展预留。
       
        3.2音频频谱分析仪的系统软件设计
       
        系统上电后首先进行系统初始化System_Init(),对看门狗、系统时钟、定时器、I/O端口、ADC等各模块进行初始化。接下来ADC12对连续的模拟信号进行采样,得到离散化的数字信号,由处理器读取该数字信号并进行相应的处理。采样频率过高,采样点数过多,会占用大量宝贵的处理器内存,降低数据处理速度;采样频率过低,又会使采样数据失真而无法恢复原始连续信号。因此,必须根据信号的频率范围来设置采样频率,同时要满足采样定理的要求。
       
        当采样频率一定时,增加采样点数可以提高频率分辨率,但数据存储空间和计算量也相应增大。一般可根据实际需要进行采样点数的选取,通常设置为2的整数次幂,以便于进行后续的FFT谱分析,本系统采样点数为N=16.ADC12采样流程图如图4所示。
       
       
        图4 ADC12流程图
       
        采样后的FFT数据处理是系统的又一个重点和难点,一方面,为了得到正序FFT,需要对原始自然序列进行码位倒序排列;另一方面,为了减少处理器的浮点运算时间,旋转因子kN W计算采用查表实现。图5为FFT运算的倒序流程图。
       
       
       
        如果提前将余弦和正弦计算出来作为全局变量,计算kN W就可以直接调用进行加减计算,减少了大量的浮点运算时间,会以牺牲一点存储器的代价获得快速的系统响应。表1是编制的N=16时的余弦和正弦表。
       
       
         
          图6表示的是FFT运算的流程图,整个FFT程序包含在一个迭代的过程中,最后一层计算总是2-FFT蝶形运算,下面是蝶形运算和FFT计算的主程序段:
       
       
       
        当数据经过FFT处理完毕以后,最后一步就是直观地把数据显示出来了,在这里我们采用了TFT液晶HD66772.
       
        结合HD66772的操作时序图,利用指令对其进行读写操作,可以对液晶的读写进行编程。MSP430F149与液晶HD66772模块之间的连接分为控制总线和数据总线。在液晶屏上正确显示信息,必须对液晶进行两个基本操作:第一,写入指令代码;第二,写入显示数据。
       
        4.系统调试与运行
       
        因为MSP430F149的主时钟采用8MHz晶振,虽然系统的单条指令的执行时间仅为0.125μs,但是加上处理FFT的运算、ADC12采样频率和液晶的写入时间等影响,液晶的实际刷新频率低于25Hz,产生严重的闪烁感。为了提高刷新频率,将实心柱图改为空心线条,每隔两个空心细线条写入一个实心线条,这样液晶的写入时间减少了2/3,既能保证显示的结果的准确性,也不牺牲系统的写入HD66772液晶的GRAM的时间。解决了信号闪烁的问题。图7为输入音频信号后TFT液晶显示的频谱图。
       
       
        图7 系统运行效果图
       
        图7中将输入信号30Hz-15KHz的音频信号在频域进行了16等分,每一个柱子表示1KHz的频率带宽。从图中可以看到一般音频信号的能量集中在低频段,随着频率的升高音频能量也越来越弱,这也是调频广播采用加权技术来提高性噪比的原因了。
       
        5.结论
       
        本方案通过ADC采样输入的音频信号,ADC采样完成以后,将数据进行倒序排列并进行FFT运算,结果通过TFT液晶显示出来。由于采用的处理器的处理能力的原因,不能做到很高的采样频率和很精细的频率分辨率,要提高系统的频率分辨率,就需要增加采样点数。可以借助PC的强大处理能力,将采样的数据通过预留的串口传送给PC,在PC上完成FFT运算以及显示,这就是虚拟仪器的方式,实际工作中应用前景也非常大。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-25 13:01 , 耗时 0.095751 秒, 23 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表