搜档网
当前位置:搜档网 › DSP创新实验

DSP创新实验

DSP创新实验
DSP创新实验

组号:10

创新性实验报告

题目:________立体声中人声消除_________________学院:________电子通信与物理学院_______________专业班级:________通信工程2012级2班______________学号:________201201101616_____________________学生姓名:_________刘文杰__________________________指导教师:_________颜斌____________________________完成日期:_________2015年7月17日_________________

1.摘要

本次实验设计中,针对立体声中双规音乐歌曲,我们设计了基于MATLAB的人声消除程序设计,去除立体声中的人声,从而获得纯音乐。我们的设计特点使用MATLAB软件设计程序,简单易操作,失真小。我们首先判断输入音乐是否是立体声,然后分离出立体声中的人声,得到纯音乐。另外,我们将自己录的人声和纯音乐合成,得到合成音乐。在实验中,我们掌握了立体声中人声消除及声音合成的简单方法,熟练运用了MATLAB软件,并获得了纯音乐以及录音合成音乐。

关键词:声道人声消除立体声声音合成

2.设计的目的

本次设计目的是消除立体声中的人声并且把消除人声后的音乐和自己录得人声合成为新的音乐,主要解决的问题是把立体声中两个声道中的人声去掉,然后加入自己的声音。在设计完成后,根据消除人声的纯音乐中是否存在人声以及人声消除的失真度判断设计的的质量好坏;还有在合成音乐设计中,设计指标是合成音乐的人声和节拍的同步性以检测合成设计的质量。

3.设计的原理

首先,一般在立体声录制过程中分两个声道:左声道和右声道。两个声道分别录制不同的乐器并且两个声道加入同样的人声,从而合成为立体声。立体声录制图如下:

图1.立体声音乐录制

如果要对立体声中的人声消除时,即把左右两个声道中相同的部分去掉就留下纯音乐。即

左声道=左声道音乐+人声;右声道=右声道音乐+人声;纯音乐=左声道—右声道=左声道音乐—右声道音乐

通过以上基础算法从而了解纯音乐的原理,并且得出的纯音乐占有一个声道。对于额外任务中加入自己的录制人声的设计,基于以下算法:

合成音乐=人声录歌+纯音乐

需要注意的是,在录制人声时,时间应严格与立体声歌曲本身中的人声开唱同步,这样合成的后的歌曲节奏和音乐才同步,否则会造成不必要的麻烦,从而使得设计的程序更复杂化。

4.设计的过程

设计过程是基于MATLAB 软件平台操作的,过程分为如下几个步骤:

图2.人声消除及人声添加的步骤框图

读入音乐信号

判断是否两个声道

左右声道相减,得到纯音乐

画出波形,生成音乐文件

输出错误

读入纯音乐;读入所录人声

画出信号波形,人声和音乐相加

生成音乐文件,播放

首先读入立体声音乐信号,使用matlab 函数wavread 读入音乐得到音乐波形的矩阵y 、频率fs 及字节nbits ,矩阵的y1、y2列代表左右声道,y1-y2得到新的矩阵music,此时把新的矩阵音乐信号得到消除人声的音乐。

在添加人声的设计中,首先读入纯音乐信号和所录人声信号,得到相应矩阵,然后对应矩阵维度相加得到新矩阵生成新的音乐文件。相应代码显示为:

music=y_2(1:M,1)+y

y 为纯音乐信号生成矩阵,y_2是录音信号矩阵,M 是y 矩阵的行数,此种加法即为两个矩阵变成相同维度相加,从而得到合成音乐信号。

5.实验测试条件、配置和结果

本次实验中,立体歌曲原声截取的林忆莲的《至少还有你》歌曲片段,时间为1分钟10秒,采样率为

44100s ,其中左右声道的波形如下:

0.5

1

1.5

2

2.5

3

3.5x 10

6

-1-0.500.5

1left channel

0.5

1

1.5

2

2.5

3

3.5x 10

6-1-0.500.5

1right channel

图3.左右声道时域波形

经过人声消除实验后,得到消除人声的纯音乐,其时域波形图4所示:

00.51 1.52 2.53 3.5x 10

6

-1.5

-1

-0.5

0.5

1

1.5

voice removed signal

图4.纯音乐时域波形

播放生成的音乐文件,可以听到已经去除人声的音乐,并且音乐中失真度小杂音少,基本达到任务要求。

在合成人声与音乐的实验中,我们首先将录音中转换成相应的格式,然后分别绘出两种信号的波形,相加得出合成音乐及波形。

0123

4

x 10

6

-1

-0.500.5

1

linyilian__short__removed.wav

01234

5

x 10

6

-1

-0.5

0.5

1

my voice

图5.音乐信号波形

00.51 1.52 2.53 3.5x 10

6

-1.5

-1

-0.5

0.5

1

1.5

new music

图6.合成音乐波形

最后得到合成音乐文件,在matlab 中选用sound 函数播放,能听出音乐与录音同步的合成音乐。达到了实验设计的目的,基本完成基本任务和额外任务。

6.结论

根据以上实验,此次实验基本完成设计任务,达到了设计目的,即完成立体声中人声消除以及在音乐

