DSP课程设计报告.docx

上传人:b****8 文档编号:9799425 上传时间:2023-05-21 格式:DOCX 页数:23 大小:175.24KB
下载 相关 举报
DSP课程设计报告.docx_第1页
第1页 / 共23页
DSP课程设计报告.docx_第2页
第2页 / 共23页
DSP课程设计报告.docx_第3页
第3页 / 共23页
DSP课程设计报告.docx_第4页
第4页 / 共23页
DSP课程设计报告.docx_第5页
第5页 / 共23页
DSP课程设计报告.docx_第6页
第6页 / 共23页
DSP课程设计报告.docx_第7页
第7页 / 共23页
DSP课程设计报告.docx_第8页
第8页 / 共23页
DSP课程设计报告.docx_第9页
第9页 / 共23页
DSP课程设计报告.docx_第10页
第10页 / 共23页
DSP课程设计报告.docx_第11页
第11页 / 共23页
DSP课程设计报告.docx_第12页
第12页 / 共23页
DSP课程设计报告.docx_第13页
第13页 / 共23页
DSP课程设计报告.docx_第14页
第14页 / 共23页
DSP课程设计报告.docx_第15页
第15页 / 共23页
DSP课程设计报告.docx_第16页
第16页 / 共23页
DSP课程设计报告.docx_第17页
第17页 / 共23页
DSP课程设计报告.docx_第18页
第18页 / 共23页
DSP课程设计报告.docx_第19页
第19页 / 共23页
DSP课程设计报告.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

DSP课程设计报告.docx

《DSP课程设计报告.docx》由会员分享,可在线阅读,更多相关《DSP课程设计报告.docx(23页珍藏版)》请在冰点文库上搜索。

DSP课程设计报告.docx

DSP课程设计报告

课程设计报告

 

课程设计名称:

DSP原理与应用

系部:

学生姓名:

班级:

学号:

成绩:

指导教师:

开课时间:

2010-2011学年2学期

 

基于TMS320VC5509DSP的FIR滤波器设计

一、设计的要求

1、系统地理解和掌握高速数字信号处理器的特点和基本概念。

2、了解TMS320054xDSP汇编语言的特点,掌握TMS320C54xDSP常用的开发工具,掌握集成开发环境CCS的使用,熟练掌握利用CCS进行程序开发的一般过程。

3、掌握汇编语言程序的编写方法,汇编器和链接器的用法,能利用汇编指令实现高速数字信号处理器的一些典型用法。

4、在DSP应用方面得到系统锻炼,通过该课程的学习为今后从事使用DSP技术在通讯、控制等相关领域的应用、研究和开发打下良好的基础,为进入社会增加一种工作技能。

5、认真查阅所需资料,按照选题编制程序框图,编写源代码程序,并在DSP开发环境中进行调试,最终实现课题所要求的功能。

二、设计原理

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

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

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

2.1、TMS320VC5509简介

   TMS320VC5509是美国德州仪器公司(TI)推出的新一代数字信号处理器,其CPU在结构上包含一个32×16位指令缓存队列、2个17位×17位乘累16位算术逻辑单元(MAC)、一个40位算术逻辑单元(ALU)、一个16位算术逻辑单元(ALU)、一个40位桶形移位器和4个40位加法器。

TMS320 VC5509支持多种工业标准的串行口,如:

多通道缓冲串行口(McBSPs)、多媒体卡/安全数据串行口(MMC/SD)、USB和I2C总线接口等。

还具有增强型主机接口(EHPI)、通用I/O口、可编程数字锁相环(DPLL)、计时器和多个DMA控制器等片上外设。

TMS320VC5509高度并行的结构与优化的指令集合在一起,使得每个操作所需的时钟周期数在减少,而代码密度则在增加,进而提供了一个代码长度小、耗能低、高性能的数字信号处理引擎。

2.2、FIR滤波器的基本结构

数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。

一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足常系数线性差分方程:

(1)

x(n):

