DSP调制解调系统设计_第1页
DSP调制解调系统设计_第2页
DSP调制解调系统设计_第3页
DSP调制解调系统设计_第4页
DSP调制解调系统设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年4月19日DSP调制解调系统设计文档仅供参考DSP系统课程设计调制解调器系统设计目录引言 -1-一、设计目的和任务 -2-二、设计内容与要求 -2-三、设计方案 -3-3.1、系统整体的结构图 -3-3.2、工作原理 -3-3.2.1.调制-4-3.2.2.解调 -4-3.3、硬件原理图 -6-四、系统实现 -13-4.1、硬件部分 -13-4.2、软件部分 -13-4.2.1、调制程序 -13-4.2.2、解调程序 -16-4.3、结语 -22-五、心得体会 -23-引言FSK(Frequency-shiftkeying):频移键控频移键控是利用载波的频率变化来传递数字信息。它是利用基带数字信号离散取值特点去键控载波频率以传递信息的一种数字调制技术。是信息传输中使用得较早的一种调制方式,它的主要优点是:实现起来较容易,抗噪声与抗衰减的性能较好。在中低速数据传输中得到了广泛的应用。最常见的是用两个频率承载二进制1和0的双频FSK系统,即2FSK系统。二进制频移键控(2-FSK)频移键控是利用两个不同频率f1和f2的振荡源来代表信号1和0,用数字信号的1和0去控制两个独立的振荡源交替输出。技术上的FSK有两个分类,非相干和相干的FSK。在非相干的FSK,瞬时频率之间的转移是两个分立的频率。在另一方面,在相干频移键控或二进制的FSK,是没有间断期在输出信号。在数字化时代,电脑通信在数据线路(电话线、网络电缆、光纤或者无线媒介)上进行传输,就是用FSK调制信号进行的,即把二进制数据转换成FSK信号传输,反过来又将接收到的FSK信号解调成二进制数据,并将其转换为用高,低电平所表示的二进制语言,这是计算机能够直接识别的语言。随着现代通信技术的发展,软件化的通信思想趋于成熟。用DSP芯片或者通用CPU芯片作为无线通信的硬件平台,而尽可能多的用软件来实现通信功能,是现代通信领域广泛使用的方法。随着DSP芯片性价比的提高,其在通信、自动控制、仪器仪表等许多领域的应用也越来越广泛。一、设计目的和任务目的:经过本课程的实践,能进一步掌握高级语言程序设计基本概念,掌握基本的程序设计方法;经过设计一个完整的小型程序,初步掌握开发软件所需的需求定义能力、功能分解能力和程序设计能力、代码调试技能;学习编写软件设计文档;为未来的软件设计打下良好的基础。《DSP系统课程设计》是一项实践性和综合性都比较强的课程。经过本课程的学习,能够掌握典型DSP芯片的结构、原理和典型应用,既能巩固《数字信号处理基础》、《DSP原理及应用》、《通信原理》中相关的基础理论知识,又为日后从事相关系统开发设计奠定一定的基础。任务:利用所学知识,设计一个基于DSP的二进制频移键控(2FSK)调制解调系统。了解掌握2FSK调制与解调原理,熟悉Protel99、CCS2.2等软件开发环境,完成对2FSK调制与解调电路设计和仿真,分析仿真结果。二、设计内容与要求绘制具备AD功能的DSP最小系统电路图,设计基于DSP的2FSK调制解调程序。设计2FSK调制解调的DSP程序,并给出相应的仿真结果。1.了解和熟悉DSP综合试验箱的结构原理和设置;存储器、逻辑控制等模块的原理和配置。2.开发工具熟悉DSP开发系统的连接;进一步熟悉CCS2.2开发环境的使用方法。3.DSP结构进一步熟悉DSP的硬件构造,特别是DSP外围存储单元及接口电路的设计。4.DSP最小系统设计绘制DSP最小系统电路图:外围存储器及ADC电路的设计。5.2FSK调制及解调理解2FSK调制及解调的原理,设计2FSK调制及解调的方案,给出具体的实现思路。6.FIR滤波器计算FIR实现所需的参数。7.FIR滤波器实现编写FIR滤波器实现的DSP程序。8.2FSK调制及解调实现给出2FSK调制及解调实现流程图,编写相关DSP实现程序。9.仿真验证2FSK调制及解调的DSP程序,给出相应的仿真结果。10.完成课程设计报告。三、设计方案3.1、系统整体的结构图图.1系统整体结构图3.2、2FSK工作原理二进制频移键控的基本原理:用数字基带信号来控制高频载波频率的变化,使载波的频率在和之间变化。二进制频移信号能够看成两个不同载波的二进制振幅键控信号的叠加。若二进制基带信号的符号1对应于载波频率,符号0对应于载波频率,则二进制频移键控信号的时域表示式:(1)(1)式中,,,,,是的反码,为码元持续时间,一般情况下,为单个矩形脉冲。二进制频移键控(2FSK)是数字通信中常见的一种调制方式,其调制与解调的方法有很多种。采用数字信号处理来实现二进制频移键控信号的数字调制与非相干数字解调,大大地降低了硬件电路的复杂程度,提高了系统的灵活性,能够满足二进制频移键控各种传输协议的要求。一个简易的2FSK工作原理如图2所示。在发送方,输入的基带数据信号经过调制和发送带通滤波器产生信道可传输的频带信号,送人信道;在接收端,接收带通滤波器除去带外所附加的噪声,将信号送入解调器(由延迟单元、乘法器和低,通滤波器构成),经过低通滤波器除去产生的高频信号,经取样判决得到输出数字序列,完成信号传输。图2.2FSK系统工作原理图3.2.1、2FSK调制2FSK调制就是把输人数字序列变成适合于信道传输的变频正弦波,因此2FSK的DSP实现关键就是产生正弦或余弦波形。产生正弦波的方法有差分迭代法、泰勒级数展开法、查表法等多种方法。本文中调制采用查表法产生正弦波。☞调制算法2FSK调制采用查表法,能够实现较好的实时性,特别适用于通信载波的生成。在DSP的程序存储空间,使用Q15定点数格式在[0,2π]上以2π/N的相位间隔固化N点正弦值,以供查表(这些值可由MATLAB软件首先计算好),在此取N=12。这样对于F0和F1的取样间隔分别为:(2)使用DSP定时器T0,用来实现对数据解调DAC输出速率的控制。这样,如要实现12Kbps的数传输速率,需要将DSP定时器T0的溢出率设置为192KHz。❖调制主程序流程图本文使用查表法提供2FSK调制所需要的两路正弦波,即sin0_table和sin1_table,当发送的数据为"0"时是发送sin0的数据,当发送的数据为"1"是发送sin1的数据。初始化完后,接收数据,判断“0”或“1”主程序流程如右图3所示图图3.调制主程序流程3.2.2、2FSK解调采用软件化设计思想,解调器也能够采用DSP编程来实现。FSK解调有相干解调和非相干解调,虽然相干解凋抗干扰性能好,但她要求设置与发送设备中的高频载波同频同相的本地参考载波,使设备复杂,因此一般数字调频系统都采用非相干解调。常见的非相干解调算法有过零检测法和包络检测法以一种新的可用DSP软件实现的FSK非相干解调算法,即正交自延时FSK解调算法。☞解调算法针对小型通信系统,能够采用一种算法简单、占用存储空间小的2FSK信号差分检波解调算法,本文即采用的这种实时性较高的2FSK信号差分检波解调算法,它是模拟信号解调电路用到的差分检波原理在2FSK信号数字解调中的具体实现。算法的基本思想是已调信号和它的的延时信号相乘,然后经过低通滤波,根据滤波结果的符号判断发送信号的值,从而实现信号的解调。算法原理图如下图4所示。图4.2FSK解调算法原理图在接收端,接收带通滤波器输出信号采样值经延时器延迟个采样点得到。要小于每个二进制码元周期内的采样点数,使得和是属于同一个二进制码元的采样值。和相乘后的输出样值:(3)前面一部分是仅与k有关的常数。后面一部分是与n有关的高频分量,可经过对称系数低通滤波器h(n)来滤除。低通滤波器h(n)的截止频率设为12KHz,对称系数经Matlab计算求得:h0=0.00018497,h1=0.26316,h2=0.19272,h3= 0.22079,经过该低通滤波器后得到:————————(4)k的选择是设计解调器的关键,应使差值:———————(5)最大,以利于正确区分两种频率,降低判决的误码率。根据实际的测试得到,当k=2时,能够得到较好的区分度。经过低通滤波后的数据U(n)经过判决算法后,能够得到最终所要的解调数据Y(n)。系统12个采样数据表示一个码元,当判决算法连续判决12个采样数据(一个码元包含的采样点)满足预设阈值之后,确定一个码元的状态。假设如下判决算法中用都得变量:LPFOUT→滤波器输出,DATA_THD→幅度判决的阈值,DEC_DATA_CURR→当前采样点判决值,DEC_DATA_BE→前一次采样点判决值,DEC_NUM→判决用计数器,DEC_NUM_X→周期计数器。判决算法流程图如下图所示:图图5.判决算法流程图3.3、硬件原理图♣音频接口原理图图6.音频接口图此部分为整个系统提供音频信号的采集输入。由TLV320AIC23单片机进行模拟信号采集处理,提供三个采集接口和一个输出接口。♣电源原理图图7.电源此部分为系统电源结构的原理图。为此系统提供了所需要的电源,如、5V、3.3V、1.8V电源,并设置了地线。♣寄存器原理图图8.寄存器原理图外部存储器,用于接收存储数据。♣DSP原理图图9.DSP原理图本系统采用TMS320VC5402PGE100DSP芯片,该芯片有142个管脚。芯片的电源电压有3.3V与1.8V两种,其中3.3V电压供I/O接口用,2.5V电源主要供器件的内部,包括CPU和其它所有的外设逻辑。该系统将芯片片内部分模块单元引出以便做外部扩展。这些扩展的模块包含串行口、定时计数器、数据地址总线接口和通用I/O等。此芯片一是实现FIR滤波,其次是2FSK的调制与解调。♣EPM图10.EPM原理图♣AD与DA转换原理图图11.数模—模数转换原理图DA和AD,即数字和模拟信号转换系统。可将系统音频接口所采集的模拟信号转换为数字信号,送入DSP中进行调制解调处理,然后再把处理后的信号转换为模拟信号发射出去。♣顶层文件原理图图12.顶层文件连接图该版面为系统硬件原理图部分生成的顶层文件连接示意图,从中能够反应出系统的大概构成部分。经过各个分板块的网络标号,将各分散部分的信号线以及各总线联系在一起,以便于进行统一的电器检查以及生成网络表,为后面生成PCB板奠定基础。加载网络表后,利用手动布局,在手动布线的基础上实现了该系统PCB板的完整布线。普通信号线10mil,电源线及地线为15mil。四、系统实现4.1、硬件部分利于protel软件,画出各部分硬件电路图。生成顶层文件,画出PCB板,并实现手动布线,如前面各图所示。4.2、软件部分4.2.1、2FSK调制程序❖本文2FSK调制采用查表法,使用Q15定点数格式在[0,2π]上以2π/N的相位间隔固化N点正弦值,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|1412|119|86|53|20|**|XPA|I/O|Data|Data|Program|Program|* STM#0x7208,SWWSR ;0111001000001000*I/O空间为7个等待周期*数据空间8000h-FFFFh为1个等待周期*数据空间0000h-7FFFh为0个等待周期*程序空间8000h-FFFFh为1个等待周期*程序空间0000h-7FFFh为0个等待周期*SWCR:SoftWareWait-StateConctrolRegisterAddress002Bh**||0|**||SWSM|* STM#0,SWCR*等待周期不变*(STM#1,SWCR等待周期加倍)*BSCR:Programabelbank-switchingwaitstatesAddress0029h**|1512|11|103|2|1|0|**|BNKCMP|PS–DS|Reserved|HBH|BH|EXIO|* STM#0xF800,BSCR;1111100000000000*允许修改PMST中的值*在连续的读程序或数据空间时插入1个额外的等待周期*外部存储器的空白区间为4k*ST0**|1513|12|11|10|9|80|**|ARP|TC|C|OVA|OVB|DP|* STM#0,ST0*数据页指针指向0*ST1**|15|14|13|12|11|10|9|8|7|6|5|40|**|BRAF|CPL|XF|HM|INTM|0|OVM|SXM|C16|FRCT|CMPT|ASM|* STM#0x2b00,ST1 ;0010101100000000*INTM=1将全局中断禁止*SXM=1数据进入ALU之前进行符号位扩展*OVM=1 益处控制位(参考ST1资料)*PMST**|157|6|5|4|3|2|1|0|**|IPTR|MP/MC|OVLY|AVIS|DROM|CLKOFF|SMUL|SST|**|002011111|0|1|0|0|0|0|0|**0011111111100100 STM#0x2fe4,PMST ;0010111111100100*将中断向量表映射到2f80*MP/MC=0芯片工作在微计算机方式,能够寻址片内程序存储器*IFRorIMR**|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||||||||**0000000000000000 STM#0xFFFF,IFR*清除挂起的中断 STM#0x0000,IMR ;关闭所有中断*打开定时器0的中断。 *CLKMD**|1512|11|103|2|1|0|**|PLLMUL|PLLDIV|PLLCOUNT|PLLON/OFF|PLLNDIV|PLLSTATUS|* STM#0,CLKMDclkcon: LDMCLKMD,A AND#0x01,A BCclkcon,ANEQ STM#0x43ff,CLKMD ;0100001111111111*利用软件对CLKMD进行加载(参考教材:P250) *PLL=4MUL=5100Mhz;PLL=3MUL=480Mhz *TCR**|1512|11|10|96|5|4|30|**|Revd|soft|free|PSC|TRB|TSS|TDDR|* STM#0x0010,TCR1 ;timer1stop STM#0x0010,TCR ;TSS=1Timerstop STM#1000,TIM STM#1000,PRD STM#1000,TIM1 STM#1000,PRD1*定时中断周期=CLKOUT*(TDDR+1)*(PRD+1) RSBXINTM STM#0x0088,IMR*将全局中断使能 NOP NOP RET .end**********************************************Vectors.asm*********************************************.includec54.inc.sect".vectors".ref_c_int00 ;mainprogrom.refTINT0_ISR;.reftimer0,hpisys,usb_read.align0x80;mustbealignedonpageboundaryRESET:;resetvectorB_c_int00;branchtomainprogrom NOP NOPnmi:RETE;enableinterruptsandreturnfromoneNOPNOPNOP;NMI~;softwareinterruptssint17.space4*16sint18.space4*16sint19.space4*16sint20.space4*16sint21.space4*16sint22.space4*16sint23.space4*16sint24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0:RETENOPNOPNOPint1:RETE NOPNOPNOPint2:RETENOPNOPNOPTINT: BTINT0_ISR ;Timer0中断 NOP NOPrint0:RETENOPNOPNOPxint0:RETENOPNOPNOPDMAC0: RETE NOP NOP NOPDMAC1: RETE ;tint1 NOP NOP NOPint3:RETENOPNOPNOPHPINT: RETE NOP NOP NOP DMAC2:RETE ;rint1 NOP NOPNOPNOPxint1:RETE NOP NOP NOPDMAC4: RETE NOP NOP NOPDMAC5: RETE NOP NOP NOP.end***********************************************FSK_MOD.CMD***********************************************MEMORY{PAGE0:PROG:origin=0x,len=0x0f80 /*8k-128word*/ VECT:origin=0x2f80,len=0x80 /*128word*/PAGE1:DRAM:origin=0x3000,len=0xf80 /*4kword*/}SECTIONS{progsys:load=PROG PAGE0.vectors:load=VECT PAGE0.data:load=DRAM PAGE1 align16.bss:load=DRAM PAGE1}❖调制仿真波形如图:图14.信号调制仿真波形4.2.2、2FSK解调程序本文采用的是实时性较高的2FSK信号差分检波解调算法,是已调信号和它的的延时信号相乘,然后经过低通滤波,根据滤波结果的符号判断发送信号的值,从而实现信号的解调。算法原理图可如前所述,信号放大之后,经k个单位时间的延时,再与原信号相乘,经过LPF判决结果。❖FIR滤波器在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音和图像处理、模式识别、谱分析等应用中的一个基本的处理算法。与模拟滤波相比,数字滤波具有很多突出的优点,例如它能够满足滤波器对幅度和相位特性的严格要求,能够避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好的特点。在延时相乘之后的滤波器设计,用可编程DSP芯片实现数字滤波可经过修改滤波器的参数十分方便地改变滤波器的特性。在延时相乘之后的滤波器设计,用可编程DSP芯片实现数字滤器,其流程可如右图所示:图15.FIR滤波器软件流程图本文采用系数对称用循环缓冲区和双操作数寻址方法实现FIR滤波器设计,参数:滤波器阶数为8,截止频率为0.8。利用Matlab软件中的freqz指令能够观察到滤波器的特性,为便于说明,下图提供了一个截止频率0.8,阶数为90的低通滤波器频率特性图。图16.低通滤波器的频率特性本实验所设计滤波器经由Matlab计算出系数,如下:f=[00.80.81];m=[1100];b=fir2(7,f,m);b=b*32768; freqz(b,512,1000)图17.滤波器系数❖滤波器程序如下:*********************************************my_fir.asm*********************************************.title "my_fir.asm" .mmregs .def _c_int00 .bss y,1 ;yxn .usect "xn",8 ;xnh .usect "h",8 ;h;PA0 .set 0002H ;数据输出端口;PA1 .set 0008H ;数据输入端口 .bssindata,1 .bss outdata,1 .bssDis_buff,1 .datatable: .word137,6,-2635,18941,18941,-2635,6,137_c_int00: SSBX FRCT ;小数乘法 STM #xn,AR1 RPT #7 ST #0,*AR1+ ;把x(n)-x(n-7)赋始值0 STM #h,AR1 RPT #7 MVPD #table,*AR1+;把参数表复制到数据存储区 STM #xn+7,AR3 ;AR3-->x(n-7) STM #h+7,AR4 ;AR4-->h(n-7) STM #8,BK ;循环缓冲区大小8 STM #-1,AR0 ;指针调整值-1 ;LD #xn,DP ;DP指向xn所在页;PORTR PA1,@xn ;输入数据LD #y,DP ;DP指向y所在页FIR: NOPMVKD indata,*AR3+0% RPTZ A,#7 MAC *AR3+0%,*AR4+0%,A ;A=(AR3)*(AR4)+A,AR3=AR3+AR0,AR4=AR4+AR0;;STHA,@outdata;MVDP*(outdata),Dis_buffNOPSTH A,@y ;保存计算结果NOP;PORTW @y,PA0 ;输出结果 B FIR ;延时跳转;PORTR PA1,*AR3+0% ;新数据覆盖了最旧的数据 .end********************************************my_fir.cmd********************************************vectors.objmy_fir.obj-omy_fir.out-mmy_fir.map-estartMEMORY{PAGE0:EPROM: org=0090H,len=0F70HVECS: org=0080H,len=0010HPAGE1:SPRAM: org=1000H,len=1000HDARAM: org=H,len=H}/*由于在源程TWLO序中使用了BK寄存器,因此必须使用"align"命令*/SECTIONS{.text :>EPROM PAGE0.data :>EPROM PAGE0.bss :>SPRAM PAGE1xn : align(128){}>DARAM PAGE1h : align(128){}>DARAM PAGE1.vectors:>VECS PAGE0}***********************************************vectors.asm***********************************************.title"vectors.asm" .ref _c_int00 .sect ".vectors" B _c_int00 .end❖滤波器仿真波形如下图所示:▷滤波器输入数据如下:输入数据经滤波器处理后为方波信号,如下:图18.滤波器仿真此滤波器参数:八阶FIR低通滤波器,截止频率0.8,采用的循环缓冲区法设计,经CCS仿真后得方波信号。❖2FSK解调主程序2FSK延时相乘非相干解调测试程序,相关参数如下:▷Fc=24kHz,F0=16KHz,F1=32KHz,Fs=192Khz▷八阶系数对称的FIR滤波器 N=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.set 196DATA_THD.set 4000H;——幅度判决的阈值DEC_PASS_NUM.set 2;DEC_BYPASS_NUM.set 12-DEC_PASS_NUM;.bss y,1 .bss x_disp,1 .bss Z_disp,1 .bss LPFOUT,1 ;—滤波器输出 .bss DEC_DATA_CURR,1 ;——当前采样点判决值 .bss DEC_DATA_BE,1 ;——前一次采样点判决值 .bss DEC_NUM,1 ;——判决用计数器 .bss DEC_NUM_X,1 ;——周期计数器 .bss DEC_DONE,1;x_new .usect "DATA1",4x_old .usect "DATA2",4Y_OUT .usect "DATA3",32;给转换结果开辟了一个存储区,实际做的时候需要进行串转并;outputdata .usect "DATA3",DataNumfilterdata .usect"filter_vars",DataNumsize .set 4 .datainputdata:**********************************************;噪音**********************************************.WORD 18295,-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,*以下数据表示""********************************************** .WORD 32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508 .WORD 28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508 .WORD 32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508 .WORD 32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508 .WORD 28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508 .WORD 32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508 .WORD 28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508 .WORD 28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508 .WORD 32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508 .WORD 28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508COEF .word 18*32768/100000,26316*32768/100000 .word 19272*32768/100000,22079*32768/100000 .text_c_int00: LD #x_new,DP;设置数据存储器页指针的起始位置 SSBX FRCT;小数乘法 ****************************************STM #DataNum,AR3STM #Z_disp,AR7STM 8765h,*AR6+ST#0,DEC_NUMST#0,DEC_NUM_XST#0,DEC_DONE******************************************STM #inputdata,AR5XXX:MVDK *AR5+,x_disp;在此加断点经过图形窗口能够观察调制后的数据波形 BANZXXX,*AR3-******************************************STM Y_OUT,AR1******************************************STM #x_new,AR2;AR2指向新缓冲区第1个单元 STM #x_old+(size-1),AR3;AR3指向老缓冲区最后1个单元 STM #size,BK;设置循环缓冲区长度BK=size STM #-1,AR0;循环控制增量AR0=-1****************************************** STM #inputdata,AR5 STM #(inputdata+6),AR4;调制后数据首地址延时Pi/2******************************************STOR: STM #filterdata,AR6***************************************** STM #inputdata,AR5 ;MVDD *AR5+,*AR2 STM #(DataNum-1),BRC RPTB HHend-1FIR:****************************************** MPY*AR5+,*AR4+,A;调制后的数据与移位后的数据相乘STH A,*AR2MVDK*AR2,x_disp;在此加断点经过图形窗口能够观察延时相乘后的数据波形******************************************ADD *AR2+0%,*AR3+0%,A;AH=x(n)+x(n-7)(第一次) RPTZ B,#(size-1);B=0,下条指令执行size次 FIRS *AR2+0%,*AR3+0%,COEF;B+=AH*h0,AH=x(n-1)+x(n-6)… STH B,*AR6+;保存结果到y ******************************************MVDK*AR6,x_dispMVDK*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,说明LPFOUT为正ST#0,DEC_DATA_CURR;存储测定的结果BDEC_NUM_ADDDEC_POS:ST#1,DEC_DATA_CURR;存储测定的结果DEC_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:LDDEC_DATA_CURR,A;DEC_NUM=2,判断DATA_CURR==DEC_DATA_BE?SUBDEC_DATA_BE,ABCDEC_NOPASS,ANEQ*************************************************MVKDDEC_DATA_CURR,*AR1+;存储判决后的数据************************************************ST#0,DEC_NUM_XST#1,DEC_DONEBDEC_END*************************************************DEC_NUM_DONE=1,表示一次判决已结束,开始计数10次(2+10,表示一个码元的宽度)DEC_BYPASS:ADDM#1,DEC_NUM_X;DEC_NUM_DONE==1LDDEC_NUM_X,ASUB#DEC_BYPASS_NUM,ABCDEC_END,ANEQST#0,DEC_NUM;ST#0,DEC_NUM_XST#0,DEC_DONEBDEC_END************************************************DEC_NOPASS:ST#1,DEC_NUM;DEC_NUM=1************

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论