基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx

上传人:b****6 文档编号:5085928 上传时间:2022-12-13 格式:DOCX 页数:26 大小:234.95KB
下载 相关 举报
基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx_第1页
第1页 / 共26页
基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx_第2页
第2页 / 共26页
基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx_第3页
第3页 / 共26页
基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx_第4页
第4页 / 共26页
基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx

《基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx(26页珍藏版)》请在冰豆网上搜索。

基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告.docx

基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告

基于TMS320VC5509DSP的语音信号的FIR滤波器课程设计报告

DSP原理与应用

课程设计报告书

课题名称

基于TMS320VC5509DSP的语音信号的FIR滤波器

姓名

学号

院、系、部

专业

指导教师

 

 

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

 

指导教师评阅书

指导教师评价:

一、撰写(设计)过程

1、学生在论文(设计)过程中的治学态度、工作精神

□优□良□中□及格□不及格

2、学生掌握专业知识、技能的扎实程度

□优□良□中□及格□不及格

3、学生综合运用所学知识和专业技能分析和解决问题的能力

□优□良□中□及格□不及格

4、研究方法的科学性;技术线路的可行性;设计方案的合理性

□优□良□中□及格□不及格

5、完成毕业论文(设计)期间的出勤情况

□优□良□中□及格□不及格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

建议成绩:

□优□良□中□及格□不及格

(在所选等级前的□内画“√”)

指导教师:

(签名)单位:

(盖章)

年月日

评阅教师评阅书

评阅教师评价:

一、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

二、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

建议成绩:

□优□良□中□及格□不及格

(在所选等级前的□内画“√”)

评阅教师:

(签名)单位:

(盖章)

年月日

教研室(或答辩小组)及教学系意见

教研室(或答辩小组)评价:

一、答辩过程

1、毕业论文(设计)的基本要点和见解的叙述情况

□优□良□中□及格□不及格

2、对答辩问题的反应、理解、表达情况

□优□良□中□及格□不及格

3、学生答辩过程中的精神状态

□优□良□中□及格□不及格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

评定成绩:

□优□良□中□及格□不及格

(在所选等级前的□内画“√”)

教研室主任(或答辩小组组长):

(签名)

年月日

教学系意见:

系主任:

(签名)

年月日

 

基于TMS320VC5509DSP的语音信号的FIR滤波器设计

一、实践的目的和要求

1.熟悉ICETEK-VC5509-A板上语音codec芯片TLV320AIC23的设计和程序控制原理。

2.熟悉FIR滤波器工作原理及编程。

3.掌握使用TI的算法库dsplib提高程序运行效率的方法。

4.学习使用CCS图形观察窗口观察和分析语音波形及其频谱。

二、实践原理:

在数字信号处理中,滤波占有极其重要的地位。

数字滤波是语音处理、图像处理、模式识别、频谱分析等应用中的基本处理算法。

用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点。

VC5509引脚图

过渡带宽度=阻带边缘频宽-通带边缘频率

采样频率:

f1=通带边缘频率+(过渡带宽度)/2

理想低通滤波器脉冲响应:

h1[n]=sin(nΩ1)/n/π

根据要求,选择布莱克曼窗,窗函数长度为:

N=5.98fs/过渡带宽度

选择N=30

w[n]=0.42+0.5cos(2πn/30)+0.8cos(4πn/24)

滤波器脉冲响应为:

h[n]=h1[n]w[n]|n|<=12

h[n]=0|n|>12

根据上面计算,各式算出h[n],然后将脉冲响应值移位为因果序列。

完成的滤波器的差分方程为:

y[n]=-0.001x[n-2]-0.002x[n-3]-0.002x[n-4]+0.01x[n-5]-0.009x[n-6]-0.018x[n-7]-0.049x[n-8]-0.02x[n-9]+0.11x[n-10]+0.28x[n-11]+0.64x[n-12]+0.28x[n-13]-0.11x[n-14]-0.02x[n-15]+0.049x[n-16]-0.018x[n-17]-0.009x[n-18]+0.01[n-19]-0.002x[n-20]-0.002x[n-21]+0.001x[n-22]

三、实践步骤

1.首先自己参照指导书完《语音信号的FIR滤波实验》,认真阅读实验中的源程序,深刻理解语音信号FIR滤波的原理及具体实现方法,包括含噪语音信号的读取,滤波后信号的输出,语音编解码器的设置(AIC23),重点理解FIR滤波器的实现(循环寻找的实现)

2.语音采集的采集与分析

(1)录制语音,并命名为“e”,保存在相应的位置(桌面)。

(2)用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱。

程序如下:

fs=22050;

