ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:153.64KB ,
资源ID:4415307      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4415307.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP 实验六 正弦波产生与图像增强的DSP实现.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP 实验六 正弦波产生与图像增强的DSP实现.docx

1、DSP 实验六 正弦波产生与图像增强的DSP实现实验六 正弦波产生与图像增强的DSP实现(C语言)一、实验目的1. 初步掌握用C语言进行DSP程序设计。2. 掌握递推法产生正弦型信号的C语言程序设计方法。3. 掌握查表法进行图像直方图变换增强的C语言程序设计方法。二、实验环境1.奔腾IV计算机2.Code Composer Studio (CCS)软件3.matlab 6.5软件三、实验内容*C54x DSP软件设计的方法通常有三种:(1) 用汇编语言开发。用汇编语言开发产品,周期长,软件修改和升级困难。(2) 用C语言开发。优点是增强软件的可读性,提高了软件的开发速度,方便软件的修改和移植。

2、但无法实现在任何情况下都能合理地利用DSP芯片的各种资源。()(3) 用C和汇编语言混合编程开发,能更好地达到设计要求。1.递推法产生正弦型信号递推法产生N点余弦波和正弦波的公式:cos(nx) = 2cos(x)cos(n-1)x-cos(n-2)x (1) sin(nx) = 2cos(x)sin(n-1)x-sin(n-2)x (2)其中:x-角度步长;n-离散时间(n=0:N)(1)产生余弦信号(本例取x=10,N=200点)变量:_COSX=cos(10)=0.99390827-角度步长x的余弦值;数组:1)_cosx-存放余弦波输出值(共200点)2)dacdata=_cosx*2

3、047+2048- 输出结果(将余弦信号的幅度范围从-11调整至04096,成为整数)根据公式(1)循环,逐次计算出各点的余弦信号。实验要求:1将cose.c,cose.cmd及c:tic5400cgtoolslib目录下的库文件rts.lib添加入所创建的工程:cose.pjt中。2运行程序cose.c,按照以下设置,画出输出波形dacdata:图13分别按照以下设置,观察并写出_cosx和dacdata前10个值。 (a) (b)图2_cosx0_cosx9= 1.0 0.9993908 0.9975641 0.994522 0.9902682 0.984808 0.9781479 0.9

4、70296 0.961262 0.9510568 dacdata0dacdata9= 4095 4093 4090 4083 4075 4063 4050 4034 4015 3994 (2)设计程序,产生正弦信号(本例取x=10,N=200点)提示: 对程序cose.c中蓝色部分进行修改:变量:_COSX=cos(10)=0.99390827-角度步长x的余弦值;数组:1)_sinx-存放正弦波输出值(共200点)2)dacdatai=_sinxi*4096- 输出结果(共180点)(将余弦信号的幅度范围从-11调整至-20482048,成为整数)3)初始值:_sinx0= 0.0 ; _s

5、inx1= 0.01745241 ;dadata0= 0 ;dacdata1= 71 。注:sin(10)=0.0175根据公式(2)循环,逐次计算出各点的正弦信号。实验要求:1设计产生正弦波的程序: sine.c /* 源程序 sine.c */ioport unsigned port0bfff;#define IOSR port0bfff #define _COSX 0.999390827#define _SINX 0.017452406 #pragma DATA_SECTION(_SINX,data_buf1)float _sinx200;#pragma DATA_SECTION(dac

6、data,data_buf2)int dacdata180;void delay(void);void main(void) unsigned int i=0;_sinx0=0.000;dacdata0=0;_sinx1=_SINX;dacdata1=_SINX*4096;i=1; while(1) if(i+179) break; _sinxi=2*COSX*_sinxi-1-_sinxi-2; dacdatai=_sinxi*4096; i=0; while(1) if(i179) i=0; IOSR=dacdatai+; delay(); void delay(void) long in

