版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
... .. .DSP系统课程设计调制解调器系统设计目 录引言-1-一、设计目的和任务1二、设计内容与要求2三、设计方案-23-2-3.2.1.调制-4-.解调-4-3.3、硬件原理图-6-四、系统实现-4.1、硬件部分-12-12-4.2、软件部分-12-、调制程序-12-、解调程序-15-4.3、结语-21-
五、心得体会-22-引言FSK(Frequency-shiftkeying):频移键控频移键控是利用载波的频率变化来传递数字信息。它是利用基带数字信号离散取值特点去键控载波频率以传递信息的一种数字调制技术。是信息传输中使用得较早的一种调制方式 ,的主要优点是:实现起来较容易,抗噪声与抗衰减的性能较好。在中低速数据传输中得到了广泛的应用。最常见的是用两个频率承载二进制10FSK2FSK控(2-FSK)f1f21010去控制两个独立的振荡源交替输出。技术上的FSK有两个分类,非相干和相干的FSK。在非相干的FSK,瞬时频率之间的转移是两个分立的频率。在另一方面,在相干频移键控或二进制的 FSK,是没有间断期在出信号。在数字化时代,电脑通信在数据线路( 线、网络电缆、光纤或者无线媒介)上进行传输,就是用FSK调制信号进行的,即把二进制数据转换成FSK信号传输,反过来又将接收的FSK信号解调成二进制数据,并将其转换为用高,低电平所表示的二进制语言,这是计算机能够直接识别的语言。DSP芯片或者通用CPU的硬件平台,而尽可能多的用软件来实现通信功能,是现代通信领域广泛使用的方法。随着DSP芯片性价比的提高,其在通信、自动控制、仪器仪表等许多领域的应用也越来越广泛。一、设计目的和任务《DSPDSPDSPDSPProtel99、CCS2.22FSK真,分析仿真结果。.二、设计内容与要求绘制具备AD功能的DSPDSP的2FSK2FSK的DSP程序,并给出相应的仿真结果。了解和熟悉DSP综合试验箱的结构原理和设置;存储器、逻辑控制等模块的原理和配置。开发工具熟悉DSP开发系统的连接;进一步熟悉CCS2.2开发环境的使用方法。3.DSP结构进一步熟悉DSP的硬件构造,特别是DSP4.DSP最小系统设计绘制DSP最小系统电路图:外围存储器与ADC5.2FSK调制与解调理解2FSK调制与解调的原理,设计2FSK调制与解调的方案,给出具体的实现思路。6.FIR滤波器计算FIR实现所需的参数。7.FIR滤波器实现编写FIR滤波器实现的DSP程序。8.2FSK调制与解调实现给出2FSK调制与解调实现流程图,编写相关DSP实现程序。9.仿真验证2FSK调制与解调的DSP程序,给出相应的仿真结果。10.完成课程设计报告。三、设计方案、系统整体的结构图图.1系统整体结构图. .. .2FSK工作原理f1f之间变化。二进制频移信号可以看成两个不同载波的二进制振幅键控信号的叠加。若二进制2基带信号的符号1对应于载波频率f1达式:
,符号0对应于载波频率f2
,则二进制频移键控信号的时域表S2FSK
[an
g(tnTb
)]cos(
t)[a1 a
g(tnTb
)]cos(
t)(1)2,,,,,
发送概率P
g(t)
其他
an 发送概率1P
0tT 1 1 2 2 nbn是a 的反码,T为码元持续时间,通常情况下,g(t)为单个矩形脉冲。nb二进制频移键控(2FSK)是数字通信中常用的一种调制方式,其调制与解调的方法有很多种。采的复杂程度,提高了系统的灵活性,能够满足二进制频移键控各种传输协议的要求。一个简易的2FSK工作原理如图2所示。在发送方,输入的基带数据信号经过调制和发送带通滤波器输入数字序列输出数字序列输入数字序列输出数字序列发噪声接解调器送收低带带通调制器 通信道通乘法器滤滤滤波波波器器器延时K个采样点、2FSK调制
图2.2FSK系统工作原理图2FSK调制就是把输人数字序列变成适合于信道传输的变频正弦波,所以2FSK的DSP实现关键就是产生正弦或余弦波形。产生正弦波的方法有差分迭代法、泰勒级数展开法、查表法等多种方法。本文中调制采用查表法产生正弦波。调制算法2FSK调制采用查表法,可以实现较好的实时性,特别适用于通信载波的生成。在DSP的程序存储空间,使用Q15定点数格式在[0,2π]上以2π/N的相位间隔固化N点正弦值,以供查表(这些值可由MATLAB软件首先计算好),在此取N=12。这样对于F和F的取样间隔分别为:0 10N
/Fs11/19, 011NF/Fs13/19,发送数”时 (2)1使用DSP定时器T0,用来实现对数据解调DAC输出速率的控制。这样,如要实现12Kbps的数传输速率,需要将DSP定时器T0的溢出率设置为192KHz。关中断设置中断程序入口地址关中断设置中断程序入口地址初始化定时器和IMR寄存器接收要发送的数据查找表的首地址开中断N延时等待(AR7=0?)Y图关中断本文使用查表法提供2FSK调制所需要的两路正弦sin0_table和"1"是发送sin11主程序流程如右图3所示、2FSK解调
图3.调制主程序流程DSPFSK解调算法针对小型通信系统,可以采用一种算法简单、占用存储空间小的2FSK本文即采用的这种实时性较高的2FSK算法的基本思想是已调信号和它的的符号判断发送信号的值,从而实现信号的解调。算法原理图如下图4所示。输入输入信号放大乘法器V输出判决Y(n)样点图4.2FSK解调算法原理图S(nkS(nk)k要小S(nS(nk是属于同一个二进制码元的采样值。S(nS(nkh(n)V(n)S(n)S(nk)A2)(nk]A2
(3) ))]2knh(n的截止频率设为12KHzMatlab0.22079,通过该低通滤波器后得到:A2Un
0 20
ks),”() 2
s) 2 ————————(4)A cosFkT),”2 1 sk的选择是设计解调器的关键,应使差值:d(k)kT)kT)|0 s 1 s ———————(5)以得到较好的区分度。经过低通滤波后的数据经过判决算法后,可以得到最终所要的解调数。S(n)DEC_NUM_DONE==1YNN|LPFOUT|-DATA_THD>0?YNLPFOUT>0?YDEC_DATA_CURR=0DEC_DATA_CURR=1DEC_NUM++YNS(n)DEC_NUM_DONE==1YNN|LPFOUT|-DATA_THD>0?YNLPFOUT>0?YDEC_DATA_CURR=0DEC_DATA_CURR=1DEC_NUM++YNDEC_NUM=2YNDEC_DATA_CURR==DEC_DATA_BEYDEC_NUM_X++DEC_NUM=1存储DEC_DATA_CURRDEC_NUM_X==10?NY返回LPFOUT——滤波器输出DATA_THD——的阈值DEC_DATA_CURR——DEC_DATA_BE——前一次采样点判决值DEC_NUM——判决用计数器DEC_NUM_X——周期计数器DEC_DATA_BE=DEDEC_NUM_X=0DEC_NUM=0C_DATA_CURRDEC_NUM_DONE=1DEC_NUM_DONE=0当前采样点判决前一次采样点判决值,DEC_NUMDEC_DATA_BE=DEDEC_NUM_X=0DEC_NUM=0C_DATA_CURRDEC_NUM_DONE=1DEC_NUM_DONE=0图5.判决算法流程图、硬件原理图音频接口原理图3.3GND3.3GNDGNDR4547.5KR4647.5KC110.1uFC120.1uFAV3.311151814U3HPGNDAGNDBVDDHPVDDAVDDDVDDDGND2728C100.1uFVMIN16C130.1uFC14J112345C1519LLIN 20RLINEINLLINEINXTOCLKOUTXTAL1210uFC16220uF910223.3HPOUTGNDLHPOUTRHPOUT220uFMODECSSCLKSDIN21 BFSX12423BCLKX1BDX1BFSX1BCLKX1BDX1J212345C17R14R1310K1718MICBIASMICIN1.0u/16VLOUT12ROUT13MACINGNDR4710KC5847p/50LOUTROUTTLV320AIC23BCLKDINLRCINDOUTLRCOUT34567BCLKX0BDX0BCLKX0BDX04.99KBFSX0BDR0BFSR0BFSX0BDR0BFSR0GND3.33.3BEAD1AV3.3L650C910GNDR48C594.99KR48C594.99K1.0u/16VJ612345R494.99KC6047p/50LLINGNDMACINR50C61GNDRLINGND4.99K1.0u/16VR514.99KC6247p/50XTAL1X116.38MHzEXTAL1C1820pFGNDR44C57R44C57GNDLOUTJ312345100K1.0u/16VGNDR43C56GNDROUTMACIN
100K 10u/166.音频接口图
GND此部分为整个系统提供音频信号的采集输入。由TLV320AIC23单片机进行模拟信号采集处理,提供三个采集接口和一个输出接口。电源原理图
1
N
2 G1
+
+
+
7.电源5V3.3V1.8V并设置了地线。♣寄存器原理图012345 1DDDDDDDDDDDDDDDD
2GN 7891GF
4
62
1
5
73 VLLI1 u DDDDDDDDDD0
2345
CCV
DDDDD
CCV
CCV
01234567
SSVSSV
NDGD012345678911111111
EEEAAAAAAAAAAAAAAAAAA
CWO123458102222222434
614AAAAAAAAAAAAAAA567
EEDAAA
CWR___
AMM0123
XXEEE45
TAARRDDECATAD6ND DDDDDDDDDDDDDDDN
6G78911UFU3 u
4
62
1
5
73 VLLI
0123
456789
0123450 DDDDDDDDDDDDDDDDCCV
33
CCV
012345
SSVSSV
NDGD0123456789111111 E E EAAAAAAAAAAAAAAAA C W O1A444
7
5
12
854012
2P 64D 4C
EW
DAR 5AAAAAAAAAAAAAAAEC_GORP
_ M M 1RPGA A R RRPGD D D1E E D C W R PH_ M M DHEL A A AEL FDMM01234567DDDDDDDD
A 4RD FR12UD UN
3
6
8
3 7
VTSGF2 C 8CCV8
DDDDDDDDDV
E E OC WOSSV
DNG012345278A123456789AAAAAAAAA01
8
6
41
20
11
45116934AAAAAAAAAAAAAAA5678AAAA____11
5.51_A_EXE1 1 50. .50A1A_XE
XXXEEEE图8.寄存器原理图外部存储器,用于接收存储数据。♣DSP原理图3.3 1.82036351
25421826119651U4
C25C260.1uF0.1uF
C270.1uF
C280.1uF
C290.1uFPOWER
3.3
JP11JP112345678910111213141516171819202122232425262728293031323334353637383940
C40C200.1uF0.1uF
C210.1uF
C220.1uF
C230.1uF
C240.1uF
DDDDDDDDDDVVVVVDDDDDGNDHD0GNDHD058HD1HD169HD3HD281HD5HD395HD7HD4120HCNTL1HD5124HBILHD6135HDS2HD76HASHPIEANHCNT9NMIHCNT6INT1INT3HR/W18BFSR0HBIL62BCLKX0BDX0HDS1127BFSR1HDS2129
DDDDDDDDDDVVVVVCCCCCC
D0 99D0
D[0_15]
GNDHP1INTMcBSPIO
HD0HD2HD4HD6HCNTL0HR/WHDS1HCSHINTHRDYINT0INT2BCLKR0BDR0BFSX0BCLKR1BDR1BFSX1XF
BCLKX1BDX1BIO
HCS HAS
HD1HD2HD3HD4HD5HD6HD7HCNTL0HCNTL1HR/WHBILHDS1HDS2HCSHAS
D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15A0A1A2A3
A[0_15]HEADER20X2 JP31 3
GND
HINTHPIEA92HRDY
HINTHPIEANHRDY
A4 A5 A6 A73.3
R17
3.3
5 7 9 11 13
GNDGND
89 TMS88 TCK87 TRST
A8A9A10A11A12A13
5A107A118A129A133.3
5.6K HEADERR20
86 TDI85 TDO84 EMU183 EMU0
A14A15A16A17A18
1011105107108
DSP_A155.6K
GND
R22R2467910K10INT0INT1
NMI63INT064INT165INT266INT36741BFSR043
NMIINT0INT1INT2INT3BCLKR0BFSR0
A19PSDSISR/WMSTRBIOSTRBREADY
10920212223242519READY
READY
R15R16181912322R22
CPLD_PSCPLD_DSCPLD_ISCPLD_RWMSTRBIOSTRB
CPLDPSCPLDDSCPLDISCPLDRWMSTRBIOSTRBBDR045BFSX0BDX059
BDR0BCLKX0BFSX0BDX0
MSC26XF 27HOLDA28IAQ 29HOLD30
R25 R2822R0R31BCLK2BFSR144
BCLKR1BFSR1
BIOMP/MC
BIO
10K10KBCLKX0
BDR147
61 3.3BDX0
BLCKX0
BDR1
IACK82BFSX0BDX0
BCLKX1BFSX154
BCLKX1
TOUT094BDR0BFSR0
BFSX0BDR0BFSR0
BFSX1BDX1
BDX1121215
BFSX1BDX1NCNCNC
CLKOUTCLKMD3CLKMD2CLKMD173
GND
R32R3310K10K3.3GND
S1SW-PB
GND461GND
U5PFIWDIMRVCC
PFORSTWDOVSS
57 DSP_RST83 GND
NCNCNCNCNCNCNCSSSSSSSSSSSSSSSSSSSSSSSS 1 2VVVVVVVVVVVV X
NC 74NC 80NC 90NC 110NC NCSRMAX706TC54
C302TAL1
C31GND22P
40070618 6 7 134557712 9 9
TMS320VC5402PGE100GND
1110.1uF
9.DSP
DSP_RSTTMS320VC5402PGE100DSP1423.3V1.8V两种,其中3.3VI/OCPUI/OFIR2FSK3.33.3SC_ADA_D[0..7]DA_D[0..7]DSC32 C33 C34 C35 C36 C370.1uF 0.1uF 0.1uF 0.1uF 0.1uF 0.134567012CC38 C390.1uF 0.1uFDDDDDDDD A_3.3________AAAAAAAADGNDKDDDDDDD325431097684162 91L1 9999999 888887773568 39C_U6A[0..15]DA[0..15]AOOOOOOOOIIIIIIII)OO)IIIIIIILY.3.3.3.3.3.3RRRRRRNLOONAD_D[1..8]AD_D[1..8] AD_CLK1AD_D82AD_D75AD_D66AD_D57AD_D48AD_D3AD_D210IOIOIOIOIOIOIOIOOOOOOOVVVVVVVV5555.......2222TTNCCCCCCVVVVVVCCVVIOIOIOIOIOIOIOIO757271A070A169A268A1467A1364PROG_CEPROG_CEIOIOIOIOIOIOIOIO63D061D160D258D357D456D555D654D7D[0..7]AD_CSAD_D1AD_CS141617192021D[0..7]IOIOIOIOIOIOIOIO4CPLD_JTAG_TDIINT1INT0READYIOSTRBLED0LED1INT1INT0222324252728READY29IOSTRB30IOIOIOIOIOIOIOIO/TDIIO/TDOIO/TCKIO/TMS7CPLD_JTAG_TDODRAM_WE62CPLD_JTAG_TCK15CPLD_JTAG_TMSDRAM_RD2CnKLGR2LTTIOIOIOIOIOIOIOIOIO5250494847A15A3A4NN OOOOOOOOGO TEC1EII IIIIIIIIIT UDD DDDDDDDDDDNNGGNNNNNNNNNNGGGGGGGGGGPII INOOOOOOOO46DATA_CE45EX_A1544EX_A16DATA_CE3.3GNDIIIIIIIIEPM3128ATC100-583 97765543218889 EE333444BSR36 R37 R38 R3910k 10K 10k 10k_HH__ 11AAGNDDDSS__LLAAXXPPLL3.3R40CCFFEE10RWR35LED1BSDD__HESSJ41LDDALED221KPLL13CPPLCCCPLD_JTAG_TCKCPLD_JTAG_TDCCPLD_JTAG_TMSCPLD_JTAG_TDILED1R341KLED0AY124CTR4210K_XHeader5X2NUEOGND3.3C DC NV GVCC4 2ADDA转换原理图
3.3
GND图10.EPM原理图5VP12 GND R11 20KHeader2
U112 1AD_CS
AD_D[1..8]AD_D[1..8]
-15V
R2GND194V 1716
CLKAN_INREFT
OE D1 D2
DA_D1DA_D2DA_D3
0.1uF
20KGND
5V REFTS D3
DA_D4
4 5VC34.7uFGND
C40.1uF
VR110k5VC60.1uF
C80.1uF
5V 2322GND 21201815C7 0.1uF
REFBREFBSAGNDAGNDVDDAVDDAVDDA
D4 7D5 8D6D7 9D8 DGND 2DGND VDDD VDDD
GND5V
DA_D5DA_D6DA_D7DA_D8
2 - V-3+ 8
N1AA1TL082C2
R310K
42 - V-3 +V+8
N1BA1TL082 GNDGND
TLC5510
DA_D4DA_D5DA_D6DA_D7DA_D8DA_D9DA_11
U2DB7DB6DB5DB4DB3DB2DB1
OUT1 1OUT2 2RFB REF VDD GND 3WR
GND5VC5
+15V
GND R95KGND
+15V
21P2Header2AD_CLKAD_CSDA_CS
AD_CLKAD_CSDA_CS
DA_D[0..7]DA_D[0..7]
DA_10
DB0 TLC7524
12 0.1uFDA_CSGND图11.数模—模数转换原理图DAAD,DSP顶层文件原理图
U_CODECU_CODEC.Sch
U_DSPU_DSP.SchU_PowerU_Power.Sch
U_EPM3128ATC100.SchU_EPM3128ATC100
BFSX1BCLKX1BDX1BCLKR0BCLKX0BDX0BFSX0BDR0BFSR0
BFSX1BCLKX1BDX1BCLKR0BLCKX0BDX0BFSX0BDR0BFSR0IOSTRBMSTRBAD_CLKAD_CLKIOSTRBMSTRBAD_CLKAD_CLKINT0INT1AD_CSAD_CSREADYIOSTRBDA_CSAD_D[1..8]DA_CSAD_D[1..8]CPLD_RWMSTRBDA_D[0..7]DA_D[0..7]CPLD_ISCPLD_PSCPLD_DSA[0..15]D[0..7]DRAM_WEDRAM_RDINT0INT1READYCPLDRWCPLDISCPLDPSCPLDDSPROG_CEFLASH_CEDATA_CEA[0_15]D[0_15]EX_A[15..18]U_memU_mem.Sch51A_PSDA[0..14] 5AD[0..15] 1APDRAM_W_DRAM_RSPDPROG_CEFLASH_CEDATA_CEEX_A[15..18]图12.顶层文件连接图PCBPCB10mil,15mil。.四、系统实现、硬件部分protelPCB如前面各图所示。、软件部分、2FSK调制程序2FSKQ15定点数格式在[0,2π]2π/NN弦值,N=12:x=0:2*pi/12:2*pi;y=32768*sin(x)结果如图:调制主程序如下:*****************************************c54init.asm*****************************************.mmregs.includec54.inc.defc54init.sect"progsys"c54init:*SWWSR:SoftWareWait-StateRegisterAddress0028h
**|15 7 | 6 | 5 | 4 | 3 |2 | 1 | 0|**| IPTR |MP/MC | OVLY | AVIS | DROM CLKOFF|SMUL|SST|**|002011111 | 0 | 1 | 0 | 0 |0 | 0 |0 |*1 0 *1 0 3|2 0*| 15 |14 12|11 9|8 6|5 3|2 0* *将中断向量表映射到2f80*| XPA | I/O | Data | Data Program | Program|*
*MP/MC=0芯片工作在微计算机方式,可以寻址片内程序存储器*IFRorIMR. .. .STM#0x7208,SWWSR ;0111001000001000*I/O空间为7个等待周期*8000h-FFFFh1*0000h-7FFFh0*8000h-FFFFh1*0000h-7FFFh0*SWCR:SoftWareWait-StateConctrolRegisterAddress002Bh**|| 0 |* *|
**|1514|13 | 12| 11 | 10 | 9 | 8| 7 | 6 |5 | 4 | 3 | 2|1 | 0|*|RES|DMAC5|DMAC4|BXINT1|BRINT1|HPINT|INT3|TINT1|DMAC0|BXINT0|BRINT0|TINT0|INT2|INT1|INT0|| | | |DMAC3|DMAC2| | |DMAC1|| | | | | | |** 00 0 0 0 0 0 0 0 00 0 0 0 0 0STM#0xFFFF,IFR*清除挂起的中断| SWSM | STM#0x0000,IMR ;关闭所有中断*0STM#0,SWCR *CLKMD*等待周期不变*(STM#1,SWCR等待周期加倍)***|15 12 | 11 | 10 3| 2 |1| 0 |* *BH|BNKCMP| EXIO||PS–DS|Reserved|HBH|* STM#0xF800,BSCR ;1111100000000000*允许修改PMST中的值*在连续的读程序或数据空间时插入1个额外的等待周期*外部存储器的空白区间为4k*ST0* *| 15 13 | 12 | 11 | 10 | 9 |
**|15 12 | 11 |10 3| 2 | 1| 0 |*| PLLMUL |PLLDIV|PLLCOUNT |PLLON/OFF|PLLNDIV| PLLSTATUS |*STM#0,CLKMDclkcon:LDMAND#0x01,ABCclkcon,ANEQSTM#0x43ff,CLKMD ;0100001111111111*利用软件对CLKMD进行加载(参考教材:P250)*PLL=4MUL=5100Mhz;PLL=3MUL=480Mhz*TCR*8 0 | *|15 12| 11 | 10 |9 6 | 5 |* | ARP | TC | C | OVA | OVB DP |* STM#0,ST0*数据页指针指向0*ST1* *|15|14 |13|12| 11 |10| 9 | 8 | 7 |
4 | 3 0|**|Revd|soft|free|PSC|TRB|TSS| TDDR|*STM#0x0010,TCR1 ;timer1 stopSTM#0x0010,TCR ;TSS=1TimerSTM#1000,TIMSTM#1000,PRD| 5 |4 0| STM#1000,TIM1* STM#1000,PRD1|BRAF|CPL|XF|HM|INTM|0|OVM|SXM|C16|定时中断周期=CLKOUT*(TDDR+1)*(PRD+1)|CMPT| ASM| RSBXINTM* STM#0x0088,IMRSTM#0x2b00,ST1 ;0010101100000000 *将全局中断使能*INTM=1将全局中断禁止 NOP*SXM=1 数据进入ALU之前进行符号位扩展 NOP*OVM=1益处控制位(参考ST1资料) RET*PMST.end*********************************************TINT:BTINT0_ISR ;Timer0* Vectors.asmNOP*********************************************NOP.includec54.incrint0:RETE.sect".vectors"NOP.ref_c_int00 ;mainprogromNOP.refTINT0_ISRNOP;.reftimer0,hpisys,usb_readxint0:RETEaligned
onlpage
boundary
;mustbe
NOPRESET: ;resetvector NOPprogrom
B_c_int00 ;branchtomain
DMAC0: RETE
NOPNOP NOPNOP NOPinterruptETandreturnfromoneNOPNOPNOP;NMI~
;enable NOPDMAC1: RETE NOPNOP;softwareinterruptssint17.space4*16sint18.spacesint19.spacesint20.spacesint21.spacesint22.spacesint23.spacesint24.space4*16
NOPint3: RETEHPINT:RETENOPNOPNOP
NOPNOPNOPsint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0:RETENOPNOPNOPint1:RETENOPNOPNOPint2: NOPNOPNOP
DMAC2:RETE NOPNOPNOPNOPxint1:RETENOPNOPNOPDMAC4:RETENOPNOPNOPDMAC5:RETENOPNOPNOP***********************************************FSK_MOD.CMD************************************************FSK_MOD.CMD***********************************************MEMORY{PAGE0:PROG: origin=0x2000,len0x0f80/*8k-128word*//*4kword*/}{progsys:load=PROG.vectors:load=VECT.data :load=DRAM.bss :load=DRAMPAGE0PAGE0PAGE1alignPAGE1}16VECT: origin=0x2f80,len=0x80/*128word*/SECTIONSPAGE1:DRAM:origin=0x3000,len=0xf80.调制仿真波形如图:、2FSK解调程序
图14.信号调制仿真波形本文采用的是实时性较高的2FSK/2判决结果。FIR析等应用中的一个基本的处理算法。与模拟滤波相比,数字滤波具有很多突出的优点,例如它可以满足滤波器对幅度和相位DSPDSPDSP字滤器,其流程可如右图所示:图15.FIR滤波器软件流程图
A/D采集一个数据数组数据依次左移一个下标新数据加入数组进行乘加运算并输出结果结果送D/A输出FIR8,0.8Matlabfreqz0.890. ..40M
200-20-40-60-800 0.1 0.2 0.3 0.4 0.5 0.6 NormalizedFrequency( rad/sample)
0.8 0.9 10edeaP
-2000-4000-6000-80000 0.1 0.2 0.3 0.4 0.5 0.6 NormalizedFrequency( rad/sample)
0.8 0.9 1图16.低通滤波器的频率特性本实验所设计滤波器经由Matlab计算出系数,如下:f=[00.80.81];m=[1100];b=fir2(7,f,m);b=b*32768;freqz(b,512,1000)滤波器程序如下:********************************************my_fir.asm*********************************************.title"my_fir.asm".mmregs.def_c_int00.bssy,1 ;yxn.usect"xn",8 h.usect"h",8 ;h;PA0.set0002H;数据输出端口;PA1.set0008H;数据输入端口.bss indata,1.bssoutdata,1.bss Dis_buff,1.datatable:.word137,6,-2635,18941,18941,-2635,6,137_c_int00:SSBXFRCT STM#xn,AR1
图17.滤波器系数STM#xn+7,AR3 STM#h+7,AR4 STM#8,BK ;循环缓冲区大小STM#-1,AR0 ;指针调整-1;LD#xn,DP ;DP指向xn;PORTRPA1,xn ;输入数据LD#y,DP ;DP指向yFIR:NOPMVKDindata,*AR3+0%RPTZA,#7MAC*AR3+0%,*AR4+0%,A;A=(AR3)*(AR4)+A,AR3=AR3+AR0,AR4=AR4+AR0;;STH A,outdata;MVDP *(outdata),NOPSTHA,y NOP;PORTWy,PA0 ;输出结果. ..RPT#7BFIR;延时跳转ST#0,*AR1+;把x(n)-x(n-7)赋始值0;PORTRPA1,*AR3+0%;新数据覆盖了最旧的数STM#h,AR1据RPT#7.endMVPD#table,*AR1+;把参数表复制到数据存储区******************************************* PAGE1:my_fir.cmd * SPRAM:org=1000H,len=1000H******************************************* DARAM:org=2000H,len=2000H}vectors.obj /*由于在源程TWLOBKmy_fir.obj "align"命令*/-omy_fir.out SECTIONS-mmy_fir.map {.text:>EPROMestart .data:>EPROMPAGE0MEMORY .bss:>SPRAMPAGE1{PAGE0: xn:align(128){}>DARAMPAGE1EPROM:org=0090H,len=0F70H h:align(128){}>DARAMPAGE1VECS:org=0080H,len=0010H .vectors:>VECSPAGE0}***********************************************vectors.asm***********************************************.title"vectors.asm".ref_c_int00.sect".vectors"B_c_int00.end滤波器仿真波形如下图所示:▷滤波器输入数据如下:输入数据经滤波器处理后为方波信号,如下:图18.滤波器仿真. .. .此滤波器参数:八阶FIR0.8,采用的循环缓冲区法设计,经CCS仿真后得方波信号。2FSK解调主程序2FSK延时相乘非相干解调测试程序,相关参数如下:▷Fc=24kHz,F0=16KHz,F1=32KHz,Fs=192Khz▷FIRN=8,h(n)=h(N-1-n)y(n)=h0*[x(n)+x(n-7)]+h1*[x(n-1)+x(n-6)]+h2*[x(n-2)+x(n-5)]+h3*[x(n-3)+x(n-4)]▷程序如下:**********************************************FSK_DEM.ASM ***********************************************.title"FSK_DEM.asm".mmregs.def_c_int00DataNum.set196DATA_THD.set4000HDEC_PASS_NUM.set2;DEC_BYPASS_NUM.set12-DEC_PASS_NUM;.bssy,1.bssx_disp,1.bssZ_disp,1.bssLPFOUT,1;—滤波器输出.bssDEC_DATA_CURR,1;——当前采样点判决值.bssDEC_DATA_BE,1;——前一次采样点判决值.bssDEC_NUM,1;——判决用计数器.bssDEC_NUM_X,1;——周期计数器.bssDEC_DONE,1;x_new.usect"DATA1",4x_old.usect"DATA2",4Y_OUT.usect"DATA3",32存储区,实际做的时候需要进行串转并;outputdata.usect"DATA3",DataNumfilterdata .usect"filter_vars",DataNumsize.set4.datainputdata:**********************************************;噪音**********************************************.WORD
BANZXXX,*AR3-******************************************STMY_OUT,AR1******************************************STM#x_new,AR2;AR21STM#x_old+(size-1),AR3;AR3指向老缓冲区最后1个单元STM#size,BK;设置循环缓冲区长度BKSTM#-1,AR0;循环控制增量AR0=-1******************************************STM#inputdata,AR5STM#(inputdata+6),AR4;调制后数据首地址延时Pi/2******************************************STOR:STM#filterdata,AR6*****************************************STM#inputdata,AR5;MVDD*AR5+,*AR2STM#(DataNum-1),BRCRPTB HHend-1FIR:******************************************MPY*AR5+,*AR4+,A乘STHA,*AR2MVDK*AR2,x_disp观察延时相乘后的数据波形******************************************ADD*AR2+0%,*AR3+0%,A;AH=(n)+x(n-7(一次)RPTZ B,#(size-1);B=0,下条指令执行sizeFIRS *AR2+0%,*AR3+0%,COEF;B+=AH*h0,AH=x(n-1)+x(n-6)…STHB,*AR6+;保存结果到y******************************************MVDK*AR6,x_disp18295,-6420,19759,-29306,6924,-10388,12834,12498.WORD-7547,0,-18295,6420,6084,10388,0,-8530.WORD-12834,6420,622,18918,-7547,-6420,-6084,-10388.WORD25843,-10388,19759,-25338,-622,0,622,25338.WORD-19759,10388,-25843,10388,6084,6420,7547,-18918.WORD-622,-6420,12834,8530,0,-10388,-6084,-6420.WORD18295,0,7547,-12498,-12834,10388,-6924,29306.WORD-19759,6420,-18295,0,18295,-6420,19759,-29306***********************************************F0和F1的余弦表*F032767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508,*F1 :28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508,*以下数据表示"001100110011"**********************************************.WORD32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508.WORD28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508.WORD32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508.WORD32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508.WORD28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508.WORD32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508.WORD28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508.WORD28508,0,-28508,-28508,0,28508,28508,0,-28508
MVDK*AR6,x_disp*******************************************在此开始对LPF输出数据进行判决*****************************************LDDEC_DONE,ASUB#1,ABCDEC_BYPASS,AEQ*******************************************DEC_NUM_DONE=0,表示一次新的数据判决开始LD*AR6,B;ABSB,A;对LPFOUT输出数据取绝对值SUB#DATA_THD,A;将结果与设定的阈值进行比较BCDEC_END,ALT直接返回AND#8000H,B;测试LPUOUT的极性BCDEC_POS,BEQ=0,说明LPFOUTST#0,DEC_DATA_CURR;存储测定的结果BDEC_NUM_ADDDEC_POS:ST#1,DEC_DATA_CURRDEC_NUM_ADD:ADDM#1,DEC_NUMLDDEC_NUM,ASUB#DEC_PASS_NUM,ABCDEC_BE_CURR,ALT;判断DEC_NUM>=2,小于2则跳转到DEC_BE_CURR;BCDEC_CMP,AEQ;判断DEC_NUM=2;DEC_CMP:LD DEC_DATA_CURR,A;DEC_NUM = 2,判断DATA_CUR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论