中添加了自己的声音。本次实验设计的优势在于操作简单,波形清晰,易于理解。缺点是歌曲有部分失真,合成音乐中录音与节奏同步不明显,在以后的操作中应时刻掌握歌曲和音乐的同步时间,控制和歌声的力度与快慢,这将在以后的操作中改进。

7.参考文献

本节列出你设计过程中用到的参考文献。书籍按照:作者,书名,版次,出版社,出版年,出版地来写。期刊论文按照:作者、论文名、期刊名、年、卷、期、页码撰写。例如:

[1]陈怀琛.MATLAB 及其在理工课程中的应用指南.西安电子科技大学出版社,2000,西安.[2]陈怀琛.数字信号处理教程——MATLAB 释义与实现.电子工业出版社,2004,北京.[3]Holly Moore.MATLAB for Engineers.Prentice Hall ,2011,美国.

附录:

1.去除人声程序:

function HumanVoiceRemoval()

clear all;clc;

[y,fs,nbits]=wavread('linyilian_short.wav');

%检查音乐是否有两个声道

[M,N]=size(y);

if N==1

error('The music is not stereo');

elseif N>2

error('The music has more than two channels');

end

%绘出波形图

figure(1);

subplot(2,1,1);plot(y(:,1));title('left channel');

subplot(2,1,2);plot(y(:,2));title('right channel');

%去除人声

music=y(:,1)-y(:,2);

figure(2);

plot(music);title('voice removed signal');

%保存音乐

wavwrite(music,fs,16,'linyilian_short_removed.wav');

2.添加人声程序:

clear all;clc;

[y,fs,nbits]=wavread('linyilian_short_removed.wav');

[y_2,fs_2,nbits_2]=wavread('myvoice.wav');

[M,N]=size(y);

figure(1);%画出波形

subplot(121);plot(y);title('linyilian__short__removed.wav'); subplot(122);plot(y_2);title('my voice');

music=y_2(1:M,1)+y;%把录得人声加入纯音乐中;

figure(2);

plot(music);title('new music');

wavwrite(music,fs,16,'new_music.wav');%保存音乐文件

sound(y,fs);

pause;

sound(music,fs);

DSP实验报告

实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演示实验一为例: 1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源; 2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out; 3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框 5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1; DSP Data Type设置成16-bit signed integer,如下图所示; 6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察 7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果: 心得体会: 通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。

DSP实验二 拨码开关实验

实验二拨码开关实验 —、实验目的 1.了解DSP开发系统的组成和结构 2.了解IO的基本编程方法 二、实验设备 计算机,CCS3.3版本软件,DSP仿真器,E300实验箱,2812CPU板。 三、实验原理 8位的数字量输入(由拨码开关产生),当拨码打到靠近LED时为低。相反为高。通过 74LS244(可读)缓冲连接到DSP的数据总线的低8位。CPU通过读指令读取到拨码开关产 生的8位输出的数字量,然后CPU通过写指令把读出的8位数字量写入(0x2200)单元内, 使连接到DSP的数据总线的低8位的74LS273的输出端产生高低信号,此时LED灯产生亮灭。 当对应LED灯点亮时说明输出为低,熄灭时为高。 (器件74LS244和74LS273详细的介绍请参看数据手册) 数字量输入输出单元的资源分配如下: 基地址:2000h(当CS1为0时分配有效) 数字量分配空间为数据空间地址:基地 址+0x2200(低8位,只读) 拨码开关扩展工作原理 说明:74LS244片选号、74LS273 片选信号和74LS273复位信号由E300 上CPLD译码产生。 本实验使用DSP数据总线的低8 位。 实验任务一: 1、编写程序完成将拨码开关的信息读入DSP,然后再将该信息回写,控制led灯。调整"数字输入输出单元"的开关K1~K8,观察LED1~LED8灯亮灭的变化。 2、本实验的程序流程框图如下:

3、输入主要程序 #include "DSP281x_Device.h" // DSP281x Headerfile Include File #include "DSP281x_Examples.h" // DSP281x Examples Include File void main(void) { unsigned int temp; temp = 0; DINT; InitSysCtrl(); InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); for(;;) { asm(" nop "); temp = *(int *)0x2200&0x00ff; asm(" nop "); * (int *)0x2200 = temp; asm(" nop "); } } 四、实验步骤(步骤基本与实验一相同) 1. 2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON。 2.E300板上的开关SW4的第二位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。 3.运行Code Composer Studio (CCS)(CCS3.3需要“DEBUG→Connect”) 4. 用“Project\open”打开系统项目文件 路径为“c:\DSP_examep\DSP281X_examples\e300_02_switch\Example_281x_switch.pjt”双击该文件 5、输入主要程序。

DSP实验报告

