推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx

上传人:b****5 文档编号:17022153 上传时间:2022-11-27 格式:DOCX 页数:23 大小:111.75KB
下载 相关 举报
推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx_第1页
第1页 / 共23页
推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx_第2页
第2页 / 共23页
推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx_第3页
第3页 / 共23页
推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx_第4页
第4页 / 共23页
推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx

《推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx》由会员分享,可在线阅读,更多相关《推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx(23页珍藏版)》请在冰豆网上搜索。

推荐下载基于DSP的快速傅立叶变换FFT的实现汇编语言Word下载.docx

第三步功率谱的计算

X(k)是由实部

和虚部

组成的复数:

;

计算功率谱时只需将FFT变换好的数据,按照实部

求它们的平方和,然后对平方和进行开平方运算。

第四步输出FFT结果.

三、实验内容与步骤

1。

本实验要求使用FFT变换求一个时域信号的频域特性,并从这个频域特性求出该信号的频率值,然后使用DSP汇编语言对FFT的DSP编程.

2。

将计算机与DES-320PP—A教学实验系统连接好,打开实验箱电源,然后运行CCS软件。

2.新建fft。

pjt工程文件,并输入FFT的DSP程序及命令链接文件。

如下:

**************************************

*Radix—2,DIT,Real—inputFFTProgram*

*fft.asm*

*************************************

mmregs

.globalreset,start,sav_sin,sav_idx,sav_grp

.defstart,_c_int00

.data

DATA。

space1024

.copy"

fft.inc"

N.set128

LOGN.set7

sav_grp。

usect"

tempv"

,3

sav_sin。

setsav_grp+1

sav_idx.setsav_grp+2

OUTPUT.usect”OUTPUT”,256

BOS.usect”stack”,0Fh

TOS。

stack"

,1

copy"

twiddle1.inc”

copy”twiddle2。

inc"

text

_c_int00

bstart

nop

start:

STM#TOS,SP

LD#0,DP

SSBXFRCT

STM#2*N,BK

STM#INPUT,AR3

STM#DATA,AR7

MVMMAR7,AR2

STM#N-1,BRC

RPTBDplend—1

STM#N,AR0

LDMAR3,A

READA*AR2+

ADD#1,A

READA*AR2+

MAR*AR3+0B

plend:

STM#0,BK

LD#-1,ASM

STM#DATA+2,AR3

STM#N/2—1,BRC

LD*AR2,16,A

RPTBDs1end—1

STM#3,AR0

SUB*AR3,16,A,B

ADD*AR3,16,A

STHA,ASM,*AR2+

STB,*AR3+

||LD*AR2,A

SUB*AR3,16,A,B

ADD*AR3,16,A

STHA,ASM,*AR2+0

STB,*AR3+0%

||LD*AR2,A

s1end:

MVMMAR7,AR2

STM#DATA+4,AR3

STM#N/4-1,BRC

LD*AR2,16,A

RPTBDs2end-1

STM#5,AR0

SUB*AR3,16,A,B

ADD*AR3,16,A

STB,*AR3+

||LD*AR2,A

SUB*AR3,16,A,B

ADD*AR3,16,A

STHA,ASM,*AR2+

STHB,ASM,*AR3+

MAR*AR3+

ADD*AR2,*AR3,A

SUB*AR2,*AR3-,B

STHA,ASM,*AR2+

SUB*AR2,*AR3,A

STB,*AR3

||LD*AR3+,B

STA,*AR2

||ADD*AR2+0%,A

STA,*AR3+0%

||LD*AR2,A

s2end:

STM#512,BK

ST#128,@sav_sin

STM#128,AR0

STM#TWI2,AR4

STM#TWI1,AR5

STM#-3+LOGN,AR7

ST#-1+N/8,@sav_grp

STM#3,AR6

ST#8,@sav_idx

stage:

STM#DATA,AR2

LD@sav_idx,A

ADD*(AR2),A

STLMA,AR3

MVDK@sav_grp,AR1

group:

MVMDAR6,BRC

RPTBDbend—1

LD*AR4,T

MPY*AR3+,A

MACR*AR5+0%,*AR3—,A

