完整word版音频信号发生器Word格式文档下载.docx
- 文档编号:20421581
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:23
- 大小:118.87KB
完整word版音频信号发生器Word格式文档下载.docx
《完整word版音频信号发生器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《完整word版音频信号发生器Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
在实现的过程中在CCS中以C语言语言编程实现了方波的产生结合TMS320C55x芯片驱动扬声器,实现了软硬件的结合。
另外文中还介绍CCS开发环境。
文中所给程序已经经过软件仿真验证,所设计的滤波器符合设计要求。
关键词:
DSP;
音频信号发生器;
CodeComposerStudio(CCS);
TMS320C55x
绪论1
绪论
数字化已成为现代信息技术的重要标志,是电子产品高品质的象征。
数字信号处理既有灵活,精确,重复性好等优良特性,这些都是模拟信号处理方法所无法比拟的。
随着越来越多的电子产品将数字信号处理(DSP)做为技术核心,DSP已经成为推动数字化进程的动力。
作为数字化最重要的技术之一,DSP无论在其应用的深度还是广度,正在以前所未有的速度向前发展。
数字信号处理器,也称DSP芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器,它是现代电子技术、相结合的产物。
一门主流技术,随着信息处理技术的飞速发展,计算机技术和数字信号处理技术数字信号处理技术逐渐发展成为它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。
数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。
采用DSP芯片来实现数字信号处理系统是当前发展的趋势。
近年来,DSP技术在我国也得到了迅速的发展,不论是在科学技术研究,还是在产品的开发等方面,在数字信号处理中,其应用越来越广泛,并取得了丰硕的成果.数字滤波占有极其重要的地位.数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本处理算法。
在许多信号处理应用中用数字滤波器替代模拟滤波器具有许多优势。
数字滤波器容易实现不同的幅度和相位频率特性指标,克服了与模拟滤波器器件性能相关的电压漂移、温度漂移和噪声问题.用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。
用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。
几乎每一科学和工程领域例如声学、物理学、通信、数据通信、控制系统和雷达等都涉及信号。
在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。
DSP技术已经成为高校学生和科技人员必须掌握的一门重要技术.
1
音频信号发生器的设计原理
总体的设计思路是模拟一个信号发生器产生频率为264,297,330,352,396,440,495,528的方波驱动扬声器发声.由于方波的频率不同扬声器所发出的音调也不同.
1.1音频信号定义和分类
音频信号是(Audio)带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。
根据声波的特征,可把音频信息分类为规则音频和不规则声音。
其中规则音频又可以分为语音、音乐和音效。
规则音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波.声音的三个要素是音调、音强和音色。
声波或正弦波有三个重要参数:
频率ω0、幅度An和相位ψn,这也就决定了音频信号的特征。
1.2基频与音调
频率是指信号每秒钟变化的次数。
人对声音频率的感觉表现为音调的高低,在音乐中称为音高.音调正是由频率ω所决定的。
音乐中音阶的划分是在频率的对数坐标(20×
log)上取等分而得的:
音阶CDEFGAB
简谱符号1234567
频率(Hz)261293330349392440494
频率(对数)48。
349。
350。
350.851。
852。
853。
8
1.3谐波与音色0
n×
ω0称为ω0的高次谐波分量,也称为泛音。
音色是由混入基音的泛音所决定的,高次谐波越丰富,音色就越有明亮感和穿透力。
不同的谐波具有不同的幅值An和相位偏移ψn,由此产生各种音色效果。
1.4幅度与音强
人耳对于声音细节的分辨只有在强度适中时才最灵敏。
人的听觉响应与强度成对数关系。
一般的人只能察觉出3分贝的音强变化,再细分则没有太多意义.我们常用音量来描述音强,以分贝(dB=20log)为单位.在处理音频信号时,绝对强度可以放大,但其相对强度更有意义,一般用动态范围定义:
动态范围=20×
log(信号的最大强度/信号的最小强度)(dB)
1.5音宽与频带
频带宽度或称为带宽,它是描述组成复合信号的频率范围.
1.5.1音频信号采集
电台等由于其自办频道的广告、新闻、广播剧、歌曲和转播节目等音频信号电平大小不一,导致节目播出时,音频信号忽大忽小,严重影响用户的收听效果。
在转播时,由于传输距离等原因,在信号的输出端也存在信号大小不一的现象。
过去,对大音频信号采用限幅方式,即对大信号进行限幅输出,小信号不予处理。
这样,仍然存在音频信号过小时,用户自行调节音量,也会影响用户的收听效果。
随着电子技术,计算机技术和通信技术的迅猛发展,数字信号处理技术已广泛地深入到人们生活等各个领域。
其中语音处理是数字信号处理最活跃的研究方向之一,在IP电话和多媒体通信中得到广泛应用。
语音处理可采用通用数字信号处理器DSP和现场可编程门阵列(FPGA)实现,其中DSP实现方法具有实现简便、程序可移植行强、处理速度快等优点,特别是TI公司TMS320C54X系列在音频处理方面有很好的性价比,能够解决复杂的算法设计和满足系统的实时性要求,在许多领域得到广泛应用。
在DSP的基础上对音频信号做AGC算法处理可以使输出电平保持在一定范围内,能够解决不同节目音频不均衡等问题。
TI公司DSP芯片TMS320VC5402具有独特的6总线哈佛结构,使其能够6条流水线同时工作,工作频率达到100MHZ.利用VC5402的2个多通道缓冲串行口(McBSP0和McBSP1)来实现与AIC23的无缝连接。
VC5402的多通道带缓冲的串行口在标准串口的基础上加了一个2K的缓冲区。
每次串口发送数据时,CPU自动将发送缓冲中的数据送出;
而当接收数据时,CPU自动将收到的数据写入接收缓存。
在自动缓冲方式下,不需每传送一个字就发一次中断,而是每通过一次缓冲器的边界,才产生中断至CPU,从而减少频繁中断对CPU的影响。
音频芯片采用TLV320AIC23,它是TI公司的一款高性能立体声音频A/D,D/A放大电路。
AIC23的模数转换和数模转换部件高度集成在芯片内部,采用了先进的过采样技术.AIC23的外部硬件接口分为模拟口和数字口。
模拟口是用来输入输出音频信号的,支持线路输入和麦克风输入;
有两组数字接口,其一是由/CS、SDIN、SCLK和MODE构成的数字控制接口.AIC23是一块可编程的音频芯片,通过数字控制口将芯片的控制字写入AIC23内部的寄存器,如采样率设置,工作方式设置等,共有12个寄存器。
音频控制口与DSP的通信主要由多通道缓冲串行口McBSP1来实现。
AIC23通过数字音频口与DSP的McBSP0完成数据的通信,DSP做主机,AIC23做从机.主机提供发送时钟信号BCLKX0和发送帧同步信号BFSX0.在这种工作方式下,接收时种信号BCLKR0和接收帧同步信号BFSR0实际上都是由主机提供的.图1是AIC23与VC5402的接口连接.
AIC23的数字音频接口支持S(通用音顿格式)模式,也支持DSP模式(专与TIDSP连接模式),在此采用DSP模式.DSP模式工作时,它的帧宽度可以为一个bit长。
图2是音频信号采集的具体电路图.
电路的设计和布线是信号采集过程中一个很重要的环节,它的效果直接关系到后期信号处理的质量。
对于DSP达类高速器件,外部晶体经过内部的PLL倍频以后可达上百兆。
这就要求信号线走等长线和绘制多层电路板来消除电磁干扰和信号的反射。
在两层板的前提下,可以采取顶层与底层走交叉线、尽量加宽电源线和地线的宽度、电源线成”树杈型”、模拟区和数字区分开等原则,可以达到比较好的效果。
1.5。
2音频AGC算法
使放大电路的增益随信号强度的变化而自动调整的控制方法,就是AGC—自动增益控制。
实现AGC可以是硬件电路,即AGC闭环电子电路,也可以是软件算法。
本文主要讨论用软件算法来实现音频信号的AGC。
音频AGC是音频自动增益控制算法,更为准确的说是峰值自动增益控制算法,是一种根据输入音频信号水平自动动态地调整增益的机制。
当音量(无论是捕捉到的音量还是再现的音量)超过某一门限值,信号就会被限幅。
限幅指的是音频设备的输出不再随着输入而变化,输出实质上变成了最大音量位置上的一条水平线;
当检测到音频增益达到了某一门限时,它会自动减小增益来避免限幅的发生.另一方面,如果捕捉到的音量太低时,系统将自动提高增益。
当然,增益的调整不会使音量超过用户在调节向导中设置的值。
AGC算法的实现过程:
首先从串口获取音频数据,它是16位的整型数,一般来说,这些数都是比较小的,通过AGC算法将输入的音频数据投影在一个固定区间内,从而使得不论输入的数据点数值大小都会等比例地向这个空间映射。
一方面将获得的音频数据最大值与原来的峰值进行比较,如果有新的峰值出现就计算新的增益系数;
另一方面在一定的时间周期内获取一个新的峰值,这个峰值就具有检测性能,又与原峰值比较,然后就计算新的增益系数。
这个增益系数是相对稳定的。
当音量加大时,信号峰值会自动增加,从而增益系数自动下降;
当音量减小时,新的峰值会减小并且取代原来的峰值,从而使峰值下降,使增益系数上升.最后输出的数据乘以新增益系数后映射到音频信号输入的投影区间内.
AGC_Coff是初始增益系数,初始值为1;
maxAGC_in是增益峰值,初始值为0;
time是采样点计数,门限值为4096;
AGC_in是新的音频数据,MAXArrIn是新的音频增益峰值;
映射区间【-20000,20000】.
整个系统的软件部分为5人模块。
系统主函数main()、CMD文件、中断向量表、DSP5402头文件和专为C语言开发的库函数rtdx.lib。
其中主函数部分是核心,主要包括:
DSP器件初始化、MCBSP1初始化、MCBSP0初始化、AIC23初始化(内部12个可编程寄存器设置)及算法程序等.
在CCS2.0集成开发环境下,采用*.c语言和*。
asm语言相结合的方式编写程序。
将编写的程序*.c、*。
asm和链接程序*.cmd文件编译链接后生成执行目标文件*.out,通过仿真器将执行目标文件*。
out下载到系统板上,经过调试、编译并运行,以音乐作为音频信号源输入到系统板上.
1。
5。
3音频信号数字化
普通的CD采用了数字技术,不过它只是简单地把模拟信号加以数字化。
为了把模拟信号数字化,首先要对模拟信号进行采样。
根据Nyquest采样定律,通常其采样频率至少是信号中的最高频率分量的两倍.对于高质量的音频信号,其频率范围是从20Hz-20kHz。
所以其采样频率必须在40kHz以上.在CD中采用了44。
1kHz的采样频率。
在对模拟信号采样以后,还必须对其幅度上加以分层。
在CD中,其分层以后的幅度信号用16比特的二进制信号来表示,也就是把模拟的音频信号在幅度上分为65,536层.这样,它的动态范围就可以达到96分贝=20Log65536(6分贝/比特).这种直接模数(A/D)变换的方法也称为PCM编码。
直接数字化的最大缺点是比特率非常高.达到44。
1x16=705。
6kBbps,或即88.2kBbps。
比特率高就意味着要求的存储容量很大。
要记录1分钟的音乐,就需要5。
292MB的存储容量.对于两路立体声,就需要10.584MB.而要记录几十分钟的音乐就需要几百兆的存储容量.
5.4PCM编码原理
把模拟信号转换成数字信号的过程称为模/数转换,它主要包括:
采样:
在时间轴上对信号数字化;
量化:
在幅度轴上对信号数字化;
编码:
按一定格式记录采样和量化后的数字数据。
脉冲编码调制PCM(PulseCodeModulation)是一种模数转换的最基本编码方法,CD-DA就是采用的这种编码方式。
采样频率是指一秒钟内采样的次数。
奈奎斯特(HarryNyquist)采样理论:
如果对某一模拟信号进行采样,则采样后可还原的最高信号频率只有采样频率的一半,或者说只要采样频率高于输入信号最高频率的两倍,就能从采样信号系列重构原始信号。
根据该采样理论,CD激光唱盘采样频率为44KHz,可记录的最高音频为22KHz,这样的音质与原始声音相差无几,也就是我们常说的超级高保真音质(SuperHighFidelity-HiFi).采样的三个标准频率分别为:
44。
1KHz,22.05KHz和11。
025KHz。
量化位数:
量化位是对模拟音频信号的幅度轴进行数字化,它决定了模拟信号数字化以后的动态范围。
由于计算机按字节运算,一般的量化位数为8位和16位.量化位越高,信号的动态范围越大,数字化后的音频信号就越可能接近原始信号,但所需要的存贮空间也越大.
量化位等份动态范围(dB)应用
825648-50数字电话
166553696—100CD-DA
声道数有单声道和双声道之分。
双声道又称为立体声,在硬件中要占两条线路,音质、音色好,但立体声数字化后所占空间比单声道多一倍。
编码算法:
编码的作用一是采用一定的格式来记录数字数据,二是采用一定的算法来压缩数字数据。
压缩编码的基本指标之一就是压缩比:
压缩比通常小于1。
压缩算法包括有损压缩和无损压缩;
有损压缩指解压后数据不能完全复原,要丢失一部分信息。
压缩比越小,丢掉的信息越多、信号还原后失真越大。
根据不同的应用,可以选用不同的压缩编码算法,如PCM,ADPC,MP3,RA等等。
数据率及数据文件格式:
数据率为每秒bit数,它与信息在计算机中的实时传输有直接关系,而其总数据量又与计算机的存储空间有直接关系。
因此,数据率是计算机处理时要掌握的基本技术参数,未经压缩的数字音频数据率可按下式计算:
数据率=采样频率(Hz)×
量化位数(bit)×
声道数(bit/s)用数字音频产生的数据一般以WAVE的文件格式存贮,以“.WAV”作为文件扩展名。
WAV文件由三部分组成:
文件头,标明是WAVE文件、文件结构和数据的总字节;
数字化参数如采样率、声道数、编码算法等等;
最后是实际波形数据。
WAVE格式是一种Windows下通用的数字音频标准,用Windows自带的媒体播放器可以播放WAV文件。
MP3的应用虽然很看好,但目前还需专门的播放软件,其中较成熟的为RealPlayer.为了存储数字化了的音乐,就只能尽量开发高容量的存储系统。
在70年代末,终于开发出了利用激光读写的光盘存储系统。
因为这种光盘比起密纹唱片,无论在体积和重量上都要小得多,轻得多,所以称它为CD(CompactDisk)。
意思为轻便的碟片.而一张CD的容量大约为650MB,也就只能存储61。
4分钟音乐.纯粹音乐CD通常也称为CD—DA。
DA就是数字音频(DigitalAudio)的缩写。
它的技术指标是由一本所谓的“红皮书”所定义.这本红皮书是菲立普公司和索尼公司在1980年公布的。
以后,在1987年,又由国际电工委员会(IEC)制定为IEC908标准。
根据这些标准可以比较精确地计算一张CD所能存储的音乐时间。
实际上在CD碟片中是以扇区为单位的,每个扇区中所包含的字节数为2352个字节。
总共有345k个扇区。
因此总的字节数为345kx2352=811440kB。
可以存放76.92分钟的立体声音乐。
还有一种方法来计算播放的时间,CD在播放时,其播放的速度为每秒钟75个扇区。
一张CD有345k个扇区,因而可以播放的时间为345k/75=4600秒=76分40秒。
两种方法计算的结果是一样的。
数字音频信号的压缩:
因为音频信号数字化以后需要很大的存储容量来存放,所以很早就有人开始研究音频信号的压缩问题。
音频信号的压缩不同于计算机中二进制信号的压缩,在计算机中,二进制信号的压缩必须是无损的,也就是说,信号经过压缩和解压缩以后,必须和原来的信号完全一样,不能有一个比特的错误。
这种压缩称为无损压缩。
但是音频信号的压缩就不一样,它的压缩可以是有损的只要压缩以后的声音和原来的声音听上去和原来的声音一样就可以了.因为人的耳朵对某些失真并不灵敏,所以,压缩时的潜力就比较大,也就是压缩的比例可以很大。
音频信号在采用各种标准的无损压缩时,其压缩比顶多可以达到1。
4倍。
但在采用有损压缩时其压缩比就可以很高.下面是几种标准的压缩方法的性能。
按质量由高往低排列。
需要注意的是,其中的Mbyte不是正好1兆比特,而是1024x1024=1048576Byte。
必须指出,这些压缩都是以牺牲音质作为代价的,尤其是最后两种方法,完全靠降低采样率和降低分辨率来取得的.这对音质的损失太大,所以这些方法并不可取.
1.6方波的产生原理
1.6。
1设计原理
作为本设计的核心器件,DSP芯片的运算能力要求比较高,同时又存在运算过程中大量数据交换的特点.方波信号发生器是信号中最常见的一种,它能输出一个幅度可调、频率可调的方波信号,在科学研究及生产实践中均有着广泛应用。
目前,常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积大和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,而本文借助DSP运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的数字式信号发生器具有速度更快,且实现更加简便.
这里说明一下使用TI公司的DSP芯片TMS320C55x(以下简称55x)来产生方波信号的原理:
由于产生一个方波信号需要有一个适合的定时器来重复产生一个与方波周期相同的计数周期,并用一个比较寄存器来保持调制值,因此,比较寄存器的值应不断与定时寄存器的值相比较,这样,当两个值相匹配时,就会在响应的输出上产生一个转换(从低到高或从高到低),从而产生输出脉冲,输出的开启(或关闭)时间与被调制的数值成正比,因此,改变调制数值,相关引脚上输出的脉冲信号的宽度也将随之改变。
通过TMS320C55x的事件管理器模块可以产生一定占空比的脉冲信号,而使用其中的通用定时器、全比较单元和单比较单元则均可发出脉冲,由DSP可输出一系列等幅不等宽的波形信号,这些信号再经过外围一系列调理电路的变换之后,便可以得到所需要方波信号了。
事实上,在硬件上,DSP有两个设计一样的事件管理模块(EVA/EVB),每一个事件管理模块都有6个输出口,故可输出两组方波,一般均可满足通常的设计需要。
方波发生器使用XF引脚输出,利用定时器产生的中断实现。
TMS320VC5509DSPs有两个独立20-bit的软件可编程通用减数计数定时器,可用于产生周期中断给CPU或给DMA控制器发送周期同步事件或给外部设备提供周期信号,也可以用于外部事件计数.20—bit的通用定时器是减数计数器,它由两部分组成:
4位预分频计数器(PSC)和16位主计数器(TIM),定时器结构框图如图1所示。
图1通用定时器结构框图
预分频计数器PSC由输入时钟驱动,可以是内部CPU时钟或外部时(当FUNC=11b时使用外部时钟,从TIN/TOUT引脚输入,当FUNC为其它值时使用内部CPU时钟),每输入一个时钟PSC减1。
每当PSC减到0,主计数器TIM减1,每当TIM减到0,定时器给CPU发出一个中断请求TINT,一个同步事件TEVT给DMA控制器和一个输出到定时器引脚(如果FUNC=01b)。
定时器输出速率为:
式中:
>4
预分频寄存器PRSC由两部分组成:
预分频周期寄存器TDDR和预分频器PSC,如图2所示;
预分频器PSC减到0时,当再有一个输入时钟输入时,预分频器PSC从预分频周期寄存器TDDR重新装载预分频器PSC,当定时器设定为自动装载模式时(ARB=1)。
周期寄存器PRD和计数器TIM都为16位寄存器。
计数器TIM减到0时,TIM从PRD重新装载,当定时器设定为自动装载模式时(ARB=1)。
定时器控制寄存器TCR如图3所示,使用它的特定位可以实现对定时器进行配置、启动、停止、装载和重新装载等,表1是对定时器控制寄存器TCR每位进行说明。
图3定时器控制寄存器TCR
R=读W=写-n=复位值
定时器引脚功能模式合法转换如图3所示,FUNC位的某些改变会产生一个错误并反映在ERRTIM位,FUNC=01b到FUNC=00b或11b,FUNC=10b到FUNC=00b或11b,FUNC=11b到任意值都会产生一个错误,当ERRTIM=1,复位DSP并重新初始化定时器.
计算方波周期,初始化定时器0
f=50MHz,定时2ms时:
根据定时器长度计算公式:
Tt=T*(1+TDDR)*(1+PRD)
给定TDDR=9,PRD=9999,CLKOUT主频f=50MHz,T=20ns
Tt=20ns*(1+9)*(1+9999)=2000us=2ms
f=100Mhz,定时最大是:
10ns*2^4*2^16=10ms
使用定时器首先要对它初始化,基本步骤如下:
1.关掉中断
2.停止定时器运行.
3.设定时器的定时长度
4.答应定时器中断
5.运行定时器
6.打开中断
6.2XF引脚周期性变化
最简单的程序:
TestXF1。
asm
循环对XF位置1和清0,用示波器可以在XF脚检测到电平高低周期性变化
。
mmregs
;
预定义的寄存器
.def
CodeStart
;
定义程序入口标记
.text
;
程序区
CodeStart:
程序入口
SSBX
XF
;
XF置1
RPT
#999
;
重复执行1000次空指令产生延时
NOP
RSBX
XF
;
XF清0
#999
NOP
B
;
跳转到程序开头循环执行
.end
NOP指令执行时间为一个时钟周期,设DSP工作频率是50MHz,可以估算出X
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 音频 信号发生器