[x,fs,Nbits]=wavread('C:

\DocumentsandSettings\Owner\桌面\e');

t=0:

1/22050:

(length(x)-1)/22050;

sound(x,fs);%对加载的语音信号进行回放

figure

(1)

plot(x)%做原始语音信号的时域图形

title('原始语音信号');

xlabel('timen');

ylabel('fuzhin');

figure

(2)

freqz(x)%绘制原始语音信号的频率响应图

title('频率响应图')

n=length(x);%求出语音信号的长度

y1=fft(x,n);%傅里叶变换

y2=fftshift(y1);%对频谱图进行平移

f=0:

fs/n:

fs*(n-1)/n;%得出频点

figure(3)

subplot(2,1,1);

plot(abs(y2))%做原始语音信号的FFT频谱图

title('原始语音信号FFT频谱')

subplot(2,1,2);

plot(f,abs(y2));%绘制原始语音信号的频谱图

title('原始语音信号频谱')

%加噪声

k=1:

1:

n;%定义k值,噪声与原始语音长度一致

c1=100000*sin(2*pi*5000*k);%噪声信号的函数

z=x'+c1;%噪音与原始信号叠加

wavwrite(z,8000,16,'C:

\DocumentsandSettings\Owner\桌面\e2');%得到含噪语音

s=length(c1);

y3=fft(z,s);%对叠加信号进行频谱变换

y4=fftshift(y3);%对频谱图平移

f=0:

fs/s:

fs*(s-1)/s;%得出频点

figure(4)

plot(z)%做原始语音信号的时域图形

title('加噪语音信号');

xlabel('timen');

ylabel('fuzhin');

figure(5)

plot(f,abs(y4));%绘出加噪语音频谱图

axis([080000100]);

title('含噪语音信号的频谱');

figure(6)

subplot(2,1,1);

plot(f,abs(y2))%做原始语音信号的FFT频谱图

title('原始语音信号FFT频谱')

subplot(2,1,2);

plot(f,abs(y4))%做加噪语音信号的FFT频谱图

title('加噪语音信号频谱')

原始语音信号

加噪语音信号

原始语音信号FFT频谱

含噪语音信号频谱

原始语音信号FFT频谱

频率响应图

3.设计一定参数的滤波器

使用fir2函数设计一个31阶低通滤波器,信号的采样频率为8000Hz,滤波器的通带截止频率为2900Hz,阻带截止频率为3300Hz。

在函数中,其截止频率均用归一化频率表示。

归一化频率的计算方法:

f=实际频率/(采样频率/2),则将截止频率归一化后的截止频率值为0.725、0.825

用fir2函数实现的格式:

f=[00.7250.8251];

m=[1100];

b=fir2(30,f,m);

b=-0.0005,0.0004,0.0003,-0.0018,0.0039,-0.0045,

0.0009,0.0086,-0.0210,0.0279,-0.0173,-0.0191,

0.0793,-0.1486,0.2043,0.7744,0.2043,-0.1486,

0.0793,-0.0191,-0.0173,0.0279,-0.0210,0.0086,0.0009,

-0.0045,0.0039,-0.0018,0.0003,0.0004,-0.0005

Audio滤波程序如下:

#include"myapp.h"

#include"ICETEK-VC5509-EDU.h"

#include"scancode.h"

#include

#defineFIRNUMBER31

#defineSIGNAL1F2900

#defineSIGNAL2F3300

#defineSAMPLEF8000

#definePI3.1415926

floatInputWave();

floatFIR();

floatfHn[FIRNUMBER]={-0.0005,0.0004,0.0003,-0.0018,

0.0039,-0.0045,0.0009,0.0086,-0.0210,0.0279,-0.0173,

-0.0191,0.0793,-0.1486,0.2043,0.7744,0.2043,-0.1486,

0.0793,-0.0191,-0.0173,0.0279,-0.0210,0.0086,0.0009,

-0.0045,0.0039,-0.0018,0.0003,0.0004,-0.0005};

floatfXn[FIRNUMBER]={0.0};

floatfInput,fOutput;

floatfSignal1,fSignal2;

floatfStepSignal1,fStepSignal2;

floatf2PI;

inti;

floatfIn[256],fOut[256];

intnIn,nOut;

main()

{

nIn=0;nOut=0;

f2PI=2*PI;

fSignal1=0.0;

fSignal2=PI*0.1;

fStepSignal1=2*PI/30;

fStepSignal2=2*PI*1.4;

while

(1)

{

fInput=InputWave();

fIn[nIn]=fInput;

nIn++;nIn%=256;

fOutput=FIR();

fOut[nOut]=fOutput;

nOut++;/*breakpoint*/

if(nOut>=256)

{nOut=0;

}

}

}

floatInputWave()

{

for(i=FIRNUMBER-1;i>0;i--)

fXn[i]=fXn[i-1];

fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0;

fSignal1+=fStepSignal1;

if(fSignal1>=f2PI)fSignal1-=f2PI;

fSignal2+=fStepSignal2;

if(fSignal2>=f2PI)fSignal2-=f2PI;

return(fXn[0]);

}

floatFIR()

{

floatfSum;

fSum=0;

for(i=0;i

{

fSum+=(fXn[i]*fHn[i]);

}

return(fSum);

}

语音信号的FIR滤波程序

#include"5509.h"

#include"util.h"

#include"audio.h"

//AIC23ControlRegisteraddresses

#defineAIC23_LT_LINE_CTL0x00//0

#defineAIC23_RT_LINE_CTL0x02//1

#defineAIC23_LT_HP_CTL0x04//2

#defineAIC23_RT_HP_CTL0x06//3

#defineAIC23_ANALOG_AUDIO_CTL0x08//4

#defineAIC23_DIGITAL_AUDIO_CTL0x0A//5

#defineAIC23_POWER_DOWN_CTL0x0C//6

#defineAIC23_DIGITAL_IF_FORMAT0x0E//7

#defineAIC23_SAMPLE_RATE_CTL0x10//8

#defineAIC23_DIG_IF_ACTIVATE0x12//9

#defineAIC23_RESET_REG0x1E//F-Writing0tothisregtriggersreset

//AIC23ControlRegistersettings

#definelt_ch_vol_ctrl0x0017/*0*/

#definert_ch_vol_ctrl0x0017/*1*/

#definelt_ch_headph_ctrl0x0079/*2*/

#definert_ch_headph_ctrl0x0079/*3*/

#definealog_au_path_ctrl0x0000/*4*/

#definedigi_au_path_ctrl0x0000/*5*/

#definepow_mgt_ctrl_ctrl0x0002/*6*/

#definedigi_au_intf_ctrl0x000D/*7*/

#defineau_FS_TIM_ctrl0x0000/*8MCLK=12MHz,SampleRatesetting*/

#definedigi_intf1_ctrl0x0001/*9*/

#definedigi_intf2_ctrl0x00FF/*10*/

#defineDIGIF_FMT_MS0x40

#defineDIGIF_FMT_LRSWAP0x20

#defineDIGIF_FMT_LRP0x10

#defineDIGIF_FMT_IWL0x0c

#defineDIGIF_FMT_FOR0x03

#defineDIGIF_FMT_IWL_160x00

#defineDIGIF_FMT_IWL_200x04

#defineDIGIF_FMT_IWL_240x08

#defineDIGIF_FMT_IWL_320xc0

#defineDIGIF_FMT_FOR_MSBRIGHT0x00

#defineDIGIF_FMT_FOR_MSLEFT0x01

#defineDIGIF_FMT_FOR_I2S0x02

#defineDIGIF_FMT_FOR_DSP0x03

#definePOWER_DEV0x80

#definePOWER_CLK0x40

#definePOWER_OSC0x20

#definePOWER_OUT0x10

#definePOWER_DAC0x08

#definePOWER_ADC0x04

#definePOWER_MIC0x02

#definePOWER_LINE0x01

#defineSRC_CLKOUT0x80

#defineSRC_CLKIN0x40

#defineSRC_SR0x3c

#defineSRC_BOSR0x02

#defineSRC_MO0x01

#defineSRC_SR_440x20

#defineSRC_SR_320x18

#defineSRC_SR_80x0c

#defineANAPCTL_STA0xc0

#defineANAPCTL_STE0x20

#defineANAPCTL_DAC0x10

#defineANAPCTL_BYP0x08

#defineANAPCTL_INSEL0x04

#defineANAPCTL_MICM0x02

#defineANAPCTL_MICB0x01

#defineDIGPCTL_DACM0x08

#defineDIGPCTL_DEEMP0x06

#defineDIGPCTL_ADCHP0x01

#defineDIGPCTL_DEEMP_DIS0x00

#defineDIGPCTL_DEEMP_320x02

#defineDIGPCTL_DEEMP_440x04

#defineDIGPCRL_DEEMP_480x06

#defineDIGIFACT_ACT0x01

#defineLT_HP_CTL_LZC0x80

#defineRT_HP_CTL_RZC0x80

voidAIC23_Write(unsignedshortregaddr,unsignedshortdata)

{

unsignedcharbuf[2];

buf[0]=regaddr;

buf[1]=data;

I2C_Write(I2C_AIC23,2,buf);

}

voidMcBSP0_InitSlave()

{

PC55XX_MCSPpMCBSP0=(PC55XX_MCSP)C55XX_MSP0_ADDR;

//PuttheMCBSPinreset

Write(pMCBSP0->spcr1,0);

Write(pMCBSP0->spcr2,0);

//Configframeparameters(32bit,singlephase,nodelay)

Write(pMCBSP0->xcr1,XWDLEN1_32);

Write(pMCBSP0->xcr2,XPHASE_SINGLE|XDATDLY_0);

Write(pMCBSP0->rcr1,RWDLEN1_32);

Write(pMCBSP0->rcr2,RPHASE_SINGLE|RDATDLY_0);

//Disableintframegenerationandenableslavew/extframesignalsonFSX

//Framesyncisactivehigh,dataclockedonrisingedgeofclkx

Write(pMCBSP0->pcr,PCR_CLKXP);

//Bringtransmitterandreceiveroutofreset

SetMask(pMCBSP0->spcr2,SPCR2_XRST);

SetMask(pMCBSP0->spcr1,SPCR1_RRST);

}

voidAIC23_Init()

{

I2C_Init();

//Resett

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1