DSP课程设计音频信号频谱分析论文.doc
- 文档编号:4842782
- 上传时间:2023-05-07
- 格式:DOC
- 页数:26
- 大小:517.79KB
DSP课程设计音频信号频谱分析论文.doc
《DSP课程设计音频信号频谱分析论文.doc》由会员分享,可在线阅读,更多相关《DSP课程设计音频信号频谱分析论文.doc(26页珍藏版)》请在冰点文库上搜索。
音频信号频谱分析
摘要
数字信号处理(DigitalSignalProcessing,DSP)是利用计算机或专用处理设备,以数字的形式对信号进行分析、采集、合成、变换、滤波、估算、压缩、识别等加工处理,以便提取有用的信息并进行有效的传输与应用。
与模拟信号处理相比,数字信号处理具有精确、灵活、抗干扰能力强、可靠性高、体积小、抑郁大规模集成等优点。
基于TMS320C5416DSP芯片的音频信号频谱分析的设计系统的主要功能对语音信号进行采样滤波后FFT变换,然后通过LCD观察其频谱分布。
本设计通过C语言编程来实现系统的功能。
关键词:
DSP;信号;频谱;FFT;LCD
目录
1绪论 1
1.1 设计目的 1
1.2设计要求 1
2设计原理 2
2.1TMS320C54x芯片简介 2
2.2TLV320AIC23芯片简介 3
2.312864LCD液晶显示屏简介 4
3系统总设计方案 4
4系统模块设计 4
4.1语音信号采集模块 4
4.2语音信号处理模块 6
4.3LCD显示模块 7
5设计结果显示 8
6设计心得 10
参考文献 11
致谢 12
附录设计程序 13
1绪论
1.1设计目的
1.熟悉TLV320AIC23的接口和使用;
2.熟悉McBSP多通道缓冲串口配置为SPI模式的通信的应用;
3.掌握一个完整的语音输入、输出通道的设计;
4.熟悉A/D转换的基本原理;
5.加深对DFT算法原理和基本性质的理解;
6.熟悉FFT算法原理和FFT子程序的应用;
7.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT;
8.了解LCD显示的基本原理;
9.学习用TMS320C54XDSP芯片控制LCD的基本方法和步骤。
1.2设计要求
DSP课程设计是对《数字信号处理》、《DSP原理及应用》等课程的较全面练习和训练,是实践教学中的一个重要环节。
通过本次课程设计,综合运用数字信号处理、DSP技术课程以及其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。
初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。
通过课程设计完成基本技能的训练,如查阅设计资料和手册、程序的设计、调试等,提高学生分析问题、解决问题的能力。
本题目通过TLC320AIC23采集音频信号(f.max<10kHz),编写DSP的FFT处理程序(自定频谱分辨力),获得幅频特性之后,在点阵液晶中大致显示出幅频图。
并在液晶中用文字显示频率幅值前三的频率值。
1.DSP与TLC320AIC23接口电路的原理图绘制;
2.DSP控制TLC320AIC23的程序编写与调试;
3.TLC320AIC23进行语音模拟量到数字信号的转换,实现声音的采集,在CCS软件中分析信号的幅频特性;
4.编写DSP的FFT处理程序;
5.控制点阵液晶,实现绘图功能,将幅频图显示出来
6.按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。
7.在报告中绘制程序的流程图,并文字说明。
2设计原理
2.1TMS320C54x芯片简介
C54x是一款低功耗、高性能的定点DSP芯片,其内部结构电路图如图2-1所示。
其CPU部分采用先进的多总线结构(1条程序总线、3条数据总线和4条地址总线)。
40位算术逻辑运算单元(ALU),包括1个40位桶形移位寄存器和2个独立的40位累加器。
17位并行乘法器,与40位专用加法器相连,用于非流水线式单周期乘法/累加(MAC)运算。
TMS320C5416DSP芯片共有192千字的可寻址存储空间。
这192千字的存储空间分为3个独立的可选择空间,分别为:
64千字的程序存储空间;64千字的数据存储空间;64千字的I/O空间。
所有的TMS320C5416DSP芯片都包括内部随机存储器(RAM)和只读存储器(ROM)。
内部随机存储器RAM又分为单寻址RAM(SARAM)和双寻址RAM(DARAM)两种类型。
为了满足数据处理的需要,TMS320C5416DSP芯片提供了必要的片内外部设备。
这些外部设备主要包括:
通用I/O引脚;定时器;时钟发生器;主机接口HPI;串行通信接口;软件可编程等待状态发生器;可编程分区转换逻辑。
TMS320C5416DSP芯片的外部总线具有很强的系统接口能力,可与外
部存储器以及I/O设备相连,能对64K字的数据存储空间,64K字的程序存储空间,以及64K字的I/O空间进行寻址。
独立的空间选择信号DS,PS和IS允许进行物理上分开的空间选择。
接口的外部数据准备输入信号(READY)与片内软件可编程等待状态发生器一道,可以使处理器与各种不同速度的存储器和I/O设备连接。
接口的保护方式能使外设对TMS320C5416DSP芯片的外部总线进行控制,使外部设备可以访问程序,数据和I/O空间的资源。
C5416DSP芯片是一种特殊结构的微处理器,为了快速实现数字信号处理运算,采用了流水线指令结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。
C5416采用先进的哈佛结构,具有片内存储器、中断、串口、并口等丰富的资源,加上高度专业化的指令系统,使C5416具有很高的性价比,已经广泛应用于通信、语音处理、图像处理、仪器仪表等无线电通信系统中。
图2-1TMS320C54x内部结构示意图
2.2TLV320AIC23芯片简介
TLV320AIC23是一种高性能的立体声音频Codec芯片作为从设备,主要完成输入语音信号的A/D转换,语音采样编解码及滤波处理,该芯片构成简单,功能强大。
TLV320AIC23工作电压3.3V,能在数字和模拟电压下工作,与TMS320C5416的I/O电压相兼容,其控制接口和数字接口与DSP的MCBSP端口能够无缝连接。
TLV320AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术(Sigma-delta一般用于ADC中,是高精度的A/D转换器,该转换器的特点是将绝大多数的噪声从动态转移到阻态),可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
2.312864LCD液晶显示屏简介
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
3系统总设计方案
本系统用DSP芯片TMS320C5416与音频编解码芯片TLV320AIC23实现硬件接口和软件设计,并在此硬件基础上实现语音信号的采集、频谱分析并用LCD显示语音信号的幅频特性曲线。
本系统包括音频采集、DSP对语音信号的处理、LCD显示三部分。
系统结构如图3-1所示:
TLV320AIC23
TMS320C5416DSP
12864LCD
音频信号输入
数据接口
控制接口
图3-1系统结构图
4系统模块设计
4.1语音信号采集模块
从适应语音信号频率、满足实时性、降低成本、简化设计的要求出发,本系统选择TLV320AIC23。
TLV320AIC23是一种高性能的立体声音频Codec芯片作为从设备,主要完成输入语音信号的A/D转换,语音采样编解码及滤波处理,该芯片构成简单,功能强大。
TLV320AIC23工作电压3.3V,能在数字和模拟电压下工作,与TMS320C5416的I/O电压相兼容,其控制接口和数字接口与DSP的MCBSP端口能够无缝连接。
TLV320AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术(Sigma-delta一般用于ADC中,是高精度的A/D转换器,该转换器的特点是将绝大多数的噪声从动态转移到阻态),可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
TLV320AIC23通过以下引脚与TMS320C5416连接。
BCLK:
I2S(一种TLV320AIC23的数字音频接口支持的通用的音频格式)串行数据传输时钟,当TLV320AIC23为主模式时BCLK由TLV320AIC23产生并提供给DSP,频率为主时钟的1/4,当从模式时由DSP产生;DIN:
I2S格式串行数据输入端,送入立体声DAC;DOUT:
I2S格式串行数据输出端,由立体声ADC产生;LRCIN/LRCOUT:
I2S格式数据输入/出帧同步信号;SCLK:
控制端口移位时钟;SDIN:
控制端口串行数据输入,用来传输配置TLV320AIC23内部寄存器数据;/CS:
控制端口输入和地址锁存选择端,在SPI控制模式下,作为数据锁存控制端,在I2C模式下,定义外设的7位地址;XTI/MCLK:
晶体或外部时钟输入端,TLV320AIC23内部时钟由它产生。
TLV320AIC23的工作时钟由外接的一个11.2896M的晶振提供,TLV320AIC23从电路模块电路如图4-1所示。
图4-1TLV320AIC23从电路模块电路
数字音频接口主要管脚为BCLK-数字音频接口时钟信号(bit时钟),当TLV320AIC23为从模式时(通常情况),该时钟由DSP产生;TLV320AIC23为主模式时,该时钟由TLV320AIC23产生;LRCIN-数字音频接口DAC方向的帧信号(I2S模式下word时钟);LRCOUT-数字音频接口ADC方向的帧信号;DIN-数字音频接口DAC方向的数据输入;DOUT-数字音频接口ADC方向的数据输出;这部分可以和DSP的McBSP(Multi-channelbufferedserialport,多通道缓存串口)无缝连接,唯一要注意的地方是McBSP的接收时钟和TLV320AIC23的BCLK都由McBSP的发送时钟提供。
麦克风输入接口主要管脚为MICBIAS-提供麦克风偏压,通常是3/4AVDD
MICIN-麦克风输入;LINEIN输入接口主要管脚为LLINEIN-左声道LINEIN输入RLINEIN-右声道LINEIN输入;配置接口主要管脚为SDIN-配置数据输入;SCLK用于配置时钟;DSP通过该部分配置TLV320AIC23的内部寄存器,每个word的前7bit为寄存器地址,后9bit为寄存器内容。
TLV320AIC23有两个数字接口,其一是由CS(控制信号)、SDIN(信号数据输入)、SCLK(信号时钟)和MODE(模式)构成的数字控制接口,通过它将芯片的控制字写入TLV320AIC23,从而控制TLV320AIC23功能;另一组是由LRCIN(左右声控制输入)、DIN(数据输入)、LROUT(左右声输出)、DOUT(数据输出)和BLCK(时钟)组成的数字音频接口,TLV320AIC23的数字音频信号从这个接口接收或发出。
TLV320AIC23内部还包含两个A/D、D/A变换器,其字长可以是16、20、24、32,同时TLV320AIC23内部的时钟可以通过XTI(晶振时钟输入)、XTO(时钟输出)和外接晶振构成时钟,也可以由外部直接输入时钟信号。
TLV320AIC23内部还包含有MIC偏置电路,使用外接MIC无需外置偏置电路。
4.2语音信号处理模块
有语音信号采集模块所采集的模块经过A/D转换输入TMS320C5416DSP芯片对其进行FFT运算,得其幅频特性曲线。
FFT算法的实现主要分为三个步骤:
1.实现输入数据的比特反转,输入数据的比特翻转实际上就是将输入数据进行位码倒置,以便在整个运算后的输出序列是一个自然序列。
2.实现N点复数FFT,这一过程的实现分为三个功能块,即第一级蝶形运算、第二级蝶形运算、第三级蝶形运算乃至log2N级蝶形运算。
对于任何一个2的整数幂N=2m,总可以通过M次分解到2点的DFT计算。
通过这样的M次分解,可构成M(log2N)级迭代计算,每级由N/2个蝶形运算组成。
3.功率普计算,即计算X(k)=X(n)WNnk,X(k)一般是由实部和虚部组成。
因此计算功率普时,只需将FFT变换好的数据,按照实部和虚部求它们的平方和即可。
设计的子程序流图如图4-2所示;
初始化
输入数组排序
计算第一层中间值
计算层数计算
对应层步长计算
计算各层中间结果
计算结果输出
计算层数=0?
Y
N
图4-2FFT运算子程序流图
4.3LCD显示模块
LCD数据接口基本上分为串行接口和并行接口两种形式,本设计系统选用的是北京青云创新科技公司生产的中文液晶显示模块,型号为LCM12864ZK_LCD,其字型ROM内含8192个16*16点中文型和128个16*8半宽的字母符号字型;另外绘图显示画面提供一个64*256点的绘图区域GDRAM;而且内含CGRAM提供4组软件可编程的16*16点阵造字功能。
本设计中,采用并行8位数据接口输入方式,把LCD映射到DSP芯片的I/O空间,通过读写I/O地址来控制液晶,TMS320C54xDSP芯片对该地址输出数据,实现LCD的显示控制。
LCD显示子程序流程图如图4-3所示。
图4-3LCD显示子程序流图
5设计结果显示
运用C语言编写设计所需要的程序(见附录),把程序下载到的实验箱中,观察LCD上所显示的幅频特性曲线如图5-1,图5-2所示。
图5-1基波幅频特性曲线
图5-2混频信号幅频特性曲线
上图中所显示的分别是基波和基波三次谐波以及五次谐波所叠加而得信号的幅频特性曲线,并且所给信号是一定的,LCD的只进行一次扫描,并且是点状图。
对程序稍作修改可以实现动态显示,也可以实现用柱形图来表示频谱,如图4-3所示。
图5-3幅频特性柱状图
6设计心得
为期两周的DSP课程设计结束了,在这两周的时间里,我认认真真地学习了DSP的相关知识。
这个学期由于准备考研,所以基础知识学得不是很扎实,正好利用课程设计这个机会,对没有掌握好的知识进行一个补习。
我这次课程设计要做的是音频信号频谱分析。
在一开始我就被语音信号的采集难住了。
所以只好从LCD显示这一块先着手做,用一个正弦信号,将其通过DSP芯片进行FFT,在通过LCD显示其快速傅里叶变换的结果,即其幅频特性。
在刚开始的时候,我首先从最简单的程序开始着手,首先看懂程序是什么意思,在尝试在这个基础上对程序进行修改,看程序是否出错,或者说实验的结果会有什么样的改变。
用这种方法是自己尽快的熟悉这个系统的编程的方式。
在课程设计的过程中,虽然自己有许多的知识都不懂,但是能够在同学的帮助下,老师的指导下解决一些问题,我觉得这就是进步,这就是收获。
通过这两周的课程设计,让我对DSP的应用有了更好的理解,同时对LCD的显示这一块也学到了不少的东西,总之,这两周的课程设计过的很充实,收获很大。
参考文献
[1]邹彦.DSP原理及应用[M].北京:
电子工业出版社,2005,1.
[2]戴明桢.TMS320C54xDSP结构、原理及应用[M].北京航空航天大学出版社,2001,8.
[3]胡圣尧.DSP原理及应用[M].东南大学出版社,2008.7.
[4]清源科技.TMS320C54xDSP应用程序设计教程[M].机械工业出版社,2004,1.
[5]清源科技.TMS320C54x硬件开发教程[M].机械工业出版社,2003,1.
致谢
在本次课程设计中,我常常会遇到自己弄不明白的问题,比如说程序看不懂,调试时显示结果与预期不一致等等。
而每当我遇到困难的时候,老师总会耐心地给我讲解,帮助我发现问题,纠正错误;同学也会很热情的帮助我修改和完善设计方案。
在这样一个良好的环境下,我顺利地完成了本次DSP课程设计,让我发现了自己所学知识的盲点和漏洞,提升了我的动手能力。
特在此对给予我帮助的老师和同学们表示衷心的感谢!
你们辛苦了!
附录设计程序
//------------------头文件--------------------------------------
//#include"MMRegs.h"
#include"DspRegDefine.h"//VC5402寄存器定义
#include
#include
//---------------------------------------------------------------
/*******************宏定义***************
************************************************************
*/
#defineUCHAR unsignedchar
#defineUINT16 unsignedint
#defineUINT32 unsignedlong
#defineTRUE 1
#defineFALSE 0
#defineLEN128
//---------------------------------------------------------------
//---------------LCD指令-----------------------------
//基本指令集RE=0
#defineCLEAR0x0001//清除显示
#defineRESAC0x0002//位址歸位
#defineSETPOINT0x0006//進入點設定,游標右移,DDRAM位址計數器(AC)加1
#defineCURSOR0x000F//整體顯示,游標顯示,游標位置反白
#defineMCURSOR0x0014//游標向右移動,AC=AC+1
#defineFUCSET0x0030//功能設定,BITMPU控制界面,基本指令集,默认设置
#defineCGRAMAC0x0040//設定CGRAM位址
#defineDDRAMAC0x0080//設定DDRAM位址
//第一行AC範圍為80H..8FH
//第二行AC範圍為90H..9FH
//第三行AC範圍為A0H..AFH
//第四行AC範圍為B0H..BFH
//#defineREADBFRS=0,RW=1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
//BFAC6AC5AC4AC3AC2AC1AC0
//讀取忙碌旗標(BF)和位址
//就是读取指令寄存器,PORT8006,BF=1,表示LCD忙碌
//#defineWRITERAMRS=1,RW=0,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
//D7D6D5D4D3D2D1D0
//寫入資料到RAM
//就是写数据寄存器:
PORT8005
//#defineREADRAMRS=1,RW=1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
//D7D6D5D4D3D2D1D0
//讀取RAM的值
//就是从数据寄存器讀取資料,PORT8007
//擴充指令集RE=1
#defineIDLE0x01//待命模式
#defineCGRAMSET0x02//捲動位址或RAM位址選擇
#defineREVERSE0x04//反白選擇
#defineSLEEP0x0c//脫離睡眠模式
#defineEFUCSET0x66//擴充功能設定,8BITMPU控制界面,為擴充指令集動作,繪圖顯示ON
#defineSISA0x40//設定IRAM位址或捲動位址
#defineSETGDRAM0x80//設定繪圖RAM位址
#defineLength128//FFT的点数
//---------------------------------------------------------
//---------------------------------------------------------
/*端口定义*/
//---------------------------------------------------------
ioportUINT16port8002;
ioportUINT16port8006;//串行时钟地址
ioportUINT16port8007;//串行数据地址
//----------------------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计 音频 信号 频谱 分析 论文