ADD*AR2,16,A,B

STB,*AR2

||SUB*AR2+,B

STB,*AR3

||MPY*AR3+,A

MASR*AR3,*AR4+0%,A

ADD*AR2,16,A,B

STB,*AR3+

||SUB*AR2,B

LD*AR4,T

STB,*AR2+

||MPY*AR3+,A

bend:

PSHMAR0

MVDKsav_idx,AR0

MAR*AR2+0

MAR*AR3+0

BANZDgroup,*AR1-

POPMAR0

MAR*AR3-

LDsav_idx,A

SUB#1,A,B

STLMB,AR6

STLA,1,sav_idx

LDsav_grp,A

STLA,ASM,sav_grp

LDsav_sin,A

STLA,ASM,sav_sin

BANZDstage,*AR7—

MVDKsav_sin,AR0

STM#DATA+2,AR2

STM#DATA+2*N-2,AR3

STM#DATA+2*N+3,AR7

STM#DATA+4*N-1,AR6

STM#—2+N/2,BRC

RPTBDp3end—1

STM#3,AR0

ADD*AR2,*AR3,A

SUB*AR2,*AR3,B

STHA,ASM,*AR3+

STHB,ASM,*AR6-

NEGB

STHB,ASM,*AR7-

ADD*AR2,*AR3,A

SUB*AR2,*AR3,B

STHA,ASM,*AR3-0

STHB,ASM,*AR6-

STHB,ASM,*AR7+0

p3end:

ST#0,*AR6-

ST#0,*AR6

p3test:

STM#DATA,AR2

STM#DATA+1,AR4

STM#DATA+2*N+1,AR5

ADD*AR2,*AR4,A

SUB*AR2,*AR4,B

STHA,ASM,*AR2+

ST#0,*AR2

MVDD*AR2+,*AR5-

STHB,ASM,*AR5

STM#DATA+4*N-1,AR3

STM#TWI2+512/N,AR4

STM#TWI1+512/N,AR5

STM#N—2,BRC

RPTBDp4end-1

STM#512/N,AR0

LD*AR2+,16,A

MACR*AR4,*AR2,A

MASR*AR5,*AR3—,A

LD*AR3+,16,B

MASR*AR5+0%,*AR2—,B

MASR*AR4+0%,*AR3,B

STHB,ASM,*AR2+

STHB,ASM,*AR3—

STHA,ASM,*AR3—

p4end:

power:

STM#OUTPUT,AR3;

AR3指向输出缓冲地址

STM#255,BRC;

块循环计数器设置为255

RPTBDpower_end—1;

带延迟方式的重复执行指令

STM#DATA,AR2;

AR2指向AR[0]

SQUR*AR2+,A;

A:

=AR2

SQURA*AR2+,A;

A:

=AR2+AI2

STHA,7,*AR3;

将A中的数据存入输出缓冲中,

ANDM#7FFFH,*AR3+;

避免输出数据过大在虚拟示波器中显示错误

power_end:

Bpower_end

.end

命令链接文件:

/*fft.cmd*/

fft.obj

-mfft。

map

-offt.out

MEMORY

PAGE0:

ROM(RIX):

origin=8000h,length=1000h

ROM1:

origin=9000h,length=0200h

PAGE1:

B2A(RW):

origin=0060h,length=10h

B2B(RW):

origin=0070h,length=10h

INTRAM1(RW):

origin=0400h,length=0200h

INTRAM2(RW):

origin=0800h,length=0200h

INTRAM3(RW):

origin=1400h,length=0800h

OTHER:

origin=2000h,length=800h

}

SECTIONS

.text:

{}〉ROMPAGE0

INPUT:

{}〉ROM1PAGE0

data:

{}〉INTRAM3PAGE1

twiddle1:

{}>

INTRAM1PAGE1

twiddle2:

{}>

INTRAM2PAGE1

tempv:

B2APAGE1

stack:

{}〉B2BPAGE1

OUTPUT:

{}>

OTHERPAGE1

stack:

{}〉OTHERPAGE1

三角因子:

TWI1:

sect"

twiddle1"

int0,201,402,603

