dsp 实验三1

dsp 实验三1
dsp 实验三1

DSP实验报告

实验题目:实验三 GPIO应用之蜂鸣器学院名称:机电工程学院

专业班级:13级电本一班

学生姓名:张文斌

学号:2013041551

前言:

数字信号处理器DSP (Digital Signal Processor) 是基于超大规模集成技术和计算机技术、适用于高速数字信号处理的单片计算机,现已经广泛应用于科研、军事以及消费类电子产品中。

一、实验目的:

通过实验学习使用5416DSP 的扩展I/O 端口接收外围设备信息的方法,了解键盘的使用原理并控制蜂鸣器发音,通过键盘一一对应输出。

发音Do Re Mi Fa So La Si Ti

键盘控制 1 2 3 4 5 6 7 8

二、实验原理:

1.蜂鸣器简介

1.1蜂鸣器的工作原理

蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,DSP-IO 引脚输出的电流较小,DSP 输出的TTL 电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。实验板通过一个三极管Q1 来放大驱动蜂鸣器。

1.2蜂鸣器的分类

蜂鸣器按其是否带有信号源又分为有源和无源两种类型。有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。

对于有源和无源的驱动方式,略有不同,我们先讲解一下有源蜂鸣器的驱动方法。有源蜂鸣器因为内含有信号源,因此只要加上额定的工作电压就可以发出固定频率的声音。

对于无源的蜂鸣器,驱动其发出声音就较为复杂,因为它本身不带信号源,因此,只是通上电源,是不能发出声音的,必须要不断的重复“通电-断电”,才能使其发出声音,我们可以通过编写程序,控制GPIO7 口不断的置为高电平—低电平—高电平…,这样蜂鸣器就可以不断的通、断电,从而发出声音。而通电、断电的时间不同,相当于振荡周期的不同,因此又可以得到不同频率的声音。

1.3蜂鸣器电路

图1.1

2蜂鸣器的应用:

2.1蜂鸣器是接在多缓冲串行口McBSP0 的DX0端。DX0工作在通用I/O 的输出状态。

2.2蜂鸣器控制相关寄存器:

映射到I/O空间的0x8000地址,所以在定义寄存器的访问方式为:ioport unsigned char port8000;

port8000=0;

port8000=0x80;

port8000=8;

2.3McBSP0子块地址寄存器SPSA0 其映射到数据存储器空间0x38地址,其功能是CPU 访问McBSP 中不能直接访问的寄存器时装载这些寄存器的子块地址,定义访问方式为:#define SPSA0 *(unsigned int *)0x38。

2.4McBSP0子块地址寄存器SPSD0 其映射到数据存储器空间0x39地址,其功能是传送CPU 访问McBSP 中不能直接访问的寄存器时装载这些寄存器的子块地址,定义访问方式为:#define SPSD0 *(unsigned int *)0x39。

2.5引脚控制寄存器PCR。CPU不能直接访问的该寄存器,必须通过子块数据寄存器SPSD来访问PCR,其子地址为0x0e。其定义为:

SPSD0=uWork1;

SPSA0=0x0e; // set McBSP0's PCR

uWork1=SPSD0;

uWork1|=0x2020; // set XIOEN=1, Enable IO,DX for output

2.6串行口控制寄存器SPCR2。CPU不能直接访问的该寄存器,必须通过子块数据寄存器SPSD来访问SPCR2,其子地址为0x1。其定义为:SPSA0=1; // set McBSP0's SPCR2

uWork1=SPSD0;

uWork1&=0xfffe; // set XRST=0

3.音频发声实现:

由于蜂鸣器接到DX0端,通过使用SDP定时器定时,使BDX0以一定音频频率输出信号,就可以形成音频发生器。