一、综合实验内容和目的 1、实验目的 (1) 通过实验学习掌握TMS320F28335的浮点处理; (2) 学习并掌握A/D模块的使用方法; (3) 学习并掌握中断方式和查询方式的相关知识及其相互之间的转换; (4) 学习信号时域分析的方法,了解相关电量参数的计算方法; (5) 了解数字滤波的一些基本方法。 2、实验内容 要求1:对给定的波形信号,采用TMS320F28335的浮点功能计算该信号的以下时域参数:信号的周期T,信号的均方根大小V rms、平均值V avg、峰-峰值V pp。 其中,均方根V rms的计算公式如下: V= rms 式中N为采样点数,()u i为采样序列中的第i个采样点。 要求2:所设计软件需要计算采样的波形周期个数,并控制采样点数大于1个波形周期,且小于3个波形周期大小。 要求3:对采集的数据需要加一定的数字滤波。 二、硬件电路 相关硬件:TMS320F28335DSP实验箱,仿真器。

硬件结构图 三、程序流程图 1、主程序流程图 程序的主流程图2、子程序流程图

参数计算的流程图 四、实验结果和分析 1、实验过程分析 (1) 使用的函数原型声明 对ADC模件相关参数进行定义:ADC时钟预定标,使外设时钟HSPCLK 为25MHz,ADC模块时钟为12.5MHz,采样保持周期为16个ADC时钟。 (2) 定义全局变量 根据程序需要,定义相关变量。主要有:ConversionCount、Voltage[1024]、Voltage1[1024]、Voltage2[1024]、filter_buf[N]、filter_i、Max、Min、T、temp、temp1、temp2、temp3、Num、V、Vav、Vpp、Vrm、fre。这些变量的声明请见报告后所附的源程序。 (3) 编写主函数 完成系统寄存器及GPIO初始化;清除所有中断,初始化PIE向量表,将程

DSP实验二.

实验三 IIR 滤波器设计 一、实验目的: 1.认真复习滤波器幅度平方函数的特性,模拟低通滤波器的巴特沃思逼近、切比雪夫型逼近方法;复习从模拟低通到模拟高通、带通、带阻的频率变换法;从模拟滤波器到数字滤波器的脉冲响应不变法、双线性变换法的基本概念、基本理论和基本方法。 2掌握巴特沃思、切比雪夫模拟低通滤波器的设计方法;利用模拟域频率变换设计模拟高通、带通、带阻滤波器的方法.。 3.掌握利用脉冲响应不变法、双线性变换法设计数字滤波器的基本方法;能熟练设计巴特沃思、切比雪夫低通、带通、高通、带阻数字滤波器。 4.熟悉利用MATLAB 直接进行各类数字滤波器的设计方法。 二、实验内容 a. 设计模拟低通滤波器,通带截止频率为10KHz,阻带截止频率为16KHz,通带最大衰减1dB,阻带最小衰减20dB。 (1) 分别用巴特沃思、切比雪夫I、切比雪夫II 型、椭圆型滤波器分别进行设计,并绘制所设计滤波器的幅频和相频特性图。 (2) 在通带截止频率不变的情况下,分别用n=3,4,5,6 阶贝塞尔滤波器设计所需的低通滤波器,并绘制其相应的幅频响应和相频响应图。 %%%%%%%%%----巴特沃思-----%%%%%%% clc;clear all; omegap=10000*2*pi;omegas=16*10^3*2*pi; Rp=1;As=20; [N,omegac]=buttord(omegap,omegas,Rp,As,'s');%低通的节次 [b,a]=butter(N,omegac,'s'); [H,w]=freqs(b,a); %设计滤波器的幅频和相频特性图 subplot(211) plot(w/2*pi/1000,20*log10(abs(H)))

DSP实验

DSP原理与应用 实 验 报 告 姓名: 专业: 班级: 学号: 成绩: 2013年5月13日《DSP原理与应用》实验报告

一、实验题目 数字IO应用实验 二、实验目的 1. 了解TMS320LF2407A DSP 的数字I/O 控制模块的使用方法; 2. 学习使用I/O 管脚控制外围设备; 3. 学会用程序驱动简单外围设备。 三、实验设备 计算机,教学实验箱 四、实验原理 1. TMS320LF2407A DSP 的数字I/O 控制模块介绍 数字输入/输出模块是集成在TMS320LF2407A 片内的外设之一,它主要对芯片的通用、双向的数字I/O(GPIO)引脚进行控制。这些I/O 引脚大多数是基本功能和一般I/O 复用的引脚,数字I/O 模块采用了一种灵活的方法,以控制专用I/O 和复用I/O 引脚的功能,所有I/O 和复用引脚的功能可通过9 个16 位控制寄存器来设置,这些寄存器可分为两类: ·I/O 口复用控制寄存器(MCRx):用于控制选择I/O 口作为基本功能方式或一般I/O 引脚功能; ·数据和方向控制寄存器(PxDATDIR):当I/O 口用作一般I/O 引脚功能时,用数据和方向控制寄存器可控制数据和到双向I/O 引脚的数据方向,这些寄存器直接和双向I/O 引脚相连。 具体控制寄存器的访问地址、定义请参见有关资料。 2. ICETEK-LF2407-A 板引出的I/O 管脚及使用方法 ICETEK-LF2407-A 板使用了一些I/O 管脚对DSP 进行控制。例如:跳线JP6 连接DSP 上MP/MC 管脚,在DSP 复位时,DSP 可读回这一管脚的设置,当管脚接高电平时,DSP 采用微处理器(MP)方式工作,否则设置成微控制器(MC)方式。ICETEK-LF2407-A 板在扩展插头上将未使用的I/O 引脚接出,提供给用户连接使用。其定义见ICETEK-LF2407-A 板说明。这些管脚支持0-3.3V 逻辑电平操作,用户在进行相应设置后可以在I/O 管脚上进行输入或输出操作,使用时须注意根据引脚本身的负载能力驱动相关设备。 3. ICETEK-LF2407-EDU 实验箱及控制模块使用的I/O 管脚