输入序列,y(n):

输出序列,ai、bi:

滤波器系数,N:

滤波器的阶数。

在式

(1)中,若所有的ai均为0,则得FIR滤波器的差分方程:

(2)

对式

(2)进行z变换,可得FIR滤波器的传递函数:

FIR滤波器的基本结构是一个分节的延时线,把每一节的输出加权累加,得到滤波器的输出。

FIR滤波器的结构图如图2.1所示:

z-1

图2.1FIR滤波器的结构图

FIR滤波器的单位冲激响应h(n)为有限长序列。

若h(n)为实数,且满足偶对称或奇对称的条件,则FIR滤波器具有线性相位特性。

偶对称:

h(n)=h(N-1-n);

奇对称:

h(n)=-h(N-1-n)。

在数字滤波器中,FIR滤波器具有如下几个主要特点:

①FIR滤波器无反馈回路,是一种无条件稳定系统;

②FIR滤波器可以设计成具有线性相位特性。

三、实践步骤

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

3.2语音采集的采集与分析

(1)录制语音,并命名为“wjj”,保存在相应的位置(C盘)。

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

程序如下:

fs=22050;

x1=wavread('C:

\wjj.wav');

sound(x1,22050);%播放语音信号

y1=fft(x1,1024);%对信号做1024点FFT变换

f=fs*(0:

511)/1024;

figure

(1)

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

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

xlabel('timen');

ylabel('fuzhin');

figure

(2)

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

title('频率响应图')

figure(3)

subplot(2,1,1);

plot(abs(y1(1:

512)))%做原始语音信号的FFT频谱图

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

subplot(2,1,2);

plot(f,abs(y1(1:

512)));

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

xlabel('Hz');

ylabel('幅值');

图3.1原始语音信号图

图3.2频率响应图

图3.3原始语音信号FFT频谱和信号频谱图

3.3给原始的语音信号加上一个高频余弦噪声,频率为(5—6Khz任选),形成噪声文件。

再对加噪后的语音进行分析,并画出其信号时域和频谱图。

程序如下:

fs=22050;

x1=wavread('C:

\wjj.wav');

f=fs*(0:

511)/1024;t=0:

1/fs:

(length(x1)-1)/fs;

Au=0.03;d=[Au*cos(2*pi*5500*t)]';

x2=x1+d;

sound(x2,22050);

y2=fft(x2,1024);

figure(4);plot(t,x2)

title('加噪后的信号');

xlabel('timen');

ylabel('fuzhin');

figure(5)

subplot(2,1,1);

plot(f,abs(y1(1:

512)));

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

xlabel('Hz');

ylabel('fuzhi');

subplot(2,1,2);

plot(f,abs(y2(1:

512)));

title('加噪后的信号频谱');

xlabel('Hz');

ylabel('fuzhi');

wavwrite(x2,8000,16,'C:

\wjj1.wav');%用于生成噪声语音

图3.4加噪后的信号

通过比较图1和图4,可以看出,加噪声后的信号的幅值明显比原始信号的幅值高。

图3.5原始语音和加噪后的信号频谱对比图

四设计一定参数的滤波器

4.1用MATLAB设计滤波器

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

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

归一化频率的计算方法:

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

4.1.1用matlab求fir2的参数:

运行下列程序:

f=[00.7750.8751]

m=[1100]

b=fir2(34,f,m)

得到的数据

f=

00.77500.87501.0000

m=

1100

b=

Columns1through7

0.0000-0.00030.0007-0.00130.0017-0.0012-0.0012

Columns8through14

0.0059-0.01210.0170-0.01640.00580.0175-0.0528

Columns15through21

0.0950-0.13560.16500.82420.1650-0.13560.0950

Columns22through28

-0.05280.01750.0058-0.01640.0170-0.01210.0059

Columns29through35

-0.0012-0.00120.0017-0.00130.0007-0.00030.0000

4.1.2FIR滤波器的程序流程图

调用FIR滤波子程序计算当前输出

返回波形值

FIR滤波

4.1.3滤波程序如下:

#include"myapp.h"

#include"ICETEK-VC5509-EDU.h"

#include"scancode.h"

#include

#defineFIRNUMBER35

#defineSIGNAL1F3100

#defineSIGNAL2F3500

#defineSAMPLEF8000

#definePI3.1415926

floatInputWave();

floatFIR();

floatfHn[FIRNUMBER]={0.0000,-0.0003,0.0007,-0.0013,0.0017,-0.0012,-0.0012,

0.0059,-0.0121,0.0170,-0.0164,0.0058,0.0175,-0.0528,

0.0950,-0.1356,0.1650,0.8242,0.1650,-0.1356,0.0950,-0.0528,

0.0175,0.0058,-0.0164,0.0170,-0.0121,0.0059,

-0.0012,-0.0012,0.0017,-0.0013,0.0007,-0.0003,0.0000};

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滤波器的DSP实现程序采用C语言编写,滤波器时频特性如图4.2和图4.5所示。

利用设计好的FIR滤波器对叠加了高频噪声的输入信号进行滤波,滤波后的波形及频谱如图4.1和图4.4所示,滤波后的波形及频谱如图4.3和图4.6所示。

通过时域波形的对比发现,叠加了高频噪声的输入信号经过FIR低通滤波器后,信号相对滤波前变得光滑;由频域波形对比同样可以发现有用的低频信号被保留下来,而高频噪声被很好地滤除掉了

图4.1

图4.4

图4.2

图4.3

图4.5

图4.6

4.2对生成的加噪语音进行噪声滤波,并对滤波后的语音进行分析。

4.2.1语音信号的FIR滤波程序流程图如下:

调用AIC23_Mixer子程序处理音频数据输入/输出

原声音送左声道,滤波结果送右声道,输出到McBSP0

4.2.2语音信号的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();

//ResettheAIC23andturnonallpower

AIC23_Write(AIC23_RESET_REG,0);

AIC23_Write(AIC23_POWER_DOWN_CTL,0);

AIC23_Write(AIC23_ANALOG_AUDIO_CTL,ANAPCTL_DAC|ANAPCTL_INSEL);//使用麦克风音源

AIC23_Write(AIC23_DIGITAL_AUDIO_CTL,0);

//Turnonvolumeforlineinputs

AIC23_Write(AIC23_LT_LINE_CTL,0x000);

AIC23_Write(AIC23_RT_LINE_CTL,0x000);

//ConfiguretheAIC23formastermode,44.1KHzstereo,16bitsamples

//Use12MHzUSBclock

AIC23_Write(AIC23_DIGITAL_IF_FORMAT,DIGIF_FMT_MS|DIGIF_FMT_IWL_16|DIGIF_FMT_FOR_DSP);

AIC23_Write(AIC23_SAMPLE_RATE_CTL,SRC_SR_44|SRC_BOSR|SRC_MO);

//Turnonheadphonevolumeanddigitalinterface

AIC23_Write(AIC23_LT_HP_CTL,0x07f);//0x79forspeakers

AIC23_Write(AIC23_RT_HP_CTL,0x07f);

AIC23_Write(AIC23_DIG_IF_ACTIVATE,DIGIFACT_ACT);

//SetMcBSP0tobetransmitslave

McBSP0_InitSlave();

}

voidAIC23_Disable()

{

PC55XX_MCSPpMCBSP0=(PC55XX_MCSP)C55XX_MSP0_ADDR;

I2C_Disable();

//PuttheMCBSPinreset

Write(pMCBSP0->spcr1,0);

Write(pMCBSP0->spcr2,0);

}

#defineAUTIODATALEFT0x0d000

#defineAUTIODATARIGHT0x17000

int*pAudioLeft,*pAudioRight;

intwww=0;

voidAIC23_Mixer()

{

PC55XX_MCSPpMCBSP0=(PC55X

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2