7、t j; for(j=0; j800; j+) asm(_nop); /* 链接命令文件 sine.cmd */(与cose.cm相同)2仍按照图1设置,画出输出dacdata波形:2.查表法进行图像直方图变换增强(1)图像的gamma校正gamma校正是图像对比度增强的方法之一,公式为: Iout=(Iin/maxgray)1/* maxgray (3)其中:Iin-输入图像的灰度值;Iout-输出图像的灰度值;maxgray=255-最大灰度值;-gamma系数。步骤:1)在matlab中,根据(3)式编程,产生Iin和Iout ,组成表格table。%gammajiaozheng.mcl

8、earclcIin=0:255; maxgray=255; r=1.54; %gamma系数Iout=(Iin/maxgray).(1/r)*maxgray; %gamma校正table=Iin round(Iout) %Iin和Iout组成的关系表2)在CCS中用C语言编程,用查表法对一幅6464的图像:tire.dat进行gamma校正。数组:(i)in_buffer-存放原图像的灰度值。(ii)out_buffer-存放结果图像的灰度值。(iii)LUT-对应于灰度:0255,经gamma校正后的灰度值表格。(LUT中的值即matlab中计算得到的: round(Iout)查表语句: o

9、utputi=LUTinputi; (i=04095)/* 源程序 gammajiaozheng.c */#include /* 包含头文件 */#include /* 包含头文件 */#define TRUE 1 #define FALSE 0#define BUFSIZE 4096 /* 定义BUFSIZE代表4096 */int in_bufferBUFSIZE; /* in_buffer数组(整型数) */ int out_bufferBUFSIZE; /* out_buffer数组(整型数) */ static int gamma(int *input, int *output);/

10、*gamma校正子程序*/static void dataIO(void); /*图像数据输入子程序*/void main() int *input = &in_buffer0; /* 指针input指向 in_buffer0 */ int *output = &out_buffer0; /* 指针output指向 out_buffer0 */ puts(the 3rd experiment startedn);/* 显示the 3rd experiment started */ while(TRUE) /*不断循环*/ dataIO(); /*调用dataIO子程序*/ puts(proce

11、ssingn); /* 在运行栏中输入processinf */ gamma(input, output); /* 对input,output进行gamma矫正 */ dataIO(); static int gamma(int *input, int *output) /*gamma校正子程序 */ int i; /* 定义整型变量i */int LUT256=0, 7, 11, 14, 17, 20, 22, 25, 27, 29, 31, 33, 35, 37, 39, 40, 42, 44, 46, 47, 49,50, 52, 53, 55, 56, 58, 59, 61, 62,

12、63, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78,79, 80, 81, 83, 84, 85, 86, 87,88,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110, 111,112,113,114,115,116,117, 118,119,120,121,122,123,124,125,126,127,128, 129,130,131,131, 132,133,134,135,136,137,138,139,140,141,141,142, 143,144

13、,145,146,147,148,149,149,150,151, 152, 153,154,155, 155,156, 157, 158,159,160,160, 161,162,163,164,165,165, 166,167,168,169, 169, 170,171,172, 173,173,174,175,176,177,177, 178,179,180,181,181,182,183,184,185,185,186,187, 188,188,189,190,191,191, 192, 193,194, 194,195,196,197,197,198,199,200,200,201,

14、202, 203,203,204,205,206,206,207,208,208, 209,210,211,211,212,213,213,214,215,216,216, 217,218, 218,219,220,221,221,222,223,223,224,225,225,226,227,228,228,229,230,230,231,232,232,233, 234,234,235,236,236,237,238,238,239,240,240,241,242,242,243,244,244,245,246,246,247,248, 248,249,250,250,251,252,25

15、2,253,254,254,255; /*gamma校正表LUT*/ for(i=0;i VECT PAGE 0 .sysregs: BIOSREGS PAGE 1 .trcinit: EPROG PAGE 0 .gblinit: EPROG PAGE 0 frt: EPROG PAGE 0 .text: EPROG PAGE 0 .cinit: EPROG PAGE 0 .pinit: EPROG PAGE 0 .sysinit: EPROG PAGE 0 .bss: IDATA PAGE 1 .far: IDATA PAGE 1 .const: IDATA PAGE 1 .switch:

16、IDATA PAGE 1 .sysmem: IDATA PAGE 1 .cio: IDATA PAGE 1 .MEM$obj: IDATA PAGE 1 .sysheap: IDATA PAGE 1 .stack: IDATA PAGE 1实验要求:1在空格中添入注释。2将gammajiaozheng.c,gammajiaozheng.cmd 及c:tic5400cgtoolslib目录下的库文件rts.lib添加入所创建的工程:gammajiaozheng.pjt中。3运行该程序。4按View-Watch Window,选择Watch1观测窗口,添加in_buffer和out_buffer变

17、量,观测它们的起始地址: 图 3注:不一定是图3中显示的地址,要观察后才能得知。5从文件读入数据到内存:按File-Data-Load,按下图设置: (a) (b)图4注:图4(b)中的Adress是你所观测到的in_buffer起始地址(不一定是0x0080)6选View-Graph-Image.并按以下设置,画出原图像和经gamma校正后的图像。 (a) (b)图5 (2)图像的直方图均衡化直方图均衡化的基本思想是:将原图的直方图变换为均匀分布的形式,以增加像素灰度值的动态范围,从而达到增强整体对比度的效果。直方图均衡化的matlab语句:g,LUT=histeq(f);其中f-原图像;g

18、-直方图均衡化后的图像;LUT-对应于灰度值0255的均衡化后像素的灰度。步骤:1)在matlab中,产生直方图均衡化表:LUT。clearclcload tire1 %调入输入图像数据tire1.datA=tire1;M=64;N=64;f=z eros(M,N);for i=1:M %将tire1.dat形成图像f f(i,:)=A(i-1)*N+1:i*N);endf=uint8(f); %将f转换为uint8格式g,LUT=histeq(f); %对f进行直方图均衡化得g,并产生LUT表。LUT=round(LUT*255) %将LUT乘以255并四舍五入,形成整数则 LUT=0,0,

