还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2FSK调制解调系统设计作者姓名舒珑塔201320101130晋良斌201320101129专业名称2013级信息工程指导教师刘晓丽讲师2FSK调制解调系统设计2调制原理从2FSK的调制方法有两种
(1)频率选择法;
(2)载波调频法不同的方法有不同的优缺点,在不同的情况下使用不同的方法2FSK调制采用查表法,可以实现较好的实时性,特别适用于通信载波的生成
2.12FSK调制原理2FSK信号的产生通常有两种方式
(1)频率选择法;
(2)载波调频法•频率选择法-----产生的2FSK信号为两个彼此独立的载波振荡器输出信号之和,在二进制码元状态转换(或)时刻,2FSK信号的相位通常是不连续的,这会不利于已调信号功率谱旁瓣分量的收敛・载波调频法
1.1----个直接调频器中产生2FSK信号,这时的己调信号出自同一个振荡器,信号相位在载频变化时始终是连续的,这将有利于己调信号功率谱旁瓣分量的收敛,使信号功率更集中于信号带宽内
1.22FSK调制算法2FSK调制就是把输入数字序列变成适合于信道传输的变频正弦波——2FSK的DSP实现关键就是产生正弦或余弦波形产生正弦波的方法有差分迭代法、泰勒级数展开法、查表法等多种方法2FSK调制采用查表法,可以实现较好的实时性,特别适用于通信载波的生成在DSP的程序存储空间,使用Q15定点数格式在[0,2n]上以2n/N的相位间隔固化N点正弦值,以供查表(这些值可由MATLAB软件首先计算好),在此取N=12o这样对于凡?和F1的取样间隔分别为A/0=/V*A/F5=12*16/192=1,发送数据“0”时AH=4*1/4=12*32/192=2,发送数据T时-5-2FSK调制解调系统设计―使用D用定时器TO,用来实现对数据解调DAC输出速率的控制这样,如要实现12Kbps的数传输速率,需要将DSP定时器TO的溢出率设置为192KHzo
1.3调制主程序流程图本文使用查表法提供2FSK调制所需要的两路正弦波,即sinO_table和sinl_table,当发送的数据为“0”时是发送sinO的数据,三发送的数据%“1”是发送sinl的数据初始化完后,接收数据,判断“0”或“1”,打开中断,则定时落每隔一个周期产生一次中断,中断服务程序则完成一个采样点的输出一个码元周期结束后,关中断,判断下一个发送数据,继续循环关中断设置中断程序入口地址初始化定时器和IMR寄存器图三调至主程序流程图-6-2FSK调制解调系统设计3解调原理
3.1常见解调方法解调的原理就是将2FSK信号分解为上下两路分别进行解调,然后进行判别2FSK信号的解调方法有如包络检波法、相干解调法、鉴频法、过零检测法及差分检波法等1)非相干解调2)相干解调:相干解调器的一般模型为引网>LPF9U cr=COS DJ-7-2FSK调制解调系统设计~~相干解调器原理为了无失真地恢复原基带信号,接收端必须提供一个与接收的已调载波严格同步(同频同相)的本地载波(称为相千载波),它与接收的已调信号相乘后,经低通滤波器取出低频分量,即可得到原始的基带调制信号已调信号的一般表达式为%⑺=cos如+%in如与同频同相的相干载波c(8相乘后,得Sp,f,CW=-sz r4--5z rcos26jz-i--5c r5m2^r222s/r)=L/(r)经低通滤波器后,得到2因为是/〃(力通过一个全通滤波器〃(劭后的结果,故上式中—出,即(,)=+⑺讶
①3)过零检测法:-8-2FSK调制解调系统设计
3.2实验解调算法算法的基本思想是己调信号和它的延时信号相乘,然后经过低通滤波,根据滤波结果的符号判断发送信号的值,从而实现信号的解调2Kw=S〃S〃-k=A sin2/zF〃Gsin[2才〃-A2=-----[cos2^fA7^-cos4^FwTy-2nFkTs]前面一部分是仅与k有关的常数后面一部分是与n有关的高频分量,可通过对称系数低通滤波器hn来滤除低通滤波器hn的截止频率设为12KI1Z,通过该低通滤波器后得到4々-cos2/0a,发送数据仍4E Un=——cos2^F^=介—cos2/砥,发送数据T,2A的选择是设计解调器的关键,应使差值:d左q cos2呜44一cos2出左4|最后,以利于正确区分两种频率,降低判决的误码率根据实际的测试得到,当k=2时,可以得到较好的区分度经过低通滤波后的数据Un经过判决算法后,可以得到最终所要的解调数据Yn-9-2FSK调制解调系统设计4实验流程
4.1调制实验本次实验是2FSK基于DSP的调制实验,是在Code ComposerStudio
2.2上实现的
4.
1.1调制主程序详见附录
14.
1.2调制过程将实验原程序中的FSK_DATA数据变更为0x6bl7如图所示unsigned intFSK_DATA=0x6bl7;,unsigned intFSK_Tran_BUFF/变量的地址可以查看工程目录中在软祥频聚点示图中,‘有属性变龙加图所示的情况在经过程序和软件上的调试后,最终我们可以得到频率结果图-10-2FSK调制解调系统设计
4.2解调实验本次实验是2FSK基于DSP的解调实验,是在Code ComposerStudio
2.2上实现的
4.
2.1解调主程序详见附录
14.
2.2解调过程将实验原程序中的FSK调制数据改为0110101lOOOo,*FSK调制数据11*1601101011000^0X0OO050X30FB:0X5A8250X7641;0X7H:E0X76415OX5A825OX30FB:0X00OO;0XCF05:0XA57E50X89BF50X800050X89BF50XA57E0XCF05^将频率显示图的属性更改为如图的属性,如此可方便的出最后的结果图-11-2FSK调制解调系统设计经过程序和软件属性的修改,得到了如图所示的结果图,我们一开始输入的FSK解调数为01101011000,可以从图上看出数据为-12-2FSK调制解调系统设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程这次课程设计,至今我仍感慨颇多,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以所学过的知识理解得不够深刻,掌握得不够牢固这次课程设计历时两个星期多左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高-13-2FSK调制解调系统设计参考文献[1]解月珍.秦履多.谢沅清.信号产生电路[M].电子工业出版,
1994.12]王慕坤.通信原理[M].哈尔滨工业大学出版社,
2003.13]鲜继清.张德民.现代通信系统M.西安电子科技大学出版社,
2002.⑷阎石.数字电子技术基础[M].高等教育HI版社,
2006.[5]苏涛.DSP实用技术[M].西安电子科技大学出版社,
2002.[6]高海林,钱满义.DSP技术及其应用[M].北京交通大学出版社.
2009.-14-2FSK调制解调系统设计摘要2FSK是一种在无线通信中很有吸引力的数字调制方式,目前在短波,微波和卫星通信中均被采用随着超大规模集成电路技术和计算机技术的飞速发展,数字信号处理(DSP)技术在通信领域中已有了广泛的应用本论文研究并实现了基于DSP的全数字2FSK发送与接收系统本文分析并防真了基于直接数字频率合成原理的2FSK全数字调制的方法;分析并防真了基于差分基带相位傅立叶变换的载波频偏和位定时算法.最终得到结果如下
1.实现了数字的2FSK数字化调制本文在独立设计的DSP系统上进行了调制实验通过改变程序中的参数,成功实现了多种速率的数据发送
2.实现了2FSK信号的数字化接收接收工作包括数据的读入,载波频偏估计,位同步,解调关键词2FSK调制同步解调2FSK调制解调系统设计附件1实验程序A
1.1调制主程序#include myapp.h int const sin0_table
[16]={0,1158,1638,1158,0,-1159,-1638,-1158,0,1158,1638,1158,0,-H59,-1638,-1158};int constsin1_table
[16]={0,1254,2317,3027,3276,3027,2317,1254,0,-1254,-2317,-3027,-3276,-3027,-2317,-1254;//int constsinl_table
[16]={0,627/158,1514,1638,1514/158,627,0,-627,-1159,-1514,-1638,-1513,-1158,-626;//int constsin_table
[16]={0,1158,1638』158,0,-1159,-1638,-1158,0,1158,1638,1158,0,-H59,-1638,-1158;unsigned intFSK_DATA=0x6b17;unsigned intFSK_Tran_BUFF;〃变量的地址可以查看工程目录中的.map文件可以txt文本打开本例地址为0x2001unsigned intFSK_Tran_FIag=0;〃定时中断控制位unsigned int Counter;unsigned intCounterO;unsigned intCounter I;unsigned intTemp_DATA;void mainvoid{//unsigned intCounter;c54init;asm nSSBX CPL;〃需要注意的是函数中的局部变量编译成汇编后会进行直接寻址,〃因此必须初始化DP页指针,这样在函数中使用局部变量就不会出现问题asm nLD#0x40,DP”;-15-2FSK调制解调系统设计〃同样需要将SP指针初始化一下SP=0x3400;//asm nRSBX INTM”;initCLKCPU_SPEED_l60M;initlnterrupt;asm Hrsbx INTM;〃开全局开中断TCR=0x0020;//TSS=0Timer start,TRB=1Reload Temp.DATA=FSK_DATA;forCountei-0;Counter16;Counter++ifFSK_DATA0x0001sinO_Trans;FSK_DATA=FSK.DATA»1;elsesinl_Trans;FSK.DATA=FSK.DATA»1;//port8000=0;//port8000=0x8888;//port8000=0;-16-2FSK调制解调系统设计void sinO_Transvoid//unsigned inti;//unsigned intCounterO;forCounter0=0;Counter016;CounterO++while!FSK_Tran_Flag;FSK_Tran_BUFF=sinO」ab©CounterO];〃在此力口断点FSK_Tran_Flag=0;Ivoid sinl_Transvoid{//unsigned inti;//unsigned intCounter I;forCounter1=0;Counter116;Counterl++{while!FSK_Tran_Flag;FSK_Tran_BUFF=sinl」able[Counterl];〃在此力口断点FSK_Tran_Flag=0;}interrupt void TINT_ISR void-17-2FSK调制解调系统设计FSK_Tran_Flag=1;AL2解调主程序R#include myapp.h#include math.h**************************************************FSK延时相乘非相干解调测试程序*Fc=24kHz,F0=16KHz,Fl=32KHz,Fs=192Khz**************************************************系数对称的FIR滤波器**N=8,hn=hN-l-n**yn=hO*[xn+xn-7]+h1*[xn-l+xn-6]**+h2*[xn-2+xn-5]+h3*[xn-3+xn-4]*所有全局变量的地址可以在工程目录的.map文件中查看一〃本程序中先关变量的地址如下,程序如有改动,地址会有变动/*GLOBAL SYMBOLS:SORTED ALPHABETICALLYBY Nameaddress name000020d0_DEC_By_NUM0X020cc_DEC_DATA_BEF00002kd_DEC_DATA_CURR000020d3_DEC_DATA_Ser000020d6_DEC_Flag_X000020cc_DEC_IN0X02kf_DEC_NUM000020U1_DEC_NUM_X-18-2FSK调制解调系统设计00002017_DEC_OUT000020e3_DSIP00002000_FIRBUFF0000210b_F1R_COEF000021Of_FSK_DATA00002008_LPFOUT000020d2_ONCE_DEC_DONE000001de_TINT0_ISR000020e4_Temp_DATA*/int constFIR_COEF
[4]={0x0005,0x21AF,0x18AB.OxIC42};//FIR滤波器系数//int constFIR_COEF
[4]={18*32768/100000,26316*32768/10000,19272*32768/100X0,22079*32768/100000};//FIR滤波器系数//int constFIR_COEF
[4]={0,238917554963298*32768,
0.098771820314121*32768,
0.109997582034483*32768,
0.1165325355672II*32768;//int constFIR_COEF
[4]={0,08977454978001*32768,
0.1142599216456*32768,
0.1325311332693*32768,
0.1422899911346*32768;/**********木***求****水************求******水*求***木木*木*前半部分噪音*木**木*木*木*木*木木*木*木***木木*木***木*I:*木*木****木木木***:I:*木**************************************************后半部分FSK调制数据*F0和F1的余弦表*F032767,28508,
16384.0,-16384,-28508,-32767,-28508,-16384,0,16384,28508,*F128508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508,*FSK调制数据表示0100I0H0H,程序运行结束后可以在DEC_OUT[DataSer_Num]数组中看至IJ*************************************************/intconstFSK_DATA[DataNum]={〃*噪音64个点18295,-6420,19759,-29306,6924,-10388J283412498,-7547,0,-18295,6420,6084,10388,0,-8530,-19-2FSK调制解调系统设计-12834,6420,622,18918,-7547,-6420,-6084,-10388,25843,-10388,19759,-25338,-622,0,622,25338,-19759,10388,-25843,10388,6084,6420,7547,-18918,-622,-6420,12834,8530,0,-10388,-6084,-6420,18295,0,7547,-12498,-12834,10388,-6924,29306,-19759,6420,-18295,0,18295,-6420,19759,-29306,//♦FSK调制数据11*16011010110000xXX,0x30FB,0x5A82,0x7641,0x7FFF,0x7641,0x5A82,0x30FB,0x0000,0xCF
05.0xA57E,0x89BF,0x
8000.0x89BE0xA57E,0xCF05,0x0000,Ox5A82,Ox7FFEOx5A82,OxOOOO.OxA57E,Ox8OOO.OxA57E,OxOOOO.O x5A82,0x7FFF,0x5A82,0x0X0,0xA57E,0x8000,0xA57E,0x0000,0x5A82,0x7FFF,0x5A82,0x0000,0xA57E,0x8000,0xA57E,0x0000,0x5A82,0x7FFF,0x5A82,0x0X0,0xA57E,0x8000,0xA57E,0x00X,0x30FB,0x5A82,0x7641,0x7FFF,0x7641,0x5A82,x30FB,0x000,xCF
05.0xA57E,0x89BE0x
8000.0x89BE0xA57E,0xCF05,0x0000,0x5A82,0x7FFE0x5A82,0x0000,0xA57E,0x
8000.0xA57E,0x0000,0x5A82,0x7FFF,0x5A82,0x0X0,0xA57E,0x8000,0xA57E,0x0000,0x30FB.0x5A82,0x
7641.0x7FFE0x7641,0x5A82,0x30FB,0x0000,0xCF05,0xA57E,0x89BF,0x8000,0x89BF,0xA57E,0xCF05,0xXX,0x5A82,0x7FFF,0x5A82,0x000,0xA57E,0x8X,0xA57E,0xX,0x5A82,0x7FFF,0x5A82,0x0X0,0xA57E,0x8000,0xA57E.0x0000,0x5A82,0x7FFE0x5A82,0x0000,0xA57E,0x
8000.0xA57E,0x
0000.0x5A82,0x7FFF,0x5A82,0x0000,0xA57E,0x8000,0xA57E,0x0000,0x30FB.0x5A82,0x7641,0x7FFE0x7641,0x5A82,Ox3OFB,OxOOOO,OxCFO5,0xA57E,0x89BF,0x8000,0x89BE0xA57E,0xCF05,0xXX,0x30FB,0x5A82,0x7641,0x7FFF,0x7641,0x5A82,0x30FB,0x0000,OxCFO
5.0xA57E,0x89BE0x8000,0x89BF.0xA57E,0xCF05,-20-2FSK调制解调系统设计0xXX,0x30FB,0x5A82,0x7641,0x7FFF,0x7641,0x5A82,0x30FB,0x000,OxCFO
5.0xA57E,0x89BE0x
8000.0x89BE0xA57E,0xCF05;7*32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508,28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508,32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,
16384.28508,32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508,28508,0,-28508,-28508,
0.
28508.
28508.0,-28508,-28508,0,28508,32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508,28508,0,-28508,-
28508.0,28508,
28508.0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508,32767,28508,16384,0,-16384,-28508,-32767,-28508,-16384,0,16384,28508,28508,0,-28508,-28508,
0.
2850828508.
0.-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508,28508,0,-28508,-28508,0,28508;*/int HRBUFF
[8]=0,0,0,0,0,0,0,0;//FIR滤波器输入缓冲区ini LPFOUT[DaiaNum];〃滤波器输出int DEC」N=0;//判决器输入int DEC_DATA_CURR=O;//—S前采样点判决值int DEC_DATA_BEF=O;//—fl•次采样点判决值int DEC_NUM=0;〃一判决用计数器int DEC_By_NUM=O;〃一判决用计数器int DEC_NUM_X=0;〃一周期计数器int ONCE_DEC_DONE=0;〃一次有效判决结束int DEC_DATA_Ser[DEC_PASS_NUM]={
0.0};i ntDEC_Fiag_X=O;//当前判决码元符号标志int DEC_OUT[DataSer_Num]={0,0,0,0,0,0,0,0,0,0,0,0};//^lJ决器输出,结果存储在这里long Temp_DATA=0;〃暂存数据int DSIP=0;〃显示变量-21-2FSK调制解调系统设计void mainvoid{intCounter.CounterO1;c54init;asm SSBXCPL;〃需要注意的是函数中的局部变量编译成汇编后会进行直接寻址,〃因此必须初始化DP页指针,这样在函数中使用局部变量就不会出现问题asm LD#0x40,DP;〃同样需要将SP指针初始化一下SP=0x3400;//asm RSBXINTM;initCLKCPU_SPEED_160M;initlnterruptO;asm SSBXINTM;〃管全局开中断//TCR=0xX20;//TSS=0Timer start,TRB=\Reload asmSSBX FRCT;//所有数乘法都是小数乘forCounter=0;CounterDataNum;Connter++{Temp_DATA FSK_DATA[Counter]*FSK_DATA[Countcr+DELAY_MUL_NUM];〃延时相乘,FIRBUFF
[7]=Temp_DATA»16;〃取乘积后的高16位,将最新样点放置在FIR滤波器缓冲区最新的位置//Temp_DATA=FIR_COEF[OJ*F1RBUFFIOJ+FIRBUFF17]+FIR_COEF
[1]*F1RBUFF|I j+FIRBUFF
[6]+FIR_COEF
[2]*HRBUFF
[2]+FIRBUFF
[5]+FIR_COEF
[3]*HRBUFF
[3]+HR BUFF
[4];//FIR滤波器计算//asm RSBXSXM;-22-2FSK调制解调系统设计Temp_DATA longFIR_COEFl]*FIRBUFF[]+FIRBUFF|7]+longFIR_COEF[l]*FIRBUF F[l]+FIRBUFF
[6]+longFIR_COEFr2]*FIRBUFF
[2]+FIRBUFF
[5]+longFIR_COEF
[3]*FIRBUFF
[3]+FIRBUFF⑷;〃FIR滤波器计算forCountei-01=0;Countcr017;Counter01++{FIRBUFF[Countei-01]=FIRBUFF[Counter01+l];〃更新FIR源波器缓冲区数据LPFOUT[Counter]=Temp_DATA»16;DEC_IN=LPFOUT[Counter];DSIP=LPFOUT[Counter];//---------------判决开始---------------------------------if!ONCE_DEC_DONE〃如果ONCE_DEC_DONE已被设置表示已找至一个有效样点ifDECJN0DEC_IN=65536-DEC」N;〃如果是负数的话,将其转换为正数DEC_Flag_X=0;else{DEC_Flag_X=1;ifDEC_IN=DATA_THD〃是一个有效样点-23-2FSK调制解调系统设计〃DEC_DATA_CURR=1;//一当前采样点判决值DEC_DATA_SerlDEC_NUM]=DEC_Flag_X;DEC_NUM++;〃判决计数器+1ifDEC_NUM=2〃在连续判决次数DEC_PASS_NUM内ifDEC_DATA_Ser[DEC_NUM-l]==DEC_DATA_Ser[DEC_NUM-2]〃判决前次结果和当期结果是否一致ifDEC_NUM=DEC_PASS_NUMONCE_DEC_DONE=1;〃表示一次有效判决结束DEC_OUTIDEC_NUM_X]=DEC_DATA_Ser[O];//存储判决结果DEC_NUM_X++;DEC_NUM=0;else〃如果前后两次判决记过不一样DEC_NUM=0;〃否则判决计数器清0else//如果样点绝对值小于设定的阈值,则认为是一个无效数据,舍弃{DEC.NUM=;〃清0判决计数器else DEC_By_NUM++;ifDEC_By_NUM==DEC_B YPASS_NUM-1-24-2FSK调制解调系统设计Abstract2fsk isa veryattractive digitalmodulation ina wirelesscommunication method,currently inHF,arc usedin microwaveand satellitecommunications.As VLSITechnology andthe rapiddevelopment ofcomputer technology,digital signalprocessingDSPtechnology ina widerange ofapplications in the fieldof communication.This thesisresearch andrealization ofDSP Baseddigital2fsk sendingand receivingsystems.Analysis andprevention ofthis articleis based on theprinciple ofdirect digitalfrequency synthesis2fsk digitalmodulation method;analysis andprevention isbasedonthe differenceof base-band phaseof theFourier transformalgorithm ofbit timingand carrierfrequency offset.Final resultsare asfollows:
1.Enabling digital2fsk digitalmodulation.This articleabout independentDesign ofDSP systemmodulation experiment.By changingthe parametersintheprogram,the successfulimplementation ofa varietyof datasending rate.
1.
4.
4.
4.
4.
1.1FSK的基本原理FSK Frequency-shift keying频移键控-----------利用载频频率变化来传递数字信息,是信息传输中使用得较早的一种调制方式主要优点
1.实现起来较容易
2.抗噪声与抗衰减的性能较好
3.在中低速数据传输中得到了广泛的应用FSK用载波频率的变化来表征被传信息的状态的,被调载波的频率随二进制序列
0、1状态而变化,即载频为时代表传0,载频为时代表传
11.22FSK基本原理A.表达式在2FSK中,载波的频率随二进制基带信号在和/;两个频率点间变化故其表达式为%0=N*4/Fs=12打仪192=[发送数据0时1=N*歹/A=12*32/192=Z发送数据产时、1B.典型波形:-2-2FSK调制解调系统设计由图可见,2FSK信号的波形a可以分解为波形⑹和波形c,也就是说,一个2FSK信号可以看成是两个不同载频的2ASK信号的叠加因此,2FSK信号的时域表达式又可写成%SK(O=£忠-闽)COS(绅+%)+»政-咽)COS@f+4)-n JL n.式中g/-单个矩形脉冲,Ts~脉冲持续时间;0=£r1g「一COS CDct nJ1,概率为P-=fl,概率为1-尸久二[0,概至为l-p an=[o,概率为尸g和a分别是第〃个信号码元1或0的初始相位,通常可令其为零因此,2FSK信号的表达式可简化为0FSK=S]fcos CDJ+s2rcos a2t力(0=X q遥(”叱)$2k)=Z呢g«-乜)
1.
2.12FSK信号的产生方法1采用模拟调频电路来实现信号在相邻码元之间的相位是连续变化的2采用键控法来实现相邻码元之间的相位不一定连续-3-2FSK调制解调系统设计图二信号产生流程图-4-。