.int804,1005,1206,1407

.int1607,1808,2009,2210

.int2410,2611,2811,3011

.int3211,3411,3611,3811

.int4011,4210,4409,4609

.int4808,5006,5205,5403

.int5602,5800,5997,6195

int6392,6589,6786,6983

int7179,7375,7571,7766

int7961,8156,8351,8545

.int8739,8933,9126,9319

int9512,9704,9896,10087

.int10278,10469,10659,10849

.int11039,11228,11416,11605

.int11793,11980,12167,12353

int12539,12725,12910,13094

int13278,13462,13645,13828

.int14010,14191,14372,14552

.int14732,14912,15090,15269

.int15446,15623,15800,15976

.int16151,16325,16499,16673

.int16846,17018,17189,17360

.int17530,17700,17869,18037

int18204,18371,18537,18703

.int18868,19032,19195,19358

.int19519,19681,19841,20001

int20159,20318,20475,20631

.int20787,20942,21097,21250

int21403,21555,21706,21856

int22005,22154,22301,22448

int22594,22740,22884,23027

int23170,23312,23453,23593

.int23732,23870,24007,24144

int24279,24414,24547,24680

int24812,24943,25073,25201

.int25330,25457,25583,25708

int25832,25955,26077,26199

.int26319,26438,26557,26674

int26790,26905,27020,27133

int27245,27356,27466,27576

.int27684,27791,27897,28002

.int28106,28208,28310,28411

.int28511,28609,28707,28803

.int28898,28993,29086,29178

int29269,29359,29447,29535

.int29621,29707,29791,29874

int29956,30037,30117,30196

int30273,30350,30425,30499

int30572,30644,30714,30784

int30852,30919,30985,31050

int31114,31176,31237,31298

.int31357,31414,31471,31526

int31581,31634,31685,31736

.int31785,31834,31881,31927

int31971,32015,32057,32098

.int32138,32176,32214,32250

.int32285,32319,32351,32383

.int32413,32442,32469,32496

int32521,32545,32568,32589

int32610,32629,32647,32663

int32679,32693,32706,32718

.int32728,32737,32745,32752

int32758,32762,32765,32767

int32767,32767,32765,32762

.int32758,32752,32745,32737

int32728,32718,32706,32693

.int32679,32663,32647,32629

int32610,32589,32568,32545

.int32521,32496,32469,32442

.int32413,32383,32351,32319

.int32285,32250,32214,32176

int32138,32098,32057,32015

int31971,31927,31881,31834

.int31785,31736,31685,31634

.int31581,31526,31471,31414

.int31357,31298,31237,31176

.int31114,31050,30985,30919

.int30852,30784,30714,30644

.int30572,30499,30425,30350

.int30273,30196,30117,30037

int29956,29874,29791,29707

int29621,29535,29447,29359

.int29269,29178,29086,28993

int28898,28803,28707,28609

int28511,28411,28310,28208

.int28106,28002,27897,27791

int27684,27576,27466,27356

.int27245,27133,27020,26905

int26790,26674,26557,26438

int26319,26199,26077,25955

int25832,25708,25583,25457

int25330,25201,25073,24943

.int24812,24680,24547,24414

.int24279,24144,24007,23870

int23732,23593,23453,23312

int23170,23027,22884,22740

int22594,22448,22301,22154

int22005,21856,21706,21555

int21403,21250,21097,20942

int20787,20631,20475,20318

.int20159,20001,19841,19681

.int19519,19358,19195,19032

.int18868,18703,18537,18371

int18204,18037,17869,17700

.int17530,17360,17189,17018

.int16846,16673,16499,16325

int16151,15976,15800,15623

int15446,15269,15090,14912

int14732,14552,14372,14191

int14010,13828,13645,13462

int13278,13094,12910,12725

.int12539,12353,12167,11980

.int11793,11605,11416,11228

int11039,10849,10659,10469

int10278,10087,9896,9704

.int9512,9319,9126,8933

.int8739,8545,8351,8156

int7961,7766,7571,7375

.int7179,6983,6786,6589

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

当前位置:首页 > 小学教育 > 数学

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

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