19、0,0,4,4,8,12,16,20,24,32,40,45,53,61,65,69,73,77,81,81,85,85,89,89,93, 93,97,97,101,101,101,105,105,109,109,113,113,113,117,117,117,121,121, 121,125,125,125,125,125,130,130,130,134,134,134,134,134,138,138,138,138, 138,142,142,142,142,142,146,146,146,146,146,150,150,150,150,150,150,154, 154,154,154,1

20、54,158,158,158,162,162,162,162,162,166,166,166,166,170,170, 170,170,174,174,174,174,174,178,178,178,178,182,182,182,182,186,186,186, 186,190,190,190,190,194,194,194,194,198,198,198,198,198,198,202,202,202, 202,202,206,206,206,206,206,206,206,210,210,210,210,210,210,210,210,215, 215,215,215,215,215,2

21、15,219,219,219,219,219,219,219,219,219,223,223,223, 223,223,223,223,223,223,227,227,227,227,227,227,227,227,227,231,231,231, 231,231,231,231,231,231,231,231,231,235,235,235,235,235,235,235,235,235, 235,239,239,239,239,239,239,239,239,239,239,243,243,243,243,243,243,243, 243,243,243,243,243,247,247,2

22、47,247,247,247,247,247,247,247,247,247,251, 251,251,251,251,251,251,251,251,251,255,255,255,255;2)在CCS中用C语言编程,用查表法对图像:tire.dat进行直方图均衡化。实验要求:1编程实现对图像tire.dat的直方图均衡化。/*源程序junhenghua.c*/ #include #include #define TRUE 1 #define FALSE 0#define BUFSIZE 4096 int in_bufferBUFSIZE; int out_bufferBUFSIZE; st

23、atic int gamma(int *input, int *output);static void dataIO(void); void main() int *input = &in_buffer0; int *output = &out_buffer0; puts(the 3rd experiment startedn); while(TRUE) dataIO(); puts(processingn); gamma(input, output); dataIO(); static int gamma(int *input, int *output) int i; int LUT256=

24、0,0,0,0,4,4,8,12,16,20,24,32,40,45,53,61,65,69,73,77,81,81,85,85,89,89,93, 93,97,97,101,101,101,105,105,109,109,113,113,113,117,117,117,121,121, 121,125,125,125,125,125,130,130,130,134,134,134,134,134,138,138,138,138, 138,142,142,142,142,142,146,146,146,146,146,150,150,150,150,150,150,154, 154,154,1

25、54,154,158,158,158,162,162,162,162,162,166,166,166,166,170,170, 170,170,174,174,174,174,174,178,178,178,178,182,182,182,182,186,186,186, 186,190,190,190,190,194,194,194,194,198,198,198,198,198,198,202,202,202, 202,202,206,206,206,206,206,206,206,210,210,210,210,210,210,210,210,215, 215,215,215,215,2

26、15,215,219,219,219,219,219,219,219,219,219,223,223,223, 223,223,223,223,223,223,227,227,227,227,227,227,227,227,227,231,231,231, 231,231,231,231,231,231,231,231,231,235,235,235,235,235,235,235,235,235, 235,239,239,239,239,239,239,239,239,239,239,243,243,243,243,243,243,243, 243,243,243,243,243,247,2

27、47,247,247,247,247,247,247,247,247,247,247,251, 251,251,251,251,251,251,251,251,251,255,255,255,255; for(i=0;iBUFSIZE;i+) outputi=LUTinputi; return(TRUE); static void dataIO() return; ./*链接命令文件 junhenghua.cmd*/ (与gammajiaozheng.cmd相同)2运行程序,调入数据tire.dat,画出原图像及经过直方图均衡化的图像。 3将均衡化后的图像数据保存为:junhengtire.dat (16位有符号整数格式)

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

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