close

Вход

Забыли?

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

?

klus4

код для вставки
 Учреждение образования
Белорусский государственный университет информатики и радиоэлектроники
Кафедра ЭВС
Отчет по лабораторной работе №4
по курсу "ППОВСРВ"
Измерение амплитудно-частотной характеристики (АЧХ) Выполнил: Проверил: ст. гр. 510701 Клюс В.Б Минск 2009
1 Цель работы:
Разработка алгоритма и написание программы для измерения АЧХ на базе лабораторного макета TMS320C2x DSR Starter Kit(DSK) и ее отладка на лабораторном макете
Исходные данные: Исходные данные:Фильтр ВЧ, подавление 39ДБ
2. Код программы
.mmregs
.def_c_int00
buff .set 2000h
buff5 .set 6000h
buff2 .set 3000h
buff3 .set 4000h
buff4 .set 5000h
Cnt1 .set256*2-1+2
Cnt2 .set 256
N_Gar .set 0
gar .set 125
XFFT .set 5200h
M .set 7
N .set 256
a00 .set 5962
a01 .set -9984
a02 .set 5962
b00 .set 32768
b01 .set 16611
b02 .set 5751
a10 .set 16215
a11 .set -11968
a12 .set 16215
b10 .set 32768
b11 .set 10540
b12 .set 22685
.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 7FDBh
;s_1 .word 0648h
c_1 .word 7FFFh
s_1 .word 0324h
c_temp .word 0
temp2 .word 0
temp3 .word 0
temp .word 0
x_n_1 .word 0
x_n_2 .word 0
ng .word 0
k .word 0
E .word 0, 0
.text
FFT: stl a,INV
ld #N,a
stl #a,holdn
stl a,HOLDN
stl a,-2,QUARTN
stl a,-1,IE
st #1,N1 sm #XFFT,IADDR
DRC2 stm #N-1,AR1
mvdm IADDR,AR2
mvdm AR2, AR3
LOOPD mvmm AR3,AR0
cmpr LT,AR2
bcd NODRC,NTC
mvdm HOLDN,AR0
dld *AR2,a
dld *AR3,b
dst A, *AR3
dst B, *AR2
mar *AR2+
mar *AR2+
mar *AR3+0B
banz LOOPD, *AR1-
stm #M, AR1
IELOOP ld #0,a
stl a,J
st #sint,SINTBL
ld N1, a
stl a,N2
stl a, 1, N1
mvdm N2,AR2
nop
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
mar *AR3+0 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-
stm #N-1,brc
mvdm IADDR, AR2
rptbd LOOPM - 1
ld #1,b
nop
squr*AR2+, d
squrd *AR2,d
max b
LOOPM
exp b
retd
ldm T,a
nop
Sin: ;st#7fffh,*(c_n)
;st#0h,*(s_n)
st#7fffh,*(c_k)
st#0h,*(s_k)
xor a,a
xor b,b
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
sth a,*(temp2)
sfta a,-7
add *ar1,16,a sthA,*ar1+ ;st #0,*ar1+
ld *(temp2),16,a
mpya*(c_k)
ld*(s_n),16,A
sth a,*(temp3)
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 #0,dp
stm#buff,SP
stm #gar,ar7
stm #buff,ar1
stm #520,ar2
l1: st #0,*ar1+
banz l1,*ar2-
m6:
ld #0,dp
st#0h,*(E)
ssbxsxm
ssbxfrct
ssbxovm
stm#buff,ar1
stm#Cnt1,ar3
mvdm*(ng),ar2
call#Sin
ld *(temp3),b
ld *(temp2),a
stl a,*(c_n)
stl b,*(s_n)
;stl a,*(c_k)
;stl b,*(s_k)
ADDM #1,*(ng)
banzm6,*ar7-
rsbx OVM
orm #1,PMST
stm#512,ar3
stm#buff-1,ar1
ld *ar1,16,a
ld #0,a
sth a,*ar1-
stm#buff2-2,ar4
m3:
ld *ar1+,16,a
stm #a02,T
MPYA B
stm #a01,T
ld *ar1+,16,a
MACAR T,B
stm #a00,T
ld *ar1,16,a
MACAR T,B
sth B,*(temp)
MAR *ar1-
ld *ar4+,16,a
stm #b02,T
MASAR T,B
ld *ar4+,16,a
stm #b01,T
MASAR T,B
sth B,*ar4-
banzm3,*ar3-
stm#511,ar3
stm#buff2-2,ar4
stm#buff3-2,ar5
m4:
ld *ar4+,16,a
stm #a12,T
MPYA B
stm #a11,T
ld *ar4+,16,a
MACAR T,B
stm #a10,T
ld *ar4,16,a
MACAR T,B
sth B,*(temp)
MAR *ar4-
ld *ar5+,16,a
stm #b12,T
MASAR T,B
ld *ar5+,16,a
stm #b11,T
MASAR T,B
m5:sth B,*ar5-
banzm4,*ar3-
stm #buff3,ar1
stm #511,ar2
stm #buff4,ar3
l2: ld *ar1+,a
stl a,*ar3+
st #0,*ar3+
banz l2,*ar2-
ssbx sxm ssbx frct rsbx ovm
;nop
;andm #253,PMST ;nop xor a,a
ld #HOLDN,dp
call FFT
stm #XFFT,ar1
stm #buff5,ar3
stm #255,ar2
ach: ld *ar1+,16,a
squr a,b
ld *ar1+,16,a
squr a,a
add a,b
dst b,*ar3+
banzach,*ar2- nop nop .align 200h
.include "sin256.TAB"
3.Результаты работы
Рисунок1-АЧХ
Вывод:
На практике изучили алгоритмы измерения АЧХ и написали программу, измеряющую АЧХ, как модуль от преобразования Фурье.
2
Автор
nlarysa
Документ
Категория
Методические пособия
Просмотров
51
Размер файла
50 Кб
Теги
klus
1/--страниц
Пожаловаться на содержимое документа