3.1 发`声控制。将定时器定时时间定为输出信号的半周期,并设置定时器为定时中断方式,在定时器中断函数中队BDX0端进行取反操作,就可以在BDX0端产生一定频率的信号,如图

BDX0:

T/2

T

图2.1

3.2按一定节奏变化的音频信号的控制。如果要产生有节奏的音乐:产生的

音频信号一定节奏变化,如图

频率f1,音长t1频率f2,音长t2频率f3,音长t3

图2.2

3.3音乐参数由不断变化的音频参数和音乐常数组组成,可用二维数组music 【freq ,length】来表示。变化的音频信号可按照下列步骤编写程序。

a. 定义寄存器CLKMD数据存储器映射地址:0x58

#define CLKMD *(unsigned int *)0x58

b. 根据工作频率与晶振频率的关系设置寄存器CLKMD的值。以晶振16M Hz为例,CLKMD常用的值如表

工作频率/M Hz CLKMD值

32 0x1007

16 0x1007

8 0

表2.1

c. 根据音频半周期的大小设置DSP定时器时间常数PDR的值,从而确定音频参数。

在进行编程时我们使用的中音C调频率其定义为表2.2

中音C调频率

音符 1 2 3 4 5 6 7 i C:记数值151 135 121 114 100 90 86 75

表2.2

以“1”为例:时钟频率为8MHz,时钟周期Tout=0.125us,TDDR=2,PRD=151,产生“1”音的半周期t=0.125us*(2+1)*(151+1)=57us,则“1”的音频为1/(2*57)=877Hz。

音乐的长度:节拍每拍以480为基准,音长越短,数值越小。音乐的长度与音符节拍、延迟程序内循环次数及指令的运行时间有关。

音频参数计算公式:T/2=T(work)*(PRD+1)(TDDR+1)

三、实验现象:

南昌大学DSP实验报告

实验报告 实验课程:DSP原理及应用 学生姓名: 学号: 专业班级: 2012年 5月 25日

目录 实验一定点除法运算 实验二FIR滤波器 实验三FFT算法 实验四卷积计算 实验五数码管显示 实验六语音录放

实验一定点除法运算 一、实验目的 1、熟悉C54指令系统,掌握常用汇编指令,学会设计程序和算法的技巧。 2、学习用指令实现除法运算。 二、实验设备 计算机;DSP 硬件仿真器;DSP 实验开发平台。 三、实验原理 由内置的硬件模块支持,数字信号处理器可以高速的完成加法和乘法运算。但TMS320 系列DSP不提供除法指令,为实现除法运算,需要编写除法子程序来实现。二进制除法是乘法的逆运算。乘法包括一系列的移位和加法,而除法可分解为一系列的减法和移位。本实验要求编写一个16 位的定点除法子程序。 1.除法运算的过程设累加器为8 位,且除法运算为10 除以3,除的过程包括与除数有关的除数逐步移位,然后进行减法运算,若所得商为正,则在商中置1,否则该位商为0 例如:4 位除法示例:(1)数的最低有效位对齐被除数的最高有效位00001010 - 00011000 11110010 (2)由于减法结果为负,丢弃减法结果,将被除数左移一位再减00010100 - 00011000 11111000 (3)结果仍为负,丢弃减法结果,将被除数左移一位再减00101000 - 00011000 00010000 (4)结果为正,将减法结果左移一位后把商置1,做最后一次减00100001 - 00011000 00001001 (5)结果为正,将减法结果左移一位加1 得最后结果,高4 位是余数,低4 位商:00010011 2.除法运算的实现为了尽量提高除法运算的效率,’C54x 系列提供了条件减指令SUBC 来完成除法操作。 四、实验步骤 1.用Simulator 方式启动Code Composer。 2 .执行Project New 建立新的项目,输入chuf作为项目的名称,将程序定位在D:\ti\myprojects\chuf目录。 3.执行File New Source File 建立新的程序文件,为创建新的程序文件命名为chuf.asm 并保存;执行Project Add Files to Project,把chuf.asm 加入项目中。4.执行File New Source File 建立新的文件并保存为chuf.cmd;执行Project Add Files to Project,把chuf.cmd 加入项目中。 5.编辑chuf.asm 加入如下内容: ;*** 编制计算除法运算的程序段。其中|被除数|<|除数|,商为小数*** .title "chuf.asm" .mmregs .def start,_c_int00

实验三 FIR滤波器的DSP实验报告

实验三FIR滤波器的DSP实验报告 一、实验目的 1. 了解MATLAB的FIR滤波器设计方法与编程; 2. 掌握FIR滤波器算法基本原理和C语言的编程方法; 二、实验内容 FIR滤波器设计流程为,根据给出的滤波器设计(通带带宽、阻带衰减、相位要求)要求,在Matlab环境下仿真得到滤波器系数,得到了滤波器系数后在CCS下编程设计DSP 的FIR滤波器。 1.使用Matlab中的FDAtool设计FIR滤波器 设计实现fir低通滤波器,阶数为20,采样频率fs=8000Hz,截止频率fc=1500Hz,窗口设置为汉明窗Hamming。经过的信号频率是1000HZ和2000HZ的混叠波。 2.参阅FIR基本理论及C语言编程方法,研读、分析实验指导书中的代码; 3. 双击,启动CCS的配置程序选项,选择“C5502 Simulator”; 4. 启动CCS,打开实验工程文件,再编译并装载程序; 5. 仿真波形 A.输入信号波形 B.输入信号频 C输出信号波形

D 输出信号频谱 从输入信号和输出信号的频谱对比中可以看出,输出信号有1KHZ 和2KHZ 的混叠信号。经过FIR 低通录波器后,滤掉了2KHZ 的频谱。只剩下1KHZ 的频谱。 4.修改代码:滤波器设计要求:线性相位低通滤波器,模拟信号通带为0~1kHz ,阻带衰减在5kHz 处为-60dB 。采样率为20kHz 。 采用凯塞窗口设计此低通滤波器,设计过程如下: 通带边界频率为1KHZ ,阻带边界频率是5KHZ 有60dB 的衰减,可得: rad rad s p 22052,102012ππωππ ω==== 过渡带πωωω5 2 = -=?p s ,A=60dB 设计凯塞窗口的长度N 和参数β分别为: 29285.28 =?-≈ ω A N 65326.5)7.8(1102.0=-=a β 使用MA TLAB 设计此滤波器,过程如下: 1)在Matlab 的Start 菜单中选择Toolboxes -> Filter Design -> Filter Design & Analysis Tools(fdatool),或者在命令行中输入fdatool 来启动滤波器设计分析器。

DSP实验3

实验三 快速傅里叶变换 FFT 一、实验目的 1.理解DFT 算法,并能用MATLAB 实现DFT 。 2. 加深对FFT 的理解,体会DFT 和FFT 之间的关系。 3.熟悉应用FFT 实现两个序列的线性卷积的方法。 二、实验原理 N 点序列x(n) 的DFT 和IDFT 定义: 若将DFT 变换的定义写成矩阵形式,则得到 X=A ﹒x ,其中DFT 变换矩阵A 为 ?????????? ????=---2)1(111...1......... ......11...11N N N N N N N W W W W A 可以用函数U=fft(u,N)和u=ifft(U,N)计算N 点序列的DFT 正、反变换。 三、实验内容 (一)离散傅里叶变换(DFT ) 1.用MATLAB 求N=16的有限序列)4/sin()8/sin()(ππn n n x +=的DFT 结果,并画出结果图。 参考程序如下: N=16; n=0:1:N-1; %时域采样 xn=sin(n*pi/8)+sin(n*pi/4); k=0:1:N-1; %频域采样

WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk; Xk=xn*WNnk; subplot(2,1,1) stem(n,xn); subplot(2,1,2) stem(k,abs(Xk)); 2.矩形序列x(n)=R (n),求N分别取8,32时的DFT,最后绘出结果图形。 5 参考程序如下: function[Xk]=dft(xn,N) n=[0:1:N-1]; %n的行向量 k=[0:1:N-1]; %k的行向量 WN=exp(-j*2*pi/N); %旋转因子 nk=n'*k; %产生一个含nk值的N乘N维矩阵WNnk=WN.^nk; %DFT矩阵 Xk=xn*WNnk; %DFT系数的行向量 调用上面函数解题。 N=8;x=[ones(1,5),zeros(1,N-5)]; n=0:N-1; X=dft(x,N); %N=8点离散傅立叶变换 magX=abs(X);phaX=angle(X)*180/pi; k=(0:length(magX)'-1)*N/length(magX); subplot(2,2,1);stem(n,x);ylabel('x(n)'); subplot(2,2,2);stem(k,magX);axis([0,10,0,5]);ylabel('|X(k)|'); N=32;x=[ones(1,5),zeros(1,N-5)]; n=0:N-1; X=dft(x,N); %N=32点离散傅立叶变换 magX=abs(X);phaX=angle(X)*180/pi; k=(0:length(magX)'-1)*N/length(magX);

DSP实验三和实验四

实验三离散时间系统及响应 [实验目的] 1、熟悉离散时间系统的时域和频域分析方法。 2、掌握稳定系统性的判别。 3、掌握利用MATLAB求解零极状态、差分方程和频率响应的方法。 [实验仪器] 计算机、Matlab6.5(或更高版本)软件 [实验参考书] :自编实验指导书 与本实验有关的MA TLAB函数: 1. conv.m用来实现两个离散序列的线性卷积。其调用格式是:y=conv(x,h) 2.filter.m求离散系统的输出y(n) 。若系统的h(n) 已知,可用conv.m文件可求出y(n) ;若系统的H(z) 已知,可用filter可求出y(n),调用格式是: y=filter(b, a, x);%其中x, y, a 和b都是向量。 3.impz.m在H(z) 已知情况下, 求系统的单位抽样响应h(n)。调用格式是: h = impz(b, a, N) 或 [h,t]=impz(b,a,N) N是所需的的长度。前者绘图时n从1开始,而后者从0开始。 4.freqz.m在H(z) 已知情况下, 求系统的频率响应。基本的调用格式是: [H,w]=freqz(b,a,N,'whole',Fs) N是频率轴的分点数,建议N为2的整次幂;w是返回频率轴座标向量,绘图用;Fs是抽样频率,若Fs=1,频率轴给出归一化频率;’whole’指定计算的频率范围是从0~FS,缺省时是从0~FS/2. 5.zplane.m文件可用来显示离散系统的极-零图。其调用格式是: zplane(z,p), 或zplane(b,a), 前者是在已知系统零点的列向量z和极点的列向量p的情况下画出极-零图,后者是在仅已知H(Z)的A(z)、B(z) 的情况下画出极-零图。 [实验内容] 1、序列的卷积运算。下例是一个指数函数的卷积,结果如图所示。 clear all; fs=20; n =0:49; x=exp(-n/fs); subplot(211),stem(x) y=conv(x,x); subplot(212);stem(y);grid; 05101520253035404550 仿照上例,现在假设存在两个序列,()[,,,,,,] h n=54321,利用计 x n=9121041215()[,,,,]

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实验二要点

实验三 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处理器原理与应用)

实验一: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.360docs.net/doc/c34323758.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实验

一:实验项目名称: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实验报告 (20)

汕头大学工学院 三级项目报告 课程名称:数字信号处理 课程设计题目:FIR数字滤波器 指导教师:姜永权 系别:电子工程系专业:电子信息工程学号:08141017 姓名:邓桂杨 合作者 完成时间:2010 年11 月20 日至11 月26 日 成绩:评阅人:姜永权

一项目意义与目标 FIR数字滤波器是一类广泛应用的数字滤波器。如自适应横向数字滤波器就采用FIR 数字滤波器,在GSM手机中就用到。在实际DSP系统中能够正确运用FIR数字滤波器,理解线性相位的含义和应满足的条件。通过恰当举例,通过亲自编程,给出设计结果,绘制频率响应曲线,掌握FIR数字滤波器设计算法。 二项目内容 1.根据频率选择性数字滤波器的性能指标,计算线性相位FIR数字滤波器的理想单位冲激响应。选择Kaiser窗函数的阶数及形状控制参数,给出频率选择性线性相位FIR数字滤波器的设计结果,画出FIR数字滤波器的频率响应曲线。 2.根据任意频率响应(均衡器)性能要求,计算线性相位FIR数字均衡器的单位冲激响应。选择Kaiser窗函数的阶数及形状控制参数,给出均衡器的设计结果,画出均衡器的频率响应曲线。FIR数字滤波器、均衡器的性能分析。 三项目报告正文 1.FIR滤波器的设计方法 目前,FIR滤波器的设计方法主要是建立在对理想滤波器频率特征做某种近似的逼近。 窗函数设计法是FIR滤波器设计的基本方法,它设计过程简单,性能也可满足常用的选频滤波器的技术要求。窗函数设计的基本思路是直接从理想滤波器的频率特性入手,通过积分求出对应的单位采样响应的表达式,最后通过加窗,得到满足要求的FIR滤波器的采样响应。窗函数在很大程度上决定了FIR滤波器的性能指标。

DSP实验报告3

DSP 实验报告3 姓名 学号 时间 2015.6.9 地点 实验大楼A631 实验题目 卷积运算 一、 实验目的 1、学习如何用DSP 的C 语言程序实现卷积与相关的计算; 2、学习用CCS 调试程序的详细过程; 3、学习如何设置断点。 二、 实验内容及步骤 1、创建一个新项目工程 将“maxminmath 文件夹”复制到“D:\CCStudio_v3.3\MyProjects ”下。 2、打开工程调试程序,并说明程序的功能; 3、编程实现以下功能: 已知()()n R n x 4=,()()n R n h 4=,求()()()n h n x n y *= a 、采用子程序调用的方式实现,并且注释程序; b 、把x ,h 和y 添加到Watch 窗口中作为观察对象; c 、观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的“+”号把数组展开),并将变化过程记录下来。 三、 实验程序 给出卷积运算的子程序: void main() { int x[7]={0,0,0,1,1,1,1},h[7]={1,1,1,1,0,0,0},y[7]={0}; int i,j; for(i=0;i<7;i++) for(j=0;j<7;j++) {if(i+j<7) y[i]=y[i]+x[i+j]*h[j]; y[i]=y[i]%2;} } 评 阅

四、实验结果 y值的变化情况如下: 五、实验思考题 1、试用汇编语言编写实现卷积运算的程序; .global start ;定义全局变量 .mmregs .data; 开始数据段 .bss m,1; 开设全局变量,每个变量占用一个字 .bss n,1 .bss z,1 .text; 开始文本段 start: ST #1000h,AR1 ST #3000h,AR2 ST #5000h,AR3 ST #0,@m RPT 999 RPT m+ LOOP: MVPD 6000h MVDD *AR1+,*AR4 MVDD *AR2+,*AR5 MACP *AR4,*AR5,src B LOOP ST A,*AR3+ xh: b xh;空循环 .end

DSP matlab实验三

实验三:IIR 数字滤波器的设计和实现 学院: 专业: 班级: 姓名: 学号: 班内序号: 时间: 【实验背景】 数字信号处理的另一个重要应用是数字滤波器。数字滤波器是一个运算过程,将输入数列按既定的要求转换成输出数列。在数字信号的处理时只需利用数字相加、乘以常数和延时等运算,就可以完全达到传输特性的要求。数字滤波器分为无限冲激响应(IIR)和有限冲激响应(FIR)两大类。 本实验用IIR 数字滤波器产生双音多频DTMF 拨号信号的产生,演示IIR 数字滤波器在通信系统中的应用。 DTMF 信号是将拨号盘上的0~F 共16 个数字,用音频范围的8 个频率来 表示的一种编码方式。8 个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如下图所示。 【实验要求】 根据ITU Q.23 建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或每个号码100ms。每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms的其余时间是静音。在每个频率点上允许有不超过±1.5%的频率 误差。任何超过给定频率±3.5%的信号,均被认为是无效的,拒绝承认接收。另

外,在最坏的检测条件下,信噪比不得低于15dB。DTMF 信号的编码: 把您的联系电话号码DTMF 编码生成为一个.wav 文件。其中关键是不同频率的正弦波的产生,要求采用滤波法生成所要求的DTMF信号。 【实验内容】 1.实验代码: phone=input('请输入电话号码:','s'); >> sum=length(phone); fs=8000;total_x=[]; fH=[1336,1209,1336,1477,1209,1336,1477,1209,1336,1477]; fL=[941,697,697,697,770,770,770,852,852,852]; for i=1:sum num=phone(i)-48+1;n=1:400; x=sin(2*pi*n*fL(num)/fs)+sin(2*pi*n*fH(num)/fs); x=[x,zeros(1,400)]; total_x=[total_x,x];end audiowrite('num_sound.wav',total_x,8000) 警告: 数据在写入文件期间被裁剪。 > In audiowrite>clipInputData (line 396) In audiowrite (line 176) >> sound(total_x); >> plot(total_x);axis([0,10000,-2,2]);title('时域波形') >> k=[18,20,22,25,32,35,38];N=210; >> tm=[49,50,51;52,53,54;55,56,57;0,48,0]; >> for i=1:sum j=800*(i-1); X=goertzel(total_x(j+1:j+N),k+1); value=abs(X); figure(2) subplot(2,6,i); stem(k,value,'.','r'); title('FFT x(n)'); xlabel('k');ylabel('|X(k)|');limit=20; for i1=5:7 if value(i1)>limit break; end end for j1=1:4 if value(j1)>limit break;end end buffer(i)=tm(j1,i1-4);end j =0 j =800 j =1600 j =2400

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实验报告 3

实验三 PWM实验: 一、实验目的 了解TMS320F28335 的PWM 模块原理 二、实验设备 (1)装有Windows 的PC 机一台; (2) XDS510 仿真器一套; (3) YX-F28335 开发板一套; (4) 示波器一台; 三、实验步骤 (1) 首先按照实验一配置CCS4.1.2 软件并打开; (2) 接着把仿真器的USB 与电脑进行连接,将仿真器的另一端JATG 端插到YX-F28335 开发板的JATG 针处; (3) Target->Launch TI Debug 后,点击Target->Connect Target。 (4) 由于工程已经是一个可烧写的可执行文件,所以直接在CCS 中点击Target->Load Program……命令,在文件lab24-PWM 下加载Debug 目录下的.out 可执行文件; (5) 在CCS 菜单栏点击Target->Run,之后用户打开示波器,将示波器的地线接到开发板的地线端,另一端接到YX-F28335 开发板J4的第1 脚。

四、实验原理 脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 PWM 的控制方法:采样控制理论中有一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。PWM 控制技术就是以该结论为理论基础,对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。 五、实验过程 1、测量波形(电路连接)并在示波器上显示:

dsp数字IO实验三

DSP原理及应用实验报告 数字I/O实验 1——交通灯实验 姓名学号 一、实验目的 1.熟悉使用SEED-DEC5502板控制SEED_DEC_IO上交通灯的方法; 2.掌握DSP扩展数字I/O口的方法; 3.了解SEED-DEC5502的硬件系统。 二、实验设备及地点 设备:SEED-DTK系列DSP实验箱 地点: 三、实验原理 1.实验的原理性说明 DSP系统中数字I/O的实现DSP 系统中一般只有少量的数字I/O 资源,而一些控制中经常需要大量的数字量的输 入与输出。因而,在外部扩展 I/O 资源是非常有必要的。在扩展 I/O 资源时一般占用 DSP的 I/O 空间。其实现方法一般有两种:其一为采用锁存器像 74LS273、74lS373 之类的集成电路;另一种是采用 CPLD 在其内部做锁存逻辑,我们采用的是后者。

SEED-DEC5502 模板提供标准化的存储器扩展总线,以方便用户扩展其专用的电路。 SEED-DEC5502 的存储器扩展总线,包含 3 个存储空间。SEED-DEC5502 的这 3 个存储空间被映射到’C5502 的和空间中。子空间平均分成 3 块,分别分配为扩展总线的 扩展总线的可接口多种类型、多种数据宽度(8/16/32-位)的存储器,使用时,应根据它们所接口的存储器类型和存储器数据宽度来动态调整子空间的配置。接口不同存储器数据宽度时扩展总线的在子空间的具体映射如下: 字节地址字地址

程序流程图 四、实验步骤及结果 1.打开CCS,进入CCS的操作环境; 2.装入IO_trafic.pjt,添加 SEED_DEC5502.gel文件开始进行调试; 3.打开 5502_IO.c文件,到第27行,修改 TESTCOMMAND的

DSP实验指导书实验三定时器

实验三定时器实验 一、实验目的 1. 了解DSP 程序各段的含义; 2. 熟悉如何用C语言来编写中断服务程序; 3. 掌握长时间间隔的定时器的处理。 4. 掌握片内外设的设置方法。 二、实验内容 1. DSP 的初始设置; 2. DSP 中断向量表的建立; 3. 定时中断的编写; 三、实验背景知识 TMS320LF2407的定时器的说明: LF2407 中有四个可编程的16-位片上定时器,每一个定时器中又包含有四个可由用户设置的寄存器,并可以申请主机的中断。这三个寄存器分别为TxCNT、TxCMPR、TxPR、TxCON。这些寄存器与对应的存贮空间地址如下表所示: 时间寄存器(TxCNT)是一个16 位的存贮器映射寄存器,它的值由周期寄存器来进行装载,并且做减一操作。 周期寄存器(Tx PR)是一个16 位的存贮器映射寄存器,它是用来重装时间寄存器(TIM)寄存器的值的。 定时器控制寄存器(TxCON)是一个16 位的存贮器映射寄存器,包含了定时器的控制

与状态信息。 四、实验要求 用TMS320LF2407片上的Timer1,使其PRD寄存器设为0xFFFF,产生上溢、下溢、比较、周期4中断,分别在中断服务程序控制D5、D6、D7、D8指示灯。(对LED操作采用外部IO操作形式,IO地址为0x0003,目标板上发光二极管D5 连接2407上数据线D0,如点发光二极管D5,则C语言指令为outport(3,0x0001),类似目标板上发光二极管D6、D7、D8分别连接2407上数据线D1、D2、D3)五、实验程序功能与结构说明 在C Time 实验调试程序中,主要包含以下文件: 1. Ctime.c:这是实验的主程序,主要包含DSP 初始化,Timer 及Timer中断初始化,Timer 中断程序。 2. vector.asm:包含2407 的中断向量表。 3. 2407CMD.cmd:声明了系统的存贮器配置与程序各段的链接关系。 六、实验步骤 1. 将DSP 仿真器与计算机连接好; 2. 将DSP 仿真器的JTAG 插头与SEED-07 单元的J1 相连接; 3. 启动计算机,当计算机启动后,接通电源。观察电源指示灯D1是否亮;若不亮,请断开电源,检查电源。 4. 打开CCS,进入CCS 的操作环境。 5. 装入C time.pjt 工程文件,添加f2407.gel 文件,并选择“flash_disable”。 6. 装载程序c time.out,进行调试。 7. 在程序flag=*EVAIFRA&0X0080;”处设置断点。 8. 运行程序,程序会停在断点处,表明已进入定时器中断。继续运行程序,程序每次都会停在断点处。实验者可根据自己的需要改变周期寄存器的值,从而控制每次进中断的时间。修改程序分别观察上溢、下溢、比较、周期4中断的实验现象(D5、D6、D7、D8闪烁情况。) 七、思考题 深入理解DSP 程序的编写过程,尤其是中断程序的编写。 1、查找相关寄存器,以周期中断为例程序如下。 flag=*EVAIFRA&0X0080; //读取中断标志 switch(flag) //判断中断 { case 0x0080:zqd();break; //执行中期中断 default:{enable();return;};break; } 2完成上溢、下溢、比较中断程序编写。

DSP实验心得体会

篇一:d s p实验报告心得体会 ms320f2812xdsp原理及应用技术实验心得体会 1.设置环境时分 为软件设置和 硬件设置,根 据实验的需要 设置,这次实 验只是 软件仿真,可以不 设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。 2.在设置硬件时, 不是按实验书 上的型号选择, 而是应该按照 实验设备上的 型 号去添加。 3.不管是硬件还 是软件的设置, 都应该将之前 设置好的删去, 重新添加。设 置好的配置中 只能有一项。 https://www.360docs.net/doc/c34323758.html,s可以工作 在纯软件仿真 环境中,就是 由软件在pc 机内存中构造 一个虚拟的 dsp环境,可以调试、运行程序。但是一般无法构造dsp中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。 5.这次实验采用 软件仿真,不 需要打开电源 箱的电源。

6.在软件仿真工 作时,无需连 接板卡和仿真 器等硬件。 7.执行 write_buff er一行时。 如果按f10 执行程序,则 程序在mian 主函数中运行, 如果按f11,则程 序进入write_buffe函数内部的程序运行。 8.把str变量 加到观察窗口 中,点击变量 左边的“+”, 观察窗口可以 展开结构变 量,就可以看到结 构体变量中的每个元素了。 9.在实验时,显 示图形出现问 题,不能显示, 后来在 graphtitle 把input的 大写 改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。 10.在修改了实 验2-1的程 序后,要重 新编译、连 接执行程序, 并且必须 对.out 文件进行重新加载,因为此时.out文件已经改变了。如果不重新加载,那么修改执行程序后,其结果将不会改变。 11.再观察结果 时,可将

DSP实验心得体会

篇一:dsp实验报告心得体会 tms320f2812x dsp原理及应用技术实验心得体会 1. 设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是 软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。 2. 在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型 号去添加。 3. 不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。设置好的配置中 只能有一项。 4. ccs可以工作在纯软件仿真环境中,就是由软件在pc机内存中构造一个虚拟的 dsp环境,可以调试、运行程序。但是一般无法构造dsp中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。 5. 这次实验采用软件仿真,不需要打开电源箱的电源。 6. 在软件仿真工作时,无需连接板卡和仿真器等硬件。 7. 执行write_buffer一行时。如果按f10执行程序,则程序在mian主函数中运行, 如果按f11,则程序进入write_buffe函数内部的程序运行。 8. 把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变 量,就可以看到结构体变量中的每个元素了。 9. 在实验时,显示图形出现问题,不能显示,后来在graph title 把input的大写 改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。 10. 在修改了实验 2-1的程序后,要重新编译、连接执行程序,并且必须对.out 文件进行重新加载,因为此时.out文件已经改变了。如果不重新加载,那么修改执行程序后,其结果将不会改变。 11. 再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察 结果。 12. 通过这次实验,对tms320f2812x dsp软件仿真及调试有了初步的了解与认识,因为做 实验的时候都是按

DSP实验指导书(学生用)(精)

CCS 软件的使用一、软件设置步骤:软件仿真(不使用仿真器)时的软件配置方法如下: 1、点击桌面“SETUP CCS2”的图标,出现如下窗口; 2、点击“Close” ,如下图所示:在上述窗口中右键点击“My System”下的C55XXCyele Accurate Simulator, 点击”Remove”并确认。然后用鼠标把窗口中间的“C54XX Simulator”移到左边的“My System” 窗口中。弹出如下所示的界面: 3、点击“NEXT ”按钮,出现如下图示的窗口: 4、点击窗口中的按钮,在弹出的对话框中选择“SIN5402.cfg”,点击“打开” 铵钮,出现如下图示的窗口: 5、点击“NEXT ”按钮,弹出如下图示的窗口: 6、在上图窗口中点击按钮,在弹出的窗口中选择 “c5402sim.gel”,然后点击“打开”,点“Finish”完成,出现如下图所示的界面,然后关闭窗口保存设置。二、CCS5000 的使用方法: (一CCS 文件名介绍在使用CCS 前,应该先了解以下软件的文件名约定: Project.p.t CCS 定义的工程文件Program.c C 程序文件 Program.asm 汇编语言程序文件 Filename.h 头文件,包括DSP/BIOS API 模块 Filename.lib 库文件 Program.cmd 连接命令文件 Program.obj 编译后的目标文件 Program.out 可在目标DSP 上执行的文件,可在CCS 监控下调试/执行 (二编写一个简单的程序:这一部分将介绍如何在CCS 下面新建一个程序,及如何编译、连接、下载、调试程序。 1、新建一个工程文件(1)、打开桌面上图标CCS 2 (’C5000),出现下图界面;(2)、点击菜单Project、在出现的下拉菜单中点击New 弹出下图示所示的窗口,然后在“Project”中输入项目名字,则会在C:\ti\myprojects 目录下建立一个、文件夹 example,并在example 文件夹下建立项目文件 example.pjt (也可以自己定义其它路径)。注意:此文件不能在中文目录下。(3)点击“完成”按钮出现界面如下:(4 )此时即可加入各种文件项目中,也可马上建立一个源文件然后加入到项目中。建立源文件的方法是:点击File-New -Source,即弹出一个可供编辑的窗口,在窗口中输入内容,然后保存为相应的文件(如果是汇编代码,则保存为文件名后缀为ASM 的文件,依次类推),最后即可把此建立的文件添加到项目中。下面介绍把文件添加到项目中的方法。 2、往工程中加入文件如果把example 文件夹下的example.asm, example.cmd, vectors.asm 三个文件添加到C:\ti\myprojects\exampl

河海大学dsp实验3

实验三 用FFT 对信号进行频谱分析 班级:2012级通信一班 一、实验目的 1、加深对离散信号DFT 的理解; 2、掌握FFT 算法的流程及其MATLAB 实现; 3、利用FFT 对典型信号进行频谱分析; 4、结合理论知识,对频谱分析中出现的有关现象进行理论分析。 二、 实验原理 混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。 泄露:根据理论分析,一个时间的信号其频带宽度为无限,一个时间无限的信号其频带宽度则为有限。因此对一个时间有限的信号,应用DFT 进行分析,频谱混叠难以避免。对一个时间无限的信号虽然频带有限,但在实际运算中,时间总是取有限值,在将信号截断的过程中,出现了分散的扩展谱线的现象,称之为频谱泄露或功率泄露。 栅栏效应:DFT 是对单位圆上Z 变换的均匀采样,所以它不可能将频谱视为一个连续函数,就在一定意义上看,用DFT 来观察频谱就好象通过一个栅栏来观看一个景象一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点和谷点被“尖桩的栅栏”所挡住,不能被我们观察到。 实验中用到的函数:y=exp(x): 以e 为底的指数。 conj(x): 取x 的共轭,即改变x 的虚部符号。 real(x): 取复数x 的实部。 rand(1,N): 生成在0和1之间均匀分布的随机序列,长度为N 。 randn(1,N): 生成正态分布(高斯分布)的随机序列,长度为N 。 X=fft(x,N): 计算序列x 的N 点FFT 。如果x 的长度小于N ,则在x 后面补零;如果x 的长度大于N ,则对x 进行截取;如果不指定参数N ,则以x 的实际长度作为FFT 的点数。 x=ifft(X,N): 计算序列X 的N 点IFFT 。 Y=fftshift(X): 将序列X 分成左右两部分并交换位置。 三、实验内容 1、对高斯序列x a (n ),令p =8, q 分别等于 2、4和8,观察q 值的改变对高斯序列时 域特性和幅频特性的影响,并给出理论解释: () ()n p q a e n x n --?? ≤≤=???2 0150 其他 2、对衰减正弦序列x b (n ),a =0.1,f =0.0625,观察其时域和幅频特性,检查谱峰位置是否正确;改变f ,使f 分别等于0.4375和0.5625,比较这两种情况下频谱形状和谱峰位置,

相关主题
相关文档
最新文档