数字信号处理(DSP)实验报告(精)
- 格式:doc
- 大小:452.50 KB
- 文档页数:5
北京邮电大学电子工程学院电子实验中心<数字信号处理实验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx 实验时间: xxx评定成绩:目录一、常规实验 (3)实验一常用指令实验 (3)1.试验现象 (3)2.程序代码 (3)3.工作原理 (3)实验二数据储存实验 (4)1.试验现象 (4)2.程序代码 (4)3.工作原理 (4)实验三I/O实验 (5)1.试验现象 (5)2.程序代码 (5)3.工作原理 (5)实验四定时器实验 (5)1.试验现象 (5)2.程序代码 (6)3.工作原理 (9)实验五INT2中断实验 (9)1.试验现象 (9)2.程序代码 (9)3.工作原理 (13)实验六A/D转换实验 (13)1.试验现象 (13)2.程序代码 (14)3.工作原理 (18)实验七D/A转换实验 (19)1.试验现象 (19)2.程序代码 (19)3.工作原理 (37)二、算法实验 (38)实验一快速傅里叶变换(FFT)算法实验 (38)1.试验现象 (38)2.程序代码 (38)3.工作原理 (42)实验二有限冲击响应滤波器(FIR)算法实验 (42)1.试验现象 (42)2.程序代码 (42)3.工作原理 (49)实验三无限冲击响应滤波器(IIR)算法实验 (49)1.试验现象 (49)2.程序代码 (49)3.工作原理 (56)作业设计高通滤波器 (56)1.设计思路 (56)2.程序代码 (57)3.试验现象 (64)一、常规实验实验一常用指令实验1.试验现象可以观察到实验箱CPLD右上方的D3按一定频率闪烁。
2.程序代码.mmregs.global _main_main:stm #3000h,spssbx xf ;将XF置1,D3熄灭call delay ;调用延时子程序,延时rsbx xf ;将XF置0,D3点亮call delay ;调用延时子程序,b _main ;程序跳转到"_MAIN"nopnop;延时子程序delay:stm 270fh,ar3 ;将0x270f(9999)存入ar3loop1:stm 0f9h,ar4 ;将0x0f9(249)存入ar4loop2:banz loop2,*ar4- ;*ar4自减1,不为0时跳到loop2的位置banz loop1,*ar3- ;*ar3自减1,不为0时跳到loop1的位置ret ;可选择延迟的返回nopnop.end3.工作原理主程序循环执行:D3熄灭→延时→D3点亮→延时。
姓名:班级:自动化15 学号:2015实验一数据存储实验一实验目的1。
掌握TMS320F2812程序空间的分配;2。
掌握TMS320F2812数据空间的分配;3。
能够熟练运用TMS320F2812数据空间的指令。
二实验步骤与内容实验步骤1.在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:2.F2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON;其余OFF3.E300底板的开关SW4的第2位置ON,其余位置OFF.其余开关设置为OFF.4.上电复位在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的指示灯应点亮,否则DSP开发系统与计算机连接存在问题。
5.运行CCS程序1)待计算机启动成功后,实验箱220V电源置“ON",实验箱上电2)启动CCS5.5,工作环境的路径选择:E:\E300Program\E300TechV-2812\normal ;6.成功运行CCS5.5程序后,出现如下图所示界面:7.右键点击Project Explorer窗口下的工程文件“e300_01_mem”,选择“Open Project"命令打开该工程,如下图所示,可以双击才看左侧源文件;8.点击菜单栏Project/Build All命令编译整个工程,编译完成后点击按钮进入仿真模式,完全进入后如下图所示:9.用“View"下拉菜单中的“Memory/Browser”查看内存单元,参数设置如下图:注意:下面的参数设置都是以16进制。
此时可以观测到以0x003F9020为起始地址的存储单元内的数据;10.单击按钮,开始运行程序,一段时间后,单击按钮,停止程序运行,0x003F9020H~ 0x3F902FH单元的数据的变化,如下图所示:11.关闭Memory Browser窗口,点击按钮,退出仿真模式。
实验报告||实验名称 D SP课内系统实验课程名称DSP系统设计||一、实验目的及要求1. 掌握用窗函数法设计FIR数字滤波器的原理和方法。
熟悉线性相位FIR 数字滤波器特性。
了解各种窗函数对滤波器特性的影响。
2. 掌握设计IIR数字滤波器的原理和方法。
熟悉IIR数字滤波器特性。
了解IIR数字滤波器的设计方法。
3.掌握自适应数字滤波器的原理和实现方法。
掌握LMS自适应算法及其实现。
了解自适应数字滤波器的程序设计方法。
4.掌握直方图统计的原理和程序设计;了解各种图像的直方图统计的意义及其在实际中的运用。
5.了解边缘检测的算法和用途,学习利用Sobel算子进行边缘检测的程序设计方法。
6.了解锐化的算法和用途,学习利用拉普拉斯锐化运算的程序设计方法。
7.了解取反的算法和用途,学习设计程序实现图像的取反运算。
8.掌握直方图均衡化增强的原理和程序设计;观察对图像进行直方图均衡化增强的效果。
二、所用仪器、设备计算机,dsp实验系统实验箱,ccs操作环境三、实验原理(简化)FIR:有限冲激响应数字滤波器的基础理论,模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。
数字滤波器系数的确定方法。
IIR:无限冲激响应数字滤波器的基础理论。
模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。
数字滤波器系数的确定方法。
、自适应滤波:自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。
e(n)=z(n)-y(n)=s(n)+d(n)-y(n)直方图:灰度直方图描述了一幅图像的灰度级内容。
灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标是该灰度出现的频率(像素个数与图像像素总数之比)。
图像边缘化:所谓边缘(或边沿)是指其周围像素灰度有阶跃变化。
经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,利用边缘临近一阶或二阶方向导数变化规律,用简单的方法检测边缘。
实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。
二、实验原理1、单位抽样序列在MATLAB中可以利用函数实现。
2、单位阶越序列在MATLAB中可以利用函数实现:3、正弦序列在MATLAB中实现过程如下:4、复指数序列在MATLAB中实现过程如下:5、指数序列在MATLAB中实现过程如下:三、预习要求1、预先阅读实验讲义(MATLAB基础介绍);2、讨论正弦序列、复指数序列的性质。
A.绘出信号,当、时、、时的信号实部和虚部图;当时呢?此时信号周期为多少?程序如下:titlez1=-1/12+j*pi/6;titlez2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;n=0:20;x1=exp(titlez1*n);x2=exp(titlez2*n);x3=exp(z3*n);x4=exp(z4*n);x5=exp(z5*n);subplot(5,2,1);stem(n,real(x1));xlabel('n');ylabel('real(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,2);stem(n,imag(x1));xlabel('n');ylabel('imag(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,3);stem(n,real(x2));xlabel('n');ylabel('real(x2)'); title('z2=1/12+j*pi/6时')subplot(5,2,4);stem(n,imag(x2));xlabel('n');ylabel('image(x2)'); title('z2=1/12+j*pi/6时')subplot(5,2,5);stem(n,real(x3));xlabel('n');ylabel('real(x3)'); title('z3=1/12时')subplot(5,2,6);stem(n,imag(x3));xlabel('n');ylabel('image(x3)'); title('z3=1/12时')subplot(5,2,7);stem(n,real(x4));xlabel('n');ylabel('real(x4)'); title('z4=2+j*pi/6时')subplot(5,2,8);stem(n,imag(x4));xlabel('n');ylabel('image(x4)'); title('z4=2+j*pi/6时')subplot(5,2,9);stem(n,real(x5));xlabel('n');ylabel('real(x5)'); title('z5=j*pi/6时')subplot(5,2,10);stem(n,imag(x5));xlabel('n');ylabel('image(x5)'); title('z5=j*pi/6时')运行结果如下:当Z=pi/6时,序列周期为12。
本科学生实验报告学号124090314 姓名何胜金学院物电学院专业、班级12电子实验课程名称数字信号处理(实验)教师及职称杨卫平开课学期第三至第四学年下学期填报时间2015 年 3 月 1 9 日云南师范大学教务处编印2.产生幅度调制信号x[t]=cos(2t)cos(200t),推导其频率特性,确定抽样频率,并会出波形。
程序: clc,clear,close all t=[0:0.01:5];x=cos(2*pi*t).*cos(200*pi*t); plot(t,x);clc,clear,close allt0=0:0.001:0.1;x0=0.5*(cos(202*pi*t0)+cos(198*pi*t0)); plot(t0,x0,'r') hold on fs=202;t=0:1/fs:0.1;x=0.5*(cos(202*pi*t)+cos(198*pi*t)); stem(t,x);3.对连续信号x[t]=cos(4t)进行抽样以得到离散序列,并进行重建。
(1)生成信号x(t),时间为t=0:0.001:4,画出x(t)的波形。
程序clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0 ,x0,'r');(2)以faam=10HZ对信号进行抽样,画出在0≤t≤1范围内的抽样序列,x[k],利用抽样内插函数恢复连续时间信号,画出重逢信号的波形。
程序:clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0,x0); hold onfs=10;t=0:1/fs:3; x=cos(4*pi*t); stem(t,x);4.若x[k]是对连续信号x(t)=cos(0.5t)以samf=2Hz抽样得到的离散序列,如何通过在抽样点之间内插,恢复原连续时间信号x(t)?程序:clc,clear,close all t=0:0.0001:4; x=cos(0.5*pi*t); plot(t,x); Figure1:clc,clear,close allt=0:0.0001:4; x=cos(0.5*pi*t); subplot(2,1,1); plot(t,x);t0=0:0.5:4;x0=cos(0.5*pi*t0); subplot(2,1,2); stem(t0,x0);5.已知序列x[k]={1,3,2,-5;k=0,1,2,3},分别取N=2,3,4,5对其频谱X(e j)进行抽样,再由频域抽样点恢复时域序列,观察时域序列是否存在混叠,有何规律?k=[0,1,2,3]; x=[1,3,2,-5]; n=100;omega=[0:n-1]*2*pi/n;X0=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,1);stem(k,x);title('原序列');subplot(3,4,2);plot(omega./pi,abs(X0));title('序列的频谱 N=100');N=2;omega=[0:N-1]*2*pi/N;X1=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,5);stem(omega./pi,abs(X1));title('频域抽样 N=2');rx1=real(ifft(X1)); subplot(3,4,9);stem(rx1);title('时域恢复');N=3;omega=[0:N-1]*2*pi/N;X2=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,6);stem(omega./pi,abs(X2));title('频域抽样 N=3');rx2=real(ifft(X2)); subplot(3,4,10);stem(rx2);title('时域恢复');N=4;omega=[0:N-1]*2*pi/N;X3=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,7);stem(omega./pi,abs(X3));title('频域抽样 N=4');rx3=real(ifft(X3)); subplot(3,4,11);stem(rx3);title('时域恢复');。
我不应把我的作品全归功于自己的智慧,还应归功于我以外向我提供素材的成千成万的事情和人物!——采于网,整于己,用于民2021年5月12日dsp实验报告总结篇一:dsp课程设计实验报告总结DSP课程设计总结(XX-XX学年第2学期)题目:专业班级:电子1103 学生姓名:万蒙学号:指导教师:设计成绩:XX 年6 月目录一设计目的----------------------------------------------------------------------3 二系统分析----------------------------------------------------------------------3 三硬件设计3.1 硬件总体结构-----------------------------------------------------------3 3.2 DSP模块设计-----------------------------------------------------------4 3.3 电源模块设计----------------------------------------------------------4 3.4 时钟模块设计----------------------------------------------------------5 3.5 存储器模块设计--------------------------------------------------------6 3.6 复位模块设计----------------------------------------------------------6 3.7 JTAG模块设计--------------------------------------------------------7 四软件设计4.1 软件总体流程-----------------------------------------------------74.2 核心模块及实现代码---------------------------------------8五课程设计总结-----------------------------------------------------14一、设计目的设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP控制程序。
dsp实验报告实验一:CCS入门实验实验目的:1. 熟悉CCS集成开发环境,掌握工程的生成方法;熟悉SEED-DEC643实验环境; 掌握CCS集成开发环境的调试方法。
2.学习用标准C 语言编写程序;了解TI CCS开发平台下的C 语言程序设计方法和步骤; 熟悉使用软件仿真方式调试程序。
3. 学习用汇编语言编写程序; 了解汇编语言与 C 语言程序的区别和在设置上的不同;了解TMS320C6000 汇编语言程序结果和一些简单的汇编语句用法学习在CCS 环境中调试汇编代码。
4. 在了解纯C 语言程序工程和汇编语言程序工程结构的基础上,学习在C 工程中加入汇编编程的混合编程方法; 了解混合编程的注意事项;理解混合编程的必要性和在什么情况下要采用混合编程5. 熟悉CCS集成开发环境,掌握工程的生成方法; 熟悉SEED-DEC643实验环境;掌握CCS集成开发环境的调试方法。
实验原理:CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力序。
使用此命令后,要重新装载.out 文件后,再执行程序。
使用 CCS常遇见文件简介1. program.c: C 程序源文件;2. program.asm: 汇编程序源文件;3. filename.h: C 程序的头文件,包含DSP/BIOS API模块的头文件;4. filename.lib: 库文件;5. project.cmd: 连接命令文件;6. program.obj: 由源文件编译或汇编而得的目标文件;7. program.out: 经完整的编译、汇编以及连接后生成可执行文件; 8. program.map: 经完整的编译、汇编以及连接后生成空间分配文件; 9.project.wks: 存储环境设置信息的工作区文件。
P.S(CMD文件中常用的程序段名与含义1. .cinit 存放C程序中的变量初值和常量;2. .const 存放C程序中的字符常量、浮点常量和用const声明的常量;3. .text 存放C程序的代码;4. .bss 为C 程序中的全局和静态变量保留存储空间;5. .far 为C 程序中用far声明的全局和静态变量保留空间;6. .stack 为 C 程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;7. .sysmem 用于 C 程序中malloc、calloc 和 realloc 函数动态分配存储空间。
实验一:闪灯实验熟悉DSP 软硬件测试系统实验目的1.了解SHARC 系列高性能数字信号处理器的程序开发过程和编程语言;2. 熟悉集成开发工具VisualDSP++,学会使用VisualDSP++进行SHARC 系列ADSP 的程序开发、编译与调试;3. 掌握SHARC 系列ADSP 的程序加载设计和加载过程。
实验内容利用波形产生信号板,结合FPGA 编程技术和程序编程器,编写测试ADSP21065L 和FPGA 之间硬件连接的应用程序,同时完成应用程序的加载和脱机操作,在信号指示灯“HL2”上产生可调周期的脉冲信号,“点亮”与“熄灭”指示灯HL2。
实验要求通过DSP 编程,在其FLAG11引脚上模拟如下波形的周期信号:要求:(1) 500H T ms >,500L T ms >.(2) 并用示波器查看波形,测量信号周期。
实验步骤1.熟悉电路图,清楚波形产生电路板ADSP21065L 与可编程FPGA 器件之间的连接关系; 2.编写FPGA 程序。
在FPGA 内部将ADSP21065L 的标志引脚FLAG11(引脚号26)设置为输出,作为FPGA 的输入信号,在FPGA 内部编程将该信号直接输出在发FPGA 的37引脚号上,设置37引脚为输出信号,驱动板上的HL2 LED 指示灯;3.启动VisualDsp++4.5,选择project 工程选项菜单,创建一个名称为Test.dpj 的工程文件,选择处理器的型号为ADSP-21065L ;4.弹出一个对话框,选择是否需要加入VDSP kernel ,选择“NO ”;5.在工程中加入以下参考源文件:\exp1\test(boot)\ boot1.asm 和boot1.ldf 6.编译,链接调试,生成可执行文件。
7.运行程序,可以看到波形发生电路板上的指示灯“HL2”不断闪动。
8.利用示波器观测系统时钟,并测量产生信号的波形和周期。
实验结果观察示波器的波形如下:实验二:FFT与滤波器设计掌握DSP算法实现与在线仿真技巧本实验要求学生掌握FFT、滤波器设计、匹配滤波等数字信号处理流程和设计方法,利用DSP实现对模拟I、Q两路回波信号的匹配滤波,并对实验结果进行分析。
实训报告姓名:学号: 2011089班级:电子111专业:电子信息工程指导教师:宗接华一、实训目的1、熟练掌握DSP芯片(TMS320C6000 系列)的结构和原理;2、掌握CCS指令功能、基本的使用方法和操作过程;3、掌握DSP应用系统中系统调试方法;4、掌握最基本的数字信号处理的理论和方法;5、掌握DSP芯片汇编语言和C语言的编程方法和技巧。
二、实训任务1、完成定时器与数字振荡器实训,并达到实训要求。
2、编程设计交通灯和完成LED显示实训,并可正常运作。
3、运用C语言编程完成时钟电路的设计。
4、完成双音多频DTMF技术的实训。
三、实训过程与内容1、实训课的第一天我们做了定时器与数字振荡器实训。
1.1正弦波信号发生器1)实训内容与结果(1)在 CCS 中新建项目:sinewave.pjt,建立文件sinewave.asm、vec_table.asm和sinewave.cmd。
并将此三个文件加入到项目中。
(2)编译、链接项目文件sinewave.pjt。
点击按钮或Debug→Run运行程序。
1.2定时器中断实训1)实训内容与结果(1)在CCS中新建工程文件timer.pjt,建立文件timer.asm、vec_table.asm和timer.cmd。
并将此三个文件加入到项目中。
(2)对工程进行编译链接,并把.out文件下载到目标板,然后运行程序,可以看到目标板上和XF引脚相连的LED灯在周期性地闪烁。
2、实训课的第二天做了交通灯的设计和LED显示实训2.1交通灯的设计(1)在CCS中新建工程文件jtd.pjt,建立文件timer.asm、vec_table.asm和timer.cmd。
并将此三个文件加入到项目中。
程序模块如下:#include "stdio.h"#define IMR 0#define ST0 6#define ST1 7#define TIM 0x24#define PRD 0x25#define TCR 0x26#define PMST 29extern int counter = 25;extern int flagxf = 0;int con_buf=0;float buf[128];float y0;float y1=0.30901699;float y2=0.58778525; const float aa=1.90211304; const float bb=-1.;int Timer_2000 = 0;unsigned char flag_200;ioport unsigned portc000; main(){const int flag = 1;int *dest;dest = (int *)IMR;*dest = 0;dest = (int *)PMST;*dest = 0x1020;dest = (int *)TCR;*dest = 0x0010;dest = (int *)PRD;*dest =49999;dest = (int *)IMR;*dest = 0x0008;dest = (int *)TCR;*dest = 0x0030;*dest = 0x0000;asm (" rsbx intm");while ( flag ){if ( flag_200 == 1 ){ portc000=0x30c;flag_200 = 0;}if (flag_200 == 2){portc000=0x492;flag_200 =0;}if (flag_200 == 3){portc000=0x861;flag_200 =0;}}}void interrupt tint(){Timer_2000 ++;if (Timer_2000 == 20000){flag_200 = 1;}if (Timer_2000 == 40000){flag_200 =2;}if (Timer_2000 ==60000){flag_200 =3;Timer_2000=0;}}(2)对工程进行编译链接,并把.out文件下载到目标板,然后运行程序,可以看到目标板上可以看到红绿灯正常运作。
实验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课程的实用性和趣味性。
实验二基本算数运算2.1 实验目的和要求加、减、乘、除是数字信号处理中最基本的算术运算。
实验报告实验名称__ 采样、系统性质及滤波_ _ 系统频率响应和样本处理算法实现加窗和离散傅氏变换数字滤波器设计课程名称数字信号处理A(双语)班级学号_ ___ 姓名____ _____开课时间 2011/2012学年,第二学期实验一 采样、系统性质及滤波一、 实验目的和任务(1)熟悉MA TLAB 的主要操作命令。
(2)学会简单的矩阵输入和数据读写。
(3)掌握简单的绘图命令。
(4)用MATLAB 编程并学会创建函数。
(5)观察采样引起的混叠。
(6)判别离散时间系统的时不变性。
(7)卷积计算二、 实验内容 A 、观察采样引起的混叠设模拟信号为)3sin()2sin(4)5cos()(t t t t x πππ⋅+=,t 的单位为毫秒(ms)。
1. 设采样频率为3kHz ,确定与)(t x 混叠的采样重建信号)(t x a 。
2. 画出)(t x 和)(t x a 在)(60ms t ≤≤范围内的连续波形。
(因数字计算机无法真正画出连续波形,可用较密的离散点的连线来近似。
)3. 分别用"" 和""⨯在两信号波形上标记出3kHz 采样点。
两信号波形是否相同?采样后的两序列是否相同?实验过程与结果: 实验程序:% ============= % problem 1% ============= clear% estimate x(t) and xa(t) with a much higher sampling freq. 'fs1' time_period=6; % unit: ms fs1=50; % unit: kHz T1=1/fs1; % unit: ms n1=0:fix(time_period/T1);x=cos(5*pi*n1*T1)+4*sin(2*pi*n1*T1).*sin(3*pi*n1*T1); xa=cos(pi*n1*T1);% obtain x(nT) and xa(nT) with given sampling freq. 'fs' fs=3; T=1/fs;n=0:fix(time_period/T);x_sample=cos(5*pi*n*T)+4*sin(2*pi*n*T).*sin(3*pi*n*T); xa_sample=cos(pi*n*T);figure,plot(n1*T1,x,'r',n1*T1,xa,'b',n*T,x_sample,'ro'),hold on, stem(n*T,xa_sample,'b:x')legend('x(t)','xa(t)','x(nT)','xa(nT)'),xlabel('t(ms)') 实验结果:分析与讨论:)5cos()cos(2)3sin()2sin(4)5cos()(t t t t t t x ωωπππ-=⋅+= )cos()(t t x a π=两个信号)(t x 和)(t x a 波形不相同。
DSP实验报告02071445张渊实验一—VISUALDSP++的使用入门实验目的熟悉VISUAL DSP++的开发环境。
针对ADSP-Blackfin533 DSP,利用几个用C、C++和汇编语言写成的简单例子来描述VISUAL DSP+十编程环境和调试器(debugger)的主要特征和功能。
对于运行在其它类型Blackfin处理器的程序只需对其链接描述文件(.LDF)做一些修改,就可用于其它芯片或者ADSP-Blackfin533的硬件仿真。
实验内容一、练习一1. 实验步骤l) 进入Visual DSP+十并打开一个工程(Project)进入Visual DSP++,显示Visual DSP++的集成开发和调试环境窗口(Integrated Development and Debugger Environment,简称IDDE)。
装载dotprodc工程,并列出相应的源文件。
在输出窗口(Output Window)中显示简要信息。
2) 编译dotprodc工程在菜单Project中选择Build Project来对工程进行编译。
在本例子中,编译器检测到一个未定义的错误,显示为:“.\dotprod_main.c”,line 115:error #20:identifier“itn”is undefined itn i;在输出窗口中对该行文字用鼠标双击,环境会自动打开dotprod_main.c文件,并将光标定位在出错行。
你可以看见单词“int”被错写成“itn”。
将该错误改正后,保存并重新编译。
如果再没有错误出现,这时工程已被成功编译,就可以用VisualDSP++的debugger来调试程序。
3) 运行VsualDSP++调试器在调试过程中需定义不同的对象和处理器类型,选取菜单Sessions中NeW Session项来重新定义。
NeW Session 对话框图7.2所示:4) 运行dotprod.c从Debug菜单中选择Run项,程序将被执行,其输出结果在Output window中显示。
实验一 离散系统的时域分析一、实验目的1、掌握离散时间信号的MATLAB 表示;2、信号运算;3、差分方程的求解;4、离散时间信号的卷积运算。
二、实验原理1、离散时间信号离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。
它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n 取整数代表时间的离散时刻。
在matlab 中用向量来表示一个有限长度的序列。
2、序列的类型为了分析的方便,在数字信号处理中规定了一些基本的序列。
a) 单位采样序列function [x,n]=impseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)==0];调用该函数[x,n]=impseq(-2,8,2); stem(n,x)0010()001()0n n n n n n n n n δδ =⎧=⎨ ≠⎩ =⎧-⎨≠⎩单位采样序列的另一种生成方法n0=-2; n=[-10:10]; nc=length(n); x=zeros(1,nc); for i=1:nc if n(i)==n0 x(i)=1 end endstem(n,x)b) 单位阶跃序列function [x,n]=stepseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)>=0];调用该函数[x,n]=stepseq(-2,8,2); stem(n,x)00010()001()0n n n n n n n n nεε >=⎧=⎨<⎩ >=⎧-⎨ <⎩c) 实数指数序列x(n)=an (运算符“.^”)n=[0:10]; x=0.9.^n; stem(n,x)d) 复数指数序列n=[-10:10]; alpha=-0.1+0.3*j; x=exp(alpha*n);real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x); subplot(2,2,1); stem(n,real_x) subplot(2,2,2); stem(n,image_x) subplot(2,2,3); stem(n,mag_x) subplot(2,2,4); stem(n,phase_x)()()j nx n e αω+=(0.1j0.3)n x(n)e (10n 10)-+= -<<e) 正弦和余弦序列 n=[0:10]; x=3*cos(0.1*pi*n+pi/3);stem(n,x)f)随机序列rand(1,N)产生其元素在[0,1]之间均匀分布长度为N 的随机序列。
FFT 频谱分析一、 实验目的a) 进一步加深DFT 算法原理和基本性质的理解b) 熟悉FFT 算法原理和FFT 程序的应用c) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确的应用FFT二、 实验原理a) 离散傅里叶变换(DFT ):离散傅里叶变换在作为有限长序列的傅里叶变换表示法在理论上相当重要;由于存在着计算离散傅里叶变换的快速算法(FFT ),从而离散傅里叶变换在各种数字信号处理的算法中起到了核心的作用。
其对应的离散傅里叶变换对为:X (K )=DFT [x (n )]=∑x (n )W N nk 0≤k ≤N −1N−1n=0x (n )=IDFT [X (K )]=1N ∑x (n )W N nk 0≤n ≤N −1N−1n=0需要注意:有限长序列的离散傅里叶变换及周期序列的离散傅里叶级数之间的关系是:它们仅仅是n 、k 的取值不同,DFT 只取主值区间。
X(n)、X(k)是一个有限长序列的离散傅里叶变换对,已知其中一个序列,就可以唯一确定另一个序列,这是因为x(n)、X(k)都是长为N 的序列,都有N 个独立值,所以信息量相同。
b) DFT 计算量:长度为N 的DFT 的计算量是N 个复数乘法和N-1个复数加法(4N 个实数乘法和4N-2个复数加法)c) FFT 的计算量:长度为N 的FFT 的计算量是 N 2log 2N 个复数乘法和N log 2N 个复数加法。
三、 实验步骤a) 复习DFT 的定义、性质和用DFT 做谱分析的有关内容b) 复习FFT 算法原理与编程思想,熟悉DIT-FFT 运算流图c) 编制信号产生程序,产生典型信号尽心谱分析。
d) 进行以下几个信号的谱分析i.x 1(n)=R 4(n ) ii. x 2(n)={n +1 ,0≤n ≤38−n ,4≤n ≤70 ,其他niii. x 3(n)= {4−n ,0≤n ≤3n −3 ,4≤n ≤70 ,其他niv. x 4(n )=cos π4n ,0≤n ≤19v.x 5(n )=sin π8n ,0≤n ≤19 vi.x 6(n )= cos 8πt +cos 16πt +cos 20πt vii.令x 7(n )=x 4(n )+x 5(n) N=8,16 viii. 令x 8(n )=x 4(n )+jx 5(n) N=8,16针对上述信号进行逐一的谱分析,下面给出针对各个信号的FFT 点数N 及对连续信号x 6(n )的采样频率f s ,供实验时参考 :x 1(n ),x 2(n ),x 3(n ),x 4(n ),x 5(n ) N=8,16x 6(n ) f s =64Hz ,N =16,32,64四、 实验内容a)对x1(n)=R4(n)进行谱分析1.编辑代码x1=[1 1 1 1];y11 = fft(x1,8);y12 = fft(x1,16);subplot(2,2,1);stem(0:3,x1);title('函数X1的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));title('N=16的DFT');2.谱分析图片b) 对x 2(n)={n +1 ,0≤n ≤38−n ,4≤n ≤70 ,其他n进行谱分析i. 编辑代码x2 = [1 2 3 4 4 3 2 1];y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:7,x2);title('函数X2的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));c)对x3(n)={4−n ,0≤n≤3n−3 ,4≤n≤70 ,其他n进行谱分析i.谱分析程序x3 = [4 3 2 1 1 2 3 4];y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:7,x2);title('函数X2的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));n ,0≤n≤19进行谱分析d)对x4(n)=cosπ4i.谱分析程序n = 0:1:19;x2 = cos(0.25*pi*n);y11 = fft(x2,32);y12 = fft(x2,64);subplot(2,2,1);stem(0:19,x2);title('函数X4的图像');subplot(2,2,2);stem(0:31,abs(y11));title('N=32的DFT');subplot(2,2,4);stem(0:63,abs(y12));title('N=64的DFT');ii.谱分析图片n ,0≤n≤19进行谱分析e)对x5(n)=sinπ8i.谱分析程序n = 0:1:19;x2 = sin(0.125*pi*n);y11 = fft(x2,32);y12 = fft(x2,64);subplot(2,2,1);stem(0:19,x2);title('函数X5的图像');subplot(2,2,2);stem(0:31,abs(y11));title('N=32的DFT');subplot(2,2,4);stem(0:63,abs(y12));title('N=64的DFT');ii.谱分析图片f)对x6(n)=cos8πt+cos16πt+cos20πt进行谱分析i.谱分析程序n = 0:1:15;x1 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);n = 0:1:31;x2 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64); n = 0:1:63;x3 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);y1 = fft(x1,16);y2 = fft(x2,32);y3 = fft(x3,64);subplot(3,2,1);stem(0:15,x1);title('函数X6 N=16 的图像');subplot(3,2,2);stem(0:15,abs(y1));title('N=16的DFT');subplot(3,2,3);stem(0:31,x2);title('函数X6 N=32 的图像');subplot(3,2,4);stem(0:31,abs(y2));title('N=32的DFT');subplot(3,2,5);stem(0:63,x3);title('函数X6 N=64 的图像');subplot(3,2,6);stem(0:63,abs(y3));title('N=64的DFT');ii.谱分析图片g)对x7(n)=x4(n)+x5(n)进行谱分析i.谱分析程序n = 0:1:19;x2 = j*sin(0.125*pi*n) + cos(0.25*pi*n);y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:19,x2);title('函数X=X4 + X5 的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));title('N=16的DFT');ii.谱分析图片h)对x8(n)=x4(n)+jx5(n)进行谱分析i.谱分析程序n = 0:1:19;x2 = j*sin(0.125*pi*n) + cos(0.25*pi*n);y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:19,x2);title('函数X=X4 + X5 的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));title('N=16的DFT');ii.谱分析图片五、实验分析六、实验结论通过这次利用FFT对信号进行频谱分析的实验,更加深刻的理解了DFT算法的理解和性质的理解;同时也更为熟悉了FFT算法的原理和应用;学会使用FFT 对离散信号和连续信号进行频谱分析,了解了可能出现的分析误差和原因。
实验一 信号、系统及响应一、 实验目的1. 熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。
2. 熟悉离散信号和系统的时域特性。
3. 熟悉线性卷积的计算编程方法:利用卷积的方法,观察分析系统响应的时域特性。
4. 掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号,系统及系统响应进行频域分析。
二、 实验内容在编制以上各部分程序以后,编制主程序调用各个功能模块实现对信号,系统和系统响应的时域,频域分析,完成以下实验内容。
1.分析理想采样信号序列的特性。
产生理想采样信号序列()a x n ,使A =444.128,α=,0Ω= a.首先选用采样频率为1000Hz,T =1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录。
b.改变采样频率为300Hz,T=1/300,观察所得到的幅频特性曲线的变化,并做记录c.进一步减少采样频率为200Hz,T=1/200,观察频谱“混淆”现象是否明显存在,说明原因,并记录幅频特性曲线。
2.离散信号,系统和系统响应的分析(1).观察信号()b x n 和系统()b h n 的时域和幅频特性,利用线性卷积求信号通过系统以后的响应。
比较系统响应和系统()b h n 的时域和幅频特性,注意它们之间有无差异,并绘出曲线。
(2).观察信号()c x n 和系统()a h n 的时域和幅频特性,利用线性卷积求系统响应。
判断响应序列图形及序列非零值长度是否与理论结果一致,说出一种定性判断响应序列图形正确与否的方法(提示:10()()()c a x n h n R n ==)。
利用系统的傅立叶变换数值计算子程序求出()k j Y e ω,观察响应序列的幅频特性。
定性判断结果正确与否,改变信号()c x n 的脉冲宽度,使N =5,重复以上动作,观察变化,记录改变参数前后的差异。
(3)将实验步骤2-(2)中信号变换为()a x n ,其中A=1,α =0.4,0Ω=2.0734,T=1。
淮阴工学院《DSP技术与应用》课程设计报告选题名称:基于TMS320C54DSP的数字电话系统设计系(院):计算机工程学院专业:计算机工程系(嵌入式系统软件设计方向)班级:计算机1073姓名:王翔学号: 1071306121指导教师:马岱,常波学年学期: 2009 ~ 2010 学年第 2 学期2010 年 6 月 12 日设计任务书课题名称基于TMS320C54xDSP的数字电话系统设计设计 1. 理解DSP TMS320C54x和目的TLV1571的工作原理;2. 理解DSP应用系统开发的基本思路及方法;3. 练习使用汇编语言中循环、分支等知识编写应用程序的基本步骤;4. 学习软件开发过程及资料收集与整理,学会撰写课程设计报告;5. 学会对所学知识进行总结与提高;实验环境1.Windows 2000以上操作系统;2.CSS集成开发环境;任务要求1. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;2. 在第14周末之前完成预设计,并请指导教师审查。
通过后方可进行下一步工作;3. 按指导书要求设计软件,实现设计的功能,并显示正确的结果;4. 要求形成稳定的程序软件,可以运行,方可申请参加答辩;工作进度计划序号起止日期工作内容12010.6.6~2010.6.7在预设计的基础上,进一步查阅资料,完成硬件电路设计。
22010.6.8~2010.6.8编写软件代码,调试与完善。
32010.6.8~2010.6.9测试程序,优化代码,增强功能,撰写课程设计报告。
42010.6.10~2010.6.10提交软件代码、硬件电路成果和设计报告,参加答辩。
指导教师(签章):年月日摘要:电话已成为现代生活不可缺少的交流工具之一,它方便了人们的交流使交流不再受物理距离的限制!基本上每个人都要用到电话,我们的身边的电话基本都是模拟电话。
虽然它基本可以买足我们的日常生活,语音效果也很好!但在有雷电等恶劣自然条件的情况下它的通话效果就很不近人意了。
实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。
二、实验原理1、单位抽样序列在MATLAB中可以利用函数实现。
2、单位阶越序列在MATLAB中可以利用函数实现:3、正弦序列在MATLAB中实现过程如下:4、复指数序列在MATLAB中实现过程如下:5、指数序列在MATLAB中实现过程如下:三、预习要求1、预先阅读实验讲义(MATLAB基础介绍);2、讨论正弦序列、复指数序列的性质。
A.绘出信号,当、时、、时的信号实部和虚部图;当时呢?此时信号周期为多少?程序如下:titlez1=-1/12+j*pi/6;titlez2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;n=0:20;x1=exp(titlez1*n);x2=exp(titlez2*n);x3=exp(z3*n);x4=exp(z4*n);x5=exp(z5*n);subplot(5,2,1);stem(n,real(x1));xlabel('n');ylabel('real(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,2);stem(n,imag(x1));xlabel('n');ylabel('imag(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,3);stem(n,real(x2));xlabel('n');ylabel('real(x2)'); title('z2=1/12+j*pi/6时')subplot(5,2,4);stem(n,imag(x2));xlabel('n');ylabel('image(x2)'); title('z2=1/12+j*pi/6时')subplot(5,2,5);stem(n,real(x3));xlabel('n');ylabel('real(x3)'); title('z3=1/12时')subplot(5,2,6);stem(n,imag(x3));xlabel('n');ylabel('image(x3)'); title('z3=1/12时')subplot(5,2,7);stem(n,real(x4));xlabel('n');ylabel('real(x4)'); title('z4=2+j*pi/6时')subplot(5,2,8);stem(n,imag(x4));xlabel('n');ylabel('image(x4)'); title('z4=2+j*pi/6时')subplot(5,2,9);stem(n,real(x5));xlabel('n');ylabel('real(x5)'); title('z5=j*pi/6时')subplot(5,2,10);stem(n,imag(x5));xlabel('n');ylabel('image(x5)'); title('z5=j*pi/6时')运行结果如下:当Z=pi/6时,序列周期为12。
实验四 M10.1 Plot the magnitude response of a linear-phase FIR highpass filter by truncating the impulse response hHP[n] of the ideal highpass filter of Eq.(10.17 to length N=2M+1 for two different values of M, and show that the truncated filter exhibits oscillatory behavior on both sides of the cutoff frequency. Code: M=800; n= -M:M; hn= -sin(0.4*pi*n./(pi*n; %hn= -0.4*sinc(0.4*n; hn(M+1=0.6; [H,w] = freqz(hn,1; plot(n,hn figure,plot(w/pi,abs(H M10-1 M10-2
M11-1 Using Program 11-1,determine the first 30 samples of the impulse response coe Ffiicients of the following filters: (a Filter-oder elliptic lowpass filter developed in Example 9.14, (b Fourth-oder Type 1 Chebyshev highpass filter developed in Example 9.15, (c Eight-oder Butterworth bandpass filter develped in Example 9.16. Code: N=8;
xa=input('8 点 xa ='; xb=input('8 点 xb ='; xak=fft(xa,N; xbk=fft(xb,N; f=ifft(xak.*xbk,N; figure(1; subplot(5,1,1; stem(0:N-1,xa; title('xa(n'; subplot(5,1,2; stem(0:N-1,xb;
title('xb(n'; subplot(5,1,3; stem(0:N-1,f; title('xa(n⊙xb(n'; xak1=fft(xa,2*N;
xbk1=fft(xb,2*N; h=ifft(xak1.*xbk1,2*N; subplot(5,1,4; stem(0:2*N-2,h(1:2*N-1;
title('xa*xb'; h=conv(xa,xb; subplot(5,1,5; stem(0:2*N-2,h(1:2*N-1;
M11-1 实验体会通过本次实验,通过此次 DSP 上机实验,进一步掌握和巩固了数字信号的相关知识,以及 Matlab 的相关操作,体验了将实际问题用软件进行实际应用的方法,为今后的学习和毕设夯实基础。
使我对具有线性相位的有限长数字低通滤波器的设计原理、设计方法和设计步骤有了更进一步掌握。
通过题目中给定的滤波器的指标,分别选择不同的窗函数形式,利用窗函数法设计 FIR 数
字滤波器。
由结果我们可以看出其他窗函数在边沿处比矩形窗变化要平滑而缓
慢,逼近误差更小。
对无限长单位冲激响应数字滤波器与有限长数字滤波器之间的不同点有了更进一步的理解和加深。