北邮dsp软件实验报告

Matlab仿真实验 实验报告 学院:电子工程学院 专业:电子信息科学与技术 班级: 学号: 姓名:

时间:2015年12月23日 实验一:数字信号的FFT分析 1.实验目的 通过本次试验,应该掌握: (a)用傅里叶变换进行信号分析时基本参数的选择 (b)经过离散时间傅里叶变换和有限长度离散傅里叶变换后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。(c)离散傅里叶变化的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。(e)建立DFT从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用时数字音频压缩中的分析滤波器,例如DVD AC3和MPEG Audio。 2.实验容、要求及结果。 (1)离散信号的频谱分析: 设信号x(n)=0.001*cos(0.45n)+sin(0.3n)-cos(0.302n-) 此信号的0.3谱线相距很近,谱线0.45的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。 【实验代码】:

k=2000; n=[1:1:k]; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); subplot(2,1,1); stem(n,x,'.'); title(‘时域序列'); xlabel('n'); ylabel('x(n)'); xk=fft(x,k); w=2*pi/k*[0:1:k-1]; subplot(2,1,2); stem(w/pi,abs(xk)); axis([0 0.5 0 2]); title('1000点DFT'); xlabel('数字频率'); ylabel('|xk(k)|'); 【实验结果图】:

DSP实验程序及结果

#include"math.h" #define PI 3.1415926 #define WANG 16 #define RUI 1024 int FIRLOW(int *nx,float *nh,int nError,int nCoeffNumber); float h[WANG],fU; int xx[RUI],rr[RUI],wc[RUI]; main() { int i,n_Output=0; fU=0.0005; for ( i=0;i

FIR #include #define RUI 25 #define RUI1 1000 #define RUI2 4500 #define SAMPLEF 10000 #define PI 3.1415926 float Wave(); float FIR(); float fHn[RUI]={ 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009, -0.018,0.049,-0.02,0.11,0.28,0.64,0.28, -0.11,-0.02,0.049,-0.018,-0.009,0.01, -0.002,-0.002,0.001,0.0,0.0 }; float fXn[RUI]={ 0.0 }; float fInput,fOutput; float fSignal1,fSignal2; float fStepSignal1,fStepSignal2; float f2PI; int i; float fIn[256],fOut[256]; int nIn,nOut; main() { nIn=0; nOut=0; f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1; fStepSignal1=2*PI/30;

DSP实验报告

DSP实验报告 软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。

DSP实验报告-深圳大学-自动化

深圳大学实验报告课程名称:DSP系统设计 实验项目名称:DSP系统设计实验 学院:机电与控制工程学院 专业:自动化 指导教师:杜建铭 报告人1:. 学号:。班级:3 报告人2:. 学号:。班级:3 报告人3:. 学号:。班级:3 实验时间: 实验报告提交时间: 教务处制

实验一、CCS入门试验 一、实验目的 1. 熟悉CCS集成开发环境,掌握工程的生成方法; 2. 熟悉SEED-DEC2812实验环境; 3. 掌握CCS集成开发环境的调试方法。 二、实验仪器 1.TMS320系列SEED-DTK教学试验箱24套 2. 台式PC机24台 三、实验内容 1.仿真器驱动的安装和配置 2. DSP 源文件的建立; 3. DSP程序工程文件的建立; 4. 学习使用CCS集成开发工具的调试工具。 四、实验准备: 1.将DSP仿真器与计算机连接好; 2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接; 3.启动计算机,当计算机启动后,打开SEED-DTK2812的电 源。SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯及SEED-DEC2812的电源指示灯D2是否均亮;若有不亮,请断开电源,检查电源。 五、实验步骤 (一)创建源文件 1.进入CCS环境。

2.打开CCS选择File →New →Source File命令 3.编写源代码并保存 4.保存源程序名为math.c,选择File →Save 5.创建其他源程序(如.cmd)可重复上述步骤。 (二)创建工程文件 1.打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定弹 出对话框: 2.在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成 即可完成工程创建; 3.点击Project选择add files to project,添加工程所需文件;

DSP实验报告2解读

DSP实验报告 院系:哈尔滨理工大学荣成校区 专业:电子信息工程 学号: 1230160101 姓名:董小天 日期: 2015年6月16日

实验二有限冲击响应滤波器(FIR)算法实验 一、实验目的 1.掌握用窗函数发设计FIR数字滤波器的原理和方法; 2.熟悉线性相位FIR数字滤波器特性; 3.了解各种窗函数对滤波特性的影响; 二、实验设备 1.计算机,CCS 3.1版软件,实验箱,DSP仿真器,连接线。 三、实验原理 1.有限冲击响应数字滤波器的基础理论; 2.模拟滤波器原理(巴特沃斯滤波器、且比学府滤波器、贝塞尔滤波器); 3.数字滤波器系数的确定方法。 四、实验步骤 1、复习如何设计FIR数字滤波;阅读本实验原理,掌握设计步骤; 2、阅读本实验所提供的样例子程序; 3、运行CCS软件,对样例程序进行跟踪,分析结果; 4、填写实验报告。 5、样例程序实验操作说明 A.实验前准备: ①实验箱和CPU配置:SW2的2、4置ON,1、3置OFF;S2全置ON,S23置ON,JP3拨码开关的3、6位置ON,其余置OFF;S2全部置OFF. ②用到西安连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”; B.实验 启动CCS 3.1,打开文件Exp_fir.pjt工程文件;在i=0处设置断点;打开VIEW/GRAPH/TIME/FREQUENCY打开窗口,进行如下改动(参照图片),其中x,y分别表示经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果; 五、成果展示及代码

单击“Animate”运行程序,在实验箱上调整观察窗口并观察滤波的效果(滤波效果明显);

DSP运行实验报告

DSP运行实验报告 一、实验目的 熟悉CCS软件仿真下,DSP程序的下载和运行;熟悉借助单片机的DSP程序下载和运行; 熟悉借助仿真器的DSP程序下载和运行;熟悉与DSP程序下载运行相关的CCS编程环境。 二、实验原理 CCS软件仿真下,借用计算机的资源仿真DSP的内部结构,可以模拟DSP程序的下载和运行。 如果要让程序在实验板的DSP中运行、调试和仿真,可以用仿真器进行DSP程序下载和运行。初学者也可以不用仿真器来使用这款实验板,只是不能进行程序调试和仿真。 在本实验板的作用中,单片机既是串口下载程序的载体,又是充当DSP 的片外存储器(相对于FLASH),用于固化程序。 三、实验设备、仪器及材料 安装有WINDOWS XP操作系统和CCS3.3的计算机。 四、实验步骤(按照实际操作过程) 1、CCS软件仿真下,DSP程序的下载和运行。 第一步:安装CCS,如果不使用仿真器,CCS 的运行环境要设置成一个模拟仿真器(软仿真)。

第二步:运行CCS,进入CCS 开发环境。 第三步:打开一个工程。 将实验目录下的EXP01目录拷到D:\shiyan下(目录路径不能有中文),用[Project]\[Open]菜单打开工程,在“Project Open”对话框中选 EXP01\CPUtimer\CpuTimer.pjt,选“打开”, 第四步:编译工程。 在[Project]菜单中选“Rebuild All”,生成CpuTimer.out文件。 第五步:装载程序。 用[File]\[Load Program]菜单装载第四步生成CpuTimer.out文件,在当前工程目录中的Debug 文件夹中找到CpuTimer.out文件,选中,鼠标左键单击“打开”。

DSP实验指导书(DSP处理器原理与应用)

实验一:DSP软件集成开发环境CCS 一. 实验目的 1.了解DSP 软件开发集成环境Code Composer Studio (CCS) 的安装和配置过程; 2.熟悉并掌握CCS 的操作环境和基本功能,了解DSP软件开发的一般流程: (1) 学习创建工程和管理工程的方法; (2) 了解工程文件和映像文件的基本内容; (3) 了解基本的编译和调试功能; (4) 学习使用观察窗口。 二. 实验设备 计算机、Code Composer Studio 2.2 或以上版本 三. 背景知识 1.DSP 应用系统开发一般需要借助以下调试工具: ―软件集成开发环境(CCS):完成系统的软件开发,进行软件和硬件仿真调试; ―硬件开发及测试平台:实现系统的硬件仿真与调试,包括仿真器和评估模块。 https://www.sodocs.net/doc/9516552251.html,S 集成了适用于所有TI 器件的源码编辑、编译链接、代码性能评估、调试仿真等功能,为 设计人员提供了一个完整的嵌入式系统软件开发环境。 3.系统软件部分可以通过CCS 建立的工程文件进行管理,工程文件一般包含以下几种文件: ―源程序文件:C 语言或汇编语言文件(*.ASM 或*.C) ―头文件(*.H) ―命令文件(*.CMD) ―库文件(*.LIB, *.OBJ)

四. 实验步骤 1. 创建工程文件 双击 CCStudio 图标,启动 CCS ,CCS 的初始界面包括工程管理区和工作区两部分。 在菜单中选择“Project —>New…”,弹出“Project Create ”窗口: 在“Project ”编辑框内填入项目名称,例如“hello1”;有必要的话,可以更改项目文件夹位置 (Location);“Project ”下拉框用以确定输出文件类型;目标硬件类型在“Target ”下拉框中指定。 点击“完成”后,CCS 自动在指定目录下生成“hello1.pjt ”工程文件。工程文件中保存了对应工程的设置信息和内部文件的引用情况。展开工程管理窗口“Projects ”下的“hello1.pjt ”,可以看到所有项目均为空。 任务 1:在 notepad 中打开“hello1.pjt ”,了解并记录工程文件提供的设置信息 若标题栏显示xxxx Emulator, 则需要先运行 Setup CCS, 选择合适的软件仿真环境

dsp实验报告

DSP 实验课大作业实验报告 题目:在DSP 上实现线性调频信号的脉冲压缩,动目标显示和动目标检测 (一)实验目的: (1)了解线性调频信号的脉冲压缩、动目标显示和动目标检测的原理,及其DSP 实现的整个流程; (2)掌握C 语言与汇编语言混合编程的基本方法。 (3)使用MATLAB 进行性能仿真,并将DSP 的处理结果与MATLAB 的仿真结果进行比较。 (二)实验内容: 1. MATLAB 仿真 设定信号带宽为B= 62*10,脉宽-6=42.0*10τ,采样频率为62*10Fs =,脉冲重复周期为-4T=2.4*10,用MATLAB 产生16个脉冲的线性调频信号,每个脉冲包含三个目标,速度和距离如下表: 对回波信号进行脉冲压缩,MTI ,MTD 。并且将回波数据和频域脉压系数保存供DSP 使用。 2.DSP 实现 在Visual Dsp 中,经MATLAB 保存的回波数据和脉压系数进行脉压,MTI 和MTD 。 (三)实验原理 1.脉冲压缩原理 在雷达系统中,人们一直希望提高雷达的距离分辨力,而距离分辨力定义为:22c c R B τ?==。其中,τ表示脉冲时宽,B 表示脉冲带宽。从上式中我们可以看

出高的雷达分辨率要求时宽τ小,而要求带宽B大。但是时宽τ越小雷达的平均发射功率就会很小,这样就大大降低了雷达的作用距离。因此雷达作用距离和雷达分辨力这两个重要的指标变得矛盾起来。然而通过脉冲压缩技术就可以解决这个矛盾。脉冲压缩技术能够保持雷达拥有较高平均发射功率的同时获得良好的距离分辨力。 在本实验中,雷达发射波形采用线性调频脉冲信号(LFM),其中频率与时延成正比关系,因此我们就可以将信号通过一个滤波器,该滤波器满足频率与时延成反比关系。那么输入信号的低频分量就会得到一个较大的时延,而输入信号的高频分量就会得到一个较小的时延,中频分量就会按比例获得相应的时延,信号就被压缩成脉冲宽度为1/B的窄脉冲。 从以上原理我们可以看出,通过使用一个与输入信号时延频率特性规律相反的滤波器我们可以实现脉冲压缩,即该滤波器的相频特性与发射信号时共轭匹配的。所以说脉冲压缩滤波器就是一个匹配滤波器。从而我们可以在时域和频域两个方向进行脉冲压缩。 滤波器的输出() h n= y n为输入信号() x n与匹配滤波器的系统函数() *(1) y n x n s N n =--。转换到频域就是--卷积的结果:* ()()*(1) s N n =。因此我们可以将输入信号和系统函数分别转化到频域:Y k X k H k ()()( Y k,然后将结果再转化到时域, h n H k →,进行频域相乘得() ()() x t X k →,()() 就可以得到滤波器输出:()() →。我们可用FFT和IFFT来实现作用域的 Y k y n 转换。原理图如下: 图1.脉冲压缩原理框图 2.MTI原理 动目标显示(MTI)技术是用来抑制各种杂波,来实现检测或者显示运动目标的技术。利用它可以抑制固定目标的信号,显示运动目标的信号。以线性调频

DSP实验

一:实验项目名称:TMS320F2812的GPIO实验 二:实验目的:学会使用ccs5.3开发环境以及GPIO的基本操作,通过实验学习使用 TMS320F2812的通用输入输出管脚直接控制外围设备的方法。 实验环境:pc一台,CCS5.3软件 三:实验原理: 四:实验步骤: 1:打开ccs5.3软件。 2依次单击File->New->CCS Project建立工程 3 在弹出的New Project对话框中单击Code Composer Studio,选择CCS Project,然后点击 Next 4 在弹出的对话框中,输入工程名字Led.c,在Family里选择C2000,在Variant的第二个复选框里选择TMS320F2812,在里选择empty project点击 Finish完成 5 将inc、source和F2812_nonBIOS_flash.cmd、rts2800_ml.lib拷贝到工程目录下; 6 在project面板里右键,New->Target Configuration File,在connect里面选择 ,然后在选择框中选择 TMS320F2812; 7 在main.c中编辑代码 8 连接好仿真器与开发板,按F11,下载并在线仿真 五:记录与处理: #include"DSP281x_Device.h" #include"System.h" void main(void) { InitSysCtrl(); EALLOW; GpioMuxRegs.GPBDIR.all |=0x00FF; EDIS; GpioDataRegs.GPBDAT.all = 0x0000; DelayUs(60000); GpioDataRegs.GPBDAT.all = 0x00f0; while(1) {

dsp实验报告4

实验2.4 外中断 一.实验目的 1.通过实验熟悉VC5509A的中断响应过程。 2.学会C语言中断程序设计,以及运用中断程序控制程序流程。 二.实验设备 计算机,ICETEK-VC5509-A实验箱及电源。 三.实验原理 1.中断及中断处理过程: ⑴中断简介:中断是一种由硬件或软件驱动的信号,DSP在接到此信号时,将当前程序悬挂起来,转去执行另外一个任务,这个任务我们称为中断服务程序(ISR)。TMS320C55x DSP 可支持32个ISR,可由硬件或软件触发。 ⑵DSP处理中断的步骤: ①接收中断请求:由软件或硬件发出。 ②响应中断请求:对于可屏蔽中断,需要满足若干条件,才发生响应;而对于不可屏蔽中断,则立即响应。 ③准备执行中断服务程序。 - 完成当前正在执行的指令;将进入流水线但还未解码的指令清除。 - 自动保存若干寄存器的值到数据堆栈和系统堆栈。 - 取得用户定义的中断向量表中当前中断向量,中断向量指向中断服务程序入口。 ④执行中断服务程序。中断服务程序包含中断返回指令,这样返回时可以出栈以前保存的关键寄存器数据,从而恢复中断服务程序执行前的现场。 ⑶中断向量表: 中断向量表的构成请参见TI的文档sprs295d.pdf之3.11节。 中断向量表的地址可以由用户指定。 ⑷外中断: TMS320C5509可以响应INT0-INT4五个外中断。 2.ICETEK-CTR板的键盘接口: 显示/控制模块ICETEK-CTR通过接口P8连接小键盘,接收小键盘传送的扫描码,并在每个扫描码结束后保存,同时向DSP的INT2发送中断信号;当DSP读键盘时将扫描码送到数据总线上。小键盘上每次按下一个键将产生2个扫描码,2次中断。 3.程序编制 由一个不含中断处理程序的工程通过改写加入中断处理程序部分大致需要如下操作(假设使用INT2): ⑴编制中断服务程序:参见实验程序,编写单独的一个函数XINT,此函数使用interrupt 修饰,没有参数和返回值。 ⑵构造中断向量表:可以用汇编语言构造,编写一个汇编语言模块程序vector.asm。 ⑶修改链接命令文件:在MEMORY小节中开辟单独的地址段用以存放中断向量表;在SECTIONS小节中指定.vectors段到前步开设的内存段中。 ⑷主程序中进行初始化设置:定位中断向量表、使能中断、清中断等。 4.实验程序流程图:

DSP第二次实验报告

DSP实验报告(第二次实验) 实验四、正弦信号发生器 验四、正弦信号发生器 一、实验目的 1. 掌握利用DSP产生正弦信号的原理 2. 熟悉子程序调用的程序结构以及堆栈的使用 3.掌握CCS的图形输出操作 二、实验设备 1. 集成开发环境Code Composer Studio(简称CCS) 2. 实验代码Sin.s54、Lab.cmd和Lab.gel

三、实验内容 1. 阅读理解多项式逼近正弦的文档 2. 阅读和理解Sin.s54 3. 调试正弦波发生器 4. 加入断点,并选取图形观测,利用动画及时更新 5. 试利用迭代的方法来实现正弦信号发生器 四、实验结果和提示 1. 2345sin()= 3.140625 + 0.02026367 - 5.325196 + 0.5446778 + 1.800293x x x x x x ,x 为第一象限内的弧度值。因为sin()sin(),sin()sin()x x x x π-=-=-,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。由于有限精度,规定弧度值从~ππ-,其中π=0x7FFF ,π/2=0x4000,π-=0x8000。利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A 中的当前弧度值,以便计算结束后实现x 增量。正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。x 自动增长时要注意当x 超过π后必须调整到~ππ-的范围内才能调用计算子程序,即若,2x x x ππ>=-则。 2. 需要使用临时数据时,必须用frame 语句留出所需空间,使用结束后要将堆栈指针还原以防堆栈内存泄漏。要注意的是frame 的下一条指令不能使用直接寻址。 3. 注意事项:利用累加器写乘法寄存器T (stlm )之后的下一条指令不能使用T ;条件转移指令xc 在指令访问阶段判断条件,该条件必须在先于xc 指令的2个指令之前产生;条件转移指令bc 是在指令执行阶段判断条件,不存在这方面的问题。具体细节请参见《数字信号处理系统的应用和设计》3.6节和 4.5节。 4. 图形观测时选择菜单View->Graph->Time/Frequency ,然后设置如下图:

DSP实验报告

DSP实验报告

软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。 因为-20log δs=30 ,所以log δs=-30/20 ,δs=0.03162

DSP实验报告二CCS的使用

实验二 CCS使用操作:报告: 1.实验目的 (1) 熟悉CCS集成开发环境,掌握工程的生成方法。 (2) 掌握CCS集成开发环境的调试方法。 2.实验容及步骤 (1)查阅CCS发展历史,给出CCS发展的版本和适用的芯片。 Code Composer Studio 包含一整套用于开发和调试嵌入式应用的工具。它包含适用于每个TI 器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器以及多种其它功能。CCS IDE 提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。借助于精密的高效工具,用户能够利用熟悉的工具和界面快速上手并将功能添加至他们的应用。 版本 4 之前的 CCS 均基于 Eclipse 开放源码软件框架。Eclipse 软件框架可用于多种不同的应用,但是它最初被开发为开放框架以用于创建开发工具。我们之所以选择让 CCS 基于Eclipse ,是因为它为构建软件开发环境提供了出色的软件框架,并且正成为众多嵌入式软件供应商采用的标准框架。CCS 将 Eclipse 软件框架的优点和仪器 (TI) 先进的嵌入式调试功能相结合,为嵌入式开发人员提供了一个引人注目、功能丰富的开发环境。 CCS 有 2 个版本:白金版和微处理器版。各版本支持的处理器不同。支持的核白金版:TMS320C6000、TMS320C5000、TMS320C2800、TMS470、TMS570、ARM 7、ARM9、ARM 11、ARM Cortex M3(不包含 Stellaris Cortex M3)、ARM Cortex R4、ARM Cortex A8 和 MSP430 处理器版:TMS320C2800 和MSP430 CCS 白金版和微处理器版都使用以下各项:主机:PC 操作系统:Microsoft Windows Vista 和 XP (2) 使用CCS时,经常遇到下述扩展名文件,说明分别是什么文件。 ①project. mak :即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程, VC6把MAK文件转换成DSP文件来处理。 ②program. c :定义的变量、数组、函数的声明 ③program. asm :Oracle管理文件(OMF) ④filename. h :H C程序头文件 ⑤filename. lib :LIB 库文件 ⑥project. cmd :CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件 ⑦program. obj :OBJ 对象文件 ⑧program. Out: C语言输出文件 ⑨project. Wks :WKS Lotus 1-2-3电子表格;Microsoft Works文档 保存配置文件时产生的文件: ①programcfg.cmd 连接器命令文件 ②programcfg.h54 头文件 ③programcfg.s54 汇编源文件 DSP源文件的建立;

DSP实验二

信号与信息处理综合实验(DSP部分) 学院:信息与通信工程学院 班级:2013211125 姓名:商晴庆 学号: 班内序号: 组号: 2016年4月

实验二 FFT的实现 一、实验目的 (1)进一步熟悉DSK6416开发平台,掌握调试功能; (2)充分理解FFT过程,并编码实现功能。 二、程序功能 (1)基础:将FFT结果写入SDRAM中,并读取出来。 (2)提高:其他点数的FFT 三、模块描述 (1)GBLCTL寄存器配置部分: static EMIFA_Config MyEmifaConfig = { EMIFA_GBLCTL_RMK ( EMIFA_GBLCTL_EK2RATE_FULLCLK, //1 X EMIF input clock EMIFA_GBLCTL_EK2HZ_CLK, //eclkout2 continue output during hold EMIFA_GBLCTL_EK2EN_ENABLE, //eclkout2 enable output EMIFA_GBLCTL_BRMODE_MRSTATUS, //bus request is memory access or refresh pending/in progress EMIFA_GBLCTL_NOHOLD_DISABLE, EMIFA_GBLCTL_EK1HZ_CLK, //eclkout1 continue output during hold EMIFA_GBLCTL_EK1EN_ENABLE, //eclkout1 enable output EMIFA_GBLCTL_CLK4EN_ENABLE, //clkout4 output enable EMIFA_GBLCTL_CLK6EN_ENABLE //clkout6 output enable ), (2)CECTL0-3寄存器配置部分 0xffffffd3, //64BIT SDRAM 0xffffffe3, 0x22a28a22, 0x22a28a22, (3)SDCTL寄存器配置部分

dsp 实验报告

实验一编写一个汇编和C混合的DSP程序 一.实验目的 1.在了解纯C语言程序工程和汇编语言程序工程结构的基础上,学习在C工程中加入汇编编程的混合编程方法。 2.了解混合编程的注意事项。 3.理解混合编程的必要性和在什么情况下要采用混合编程。 二.实验设备 计算机,ICETEK-VC5416AE-S61实验箱(或ICETEK仿真器+ICETEK-VC5416-AE系统板+相关连线及电源)。 三.实验原理 1.使用C语言开发应用程序的优缺点 优点: 易于开发和维护。由于用C语言书写接近自然语言,其可读性强、利于理解,在编制、修改、实现算法方面比用汇编语言开发容易。 可移植性强。 不容易发生流水线冲突。编译器能提供完善的解决流水线冲突的结果。 有大量现存的算法可利用。 适用于人机界面的开发。 缺点: 代码量大。 程序效率较低。 优化代码存在一定困难。 综上所述,我们一般用C语言设计应用程序的总体框架、解决人机接口和对速度效率要求不太高的复杂算法。 2.使用汇编语言开发应用程序的优缺点 优点: 更能发挥系统特点。由于汇编语言掌控系统硬件的能力强于C语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致。 代码精练,效率高。用汇编语言设计的程序,代码短、不容易产生冗余。 代码量小。 缺点: 可读性差。不利于复杂算法的开发和实现。 可移植性差。 容易产生流水线冲突。由于排除冲突需要靠人来辅助完成,这要求编程人员有较为丰富的开发经验和对硬件工作机制的深刻理解。 3.如何混合编程 (1)混合工程:在工程中可以同时包含C语言程序和汇编语言程序,无需更改编译选项。一般地,我们使用C程序为主,加入汇编语言程序模块。 (2)使用模块技术:在应用程序中划分出比较清晰的模块,不同模块可采用不同语言设计。

相关主题