close

Вход

Забыли?

вход по аккаунту

?

Глинник

код для вставкиСкачать
 Учреждение образования
Белорусский государственный университет информатики и радиоэлектроники
Кафедра ЭВС
Отчет по лабораторной работе №2
по курсу "ППОВСРВ"
Программирование БПФ с прореживанием по частоте
Выполнил: Проверил: ст. гр. 510701 Клюс В.Б Глинник Г.В.
Минск 2009
1 Цель работы:
Разработка программы БПФ для алгоритма с замещением данных и прореживанием по времени на базе лабораторного макета TMS320C2x DSR Starter Kit(DSK) и ее отладка на лабораторном макете
Исходные данные: Исходные данные: прореживание по частоте, инверсный порядок данных, число точек БПФ=256
2. Код программы
.mmregs
.def_c_int00
N .set 256
XFFT .set 2000h
M .set 7
Cnt1 .set128*2-1
N_Gar .set 0
.data
HOLDN .word 0
QUARTN .word 0
N1 .word 0
N2 .word 0
J .word 0
IADDR .word 0
SINTBL .word 0
SIN .word 0
COS .word 0
I .word 0
IE .word 0
INV .word 0
c_n .word 7FFFh
s_n .word 0
c_k .word 7FFFh
s_k .word 0
c_1 .word 7FDAh
s_1 .word 0648h
c_temp .word 0
PR .word 0h k .word 5
.text
impulse: ld #7fffh,16,a
stl a,*ar1+
stl a,*ar1-
rpt 128-1
sth a,*ar1-
sth a,*(XFFT)
ret
const: m3: ld #7FFFh,a
stl a,*ar1+
mar *ar1+
banzm3,*ar3-
ret
sinusoida:
st#7fffh,*(c_n)
st#0h,*(s_n)
st#7fffh,*(c_k)
st#0h,*(s_k)
m2:
ld*(c_k),16,A
mpya*(c_1)
ld*(s_k),16,A
masa*(s_1)
sthB,*(c_temp)
ld*(s_k),16,A
mpya*(c_1)
ld*(c_k),16,A
maca*(s_1)
sthB,*(s_k)
ld*(c_temp),B
stlB,*(c_k)
banzm2,*ar2-
m1:ld*(c_n),16,A
sthA,*ar1+
st #0,*ar1+ mpya*(c_k)
ld*(s_n),16,A
;sthA,*ar1+
;st #0,*ar1+
masa*(s_k)
sthB,*(c_temp)
ld*(s_n),16,A
mpya*(c_k)
ld*(c_n),16,A
maca*(s_k)
sthB,*(s_n)
ld*(c_temp),B
stlB,*(c_n)
banzm1,*ar3-
ret
_c_int00: ld #HOLDN,dp
stm#XFFT,SP
ssbxsxm
ssbxfrct
ssbxovm
stm#XFFT,ar1
stm#N_Gar,ar2
stm#Cnt1,ar3
;call#sinusoida
;call const
call impulse
ssbx sxm ssbx frct rsbx ovm
nop
call FFT
nop nop FFT stl a,INV
st #1,IE
ld #N,a
stl a,HOLDN
stl a,N2
stl a,-2,QUARTN
st #XFFT,IADDR stm #M,AR1
IELOOP ld N2,a
sth a,J
st #sint,SINTBL
stl a,-1,N2
mvdm N2,AR2
stl a,N1
mar *ar2- JLOOP ld J,1,a
stl a,I
ld SINTBL,a
reada SIN
add QUARTN,a
reada COS
ld INV,a
bcd ILOOP,aeq
ld SIN,b
neg b
stl b,SIN
ILOOP mvdm I,AR0
mvdm IADDR,AR3
nop
mar *AR3+0
mvdm N1,AR0
nop
BTRFLY ld *AR3+0, 15, a ;A = 1/2PR; add *ar3-0,15,a ; A = 1/2 (PR+QR) sth a,*ar3+0 ; = 1/2 PR sub *ar3,16,a ; A = XR = 1/2 (PR-QR) sth a,*ar3+ ; QR = a = XR ld *ar3-0,15,a ; A = 1/2 QI add *ar3,15,a ; A = 1/2 (PI+QI) sth a,*ar3+0 ; = 1/2 PI sub *ar3,16,a ; A = XI = 1/2 (PI-QI) sth a,*ar3- ; QI = a = XI ld *ar3+,T ; T = QR = 1/2 (PR-QR) mpy COS, a ; A = 1/2 (PR-QR)*cos ld *ar3-,T ; T = QI = 1/2 (PI-QI) mac SIN, a ; A =1/2[(PR-QR)cos+(PI-QI)sin] mpy COS, b ; B = 1/2 (PI-QI)*cos ld *ar3,T ; T = QR = 1/2 (PR-QR) sth a,*ar3+ ; = 1/2 QR mas SIN, b ; B =1/2[(PI-QI)cos-(PR-QR)sin] sth b, *AR3 ;1/2 QI ; ;---------------------------------------; ld I,a
add N1,1,a
stl a,I
sub HOLDN,1,a
bc ILOOP,alt
ld SINTBL,a
add IE,a
stl a,SINTBL
banzd JLOOP,*AR2-
addm #1,J
ld IE,1, a
stl a,IE
banz IELOOP,*AR1-
DRC2 stm #N-1,AR1
mvdm IADDR,AR3
mvdm IADDR, AR2
LOOPD mvmm AR3,AR0
cmpr LT,AR2
bcd NODRC,NTC
mvdm HOLDN,AR0
ld *AR2,16,a
or *AR3,a
stl a,*AR2+
sth a,*AR3+
ld *AR2,16,a
or *AR3,a
stl a,*AR2-
sth a,*AR3-
NODRC mar *AR2+
banzd LOOPD,*AR1-
mar *AR3+0B
mar *AR2+
stm #N-1,BRC
mvdm IADDR,AR2
rptbd LOOPM-1
ld #1,b
nop
squr *AR2+,a
squra *AR2+,a
max b
LOOPM
exp b
retd
ldm T,a
nop
.align 200h
.include "sin256.TAB" 3.Результаты работы
Рисунок1-косинус
Рисунок2-постоянная
Рисунок3-единичный импульс
Вывод:
На практике изучили алгоритмы БПФ с прореживанием по времени написали программу и проверили ее на разный типах сигналов.
2
Автор
nlarysa
Документ
Категория
Без категории
Просмотров
53
Размер файла
57 Кб
Теги
глинник
1/--страниц
Пожаловаться на содержимое документа