2014 GMSK实验报告_第1页
2014 GMSK实验报告_第2页
2014 GMSK实验报告_第3页
2014 GMSK实验报告_第4页
2014 GMSK实验报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、通信原理实验报告“GMSK调制器”系统实验指导老师 学生姓名班级学号班内序号联系电话电子邮件 报告日期一、实验内容1、 了解GMSK调制器工作原理,推导GMSK信号相位路径的计算公式,掌握GMSK调制器数字化实现的原理。2、 掌握GMSK调制器数字化、实现地址逻辑的工作原理,用可编程逻辑器件实现地址逻辑的设计,并仿真各点波形,分析检验其时序逻辑关系。3、 了解GMSK相位路径的编程流程图,并用计算机编出相位路径(t)的余弦及正弦表。4、 为了检验所编码表的正确性,可进一步利用计算机软件检验从上述码表得出的GMSK基带波形的眼图与理论计算是否一致,若两者一致,说明所编码表正确,可将它写入EPRO

2、M中,并将EPROM片子插在GMSK调制器硬件实验板上。5、 在通信实验板上,正确使用测试仪表观看GMSK基带信号眼图。(1)用示波器观看GMSK基带信号眼图;(2)用逻辑分析仪观看地址逻辑电路各点波形及其时序关系;(3)用频谱仪观看GMSK调制器基带波形的功率谱。6、 按上述要求写出实验报告。二、实验原理1、 GMSK调制器工作原理及相位路径的计算 MSK调制可以看成调制指数h=0.5的2FSK调制器,为了满足移动通信对发送信号功率谱的带外辐射要求,在MSK调制前加入高斯滤波器,因而GMSK具有恒包络,连续相位的特点,其旁瓣衰减比MSK更快,频谱利用率更高。产生GSMK信号的原理图如图一所示

3、。图1 GMSK信号的原理图GMSK信号为:st=cosct+t=costcosct-sintsinct相位路径为:t=2h-tn=-bng(-nT)d其中,g(t)为BT=0.3高斯滤波器矩形脉冲响应,调制指数h=0.5,bn为双极性不归零码序列的第n个码元,bn为+1或-1。高斯低通滤波器的传输函数为 式中,是与高斯滤波器的3dB带宽有关的一个常数。由3dB带宽定义有 即 所以 由此可见,改变将随之改变。滤波器的冲激响应为由式看出,h(t)不是时限的,但它随t2按指数规律迅速下降,所以可近似认为它的宽度是有限的。由于它的非时限性,相邻脉冲会产生重叠。如果输入为双极性不归零矩形脉冲序列s(t

4、): 式中, 其中,为码元间隔。高斯预调制滤波器的输出为式中,高斯滤波器矩形脉冲响应为 gt=xt*ht=12TQ2at-T2-Q2at+T2其中Qt=12texp-x22dx经计算,BTb=0.3的高斯滤波器的g(t)的积分面积为1/2,且满足以下条件-2.5T2.5Tgd12 gt0 t>2.5Tb因而在具体计算Q(t)时,取g(t)的截短长度为5T,就可达到足够精度。BT=0.3的高斯滤波器矩形脉冲响应如图2图2 BT=0.3时高斯滤波器矩形脉冲响应在kTtk+1T期间,BT=0.3的GMSK的相位为:t=k-2k+2bnn-2Ttg-nT-T2d+L2L=n=-k-3bn (取模

5、4)具体计算如下:在kTtk+1T时t=kT+tkT=k-2k+2bnn-2TkTg-nT-T2d+L2t= =k-2k+2bnkTtg-nT-T2d图三表示不归零矩形脉冲系列通过BT=0.3的高斯滤波器的响应示意图图3 BT=0.3不归零矩形脉冲系列的高斯滤波器的响应示意图2、数字信号处理方法实现GMSK调制器在算得t后,即可算出cost及sint值。在工程上,首先将cost及sint离散化,制成表,固化在ROM中。由随机数据bn形成ROM表的地址,根据地址取出ROM中相应的基带信号离散值,然后利用D/A将其数模变换成模拟基带信号cost和sint,再由正交调制器将基带频谱搬移至载频上。本实

6、验的电路原理如图4所示图4 实验电路原理图为得到t的余弦表和正弦表,必须将基带信号cost和sint离散化,即抽样、量化。根据随机信号功率谱估计仿真方法,对不同采样速率、不同量化电平值的GMSK基带信号进行谱估计,最后选用采样速率为每比特抽8个样,每个样值量化编码为10比特(Q=10)。在采样速率f=8fb=8 × 270.833khz的情况下,由于存在采样造成的副主瓣,影响了功率谱特性,因此必须在D/A转化后加低通滤波器来抑制高频分量,选用3dB带宽的330KHZ的6阶贝塞尔函数低通滤波器,数/模变换后的基带信号经低通滤波器后的功率谱满足GSM05.05建议的要求。三、系统设计1.

7、软件部分 1)、 设计相位路径的正弦表和余弦表 借助matlab编程来实现正余弦表的设计,流程图如图5:图5 获取正余弦表流程图a) 首先是g(t)函数的产生了解到matlab里面的自带有互补误差函数,其与互补误差函数如下:Q(t)=12(tx)再根据g(t)的表达式编写相应的函数,以及相应的时间即可,原码如下:T=1/270833;B=0.3/T;a=1/B*sqrt(log(2)/2);t=linspace(-2.5*T,2.5*T,1000); %在-2.5T,2.5T内取1000个点gt=1/(2*T)*1/2*(erfc(pi/a*(t-T/2)-erfc(pi/a*(t+T/2);

8、h=plot(t,gt);set(h,'linewidth',2); %设置线宽title(' BT=0.3时截短长度为5T的g(t)');xlabel('时间t(*2.5T)');ylabel('g(t)');所得波形如图6:图6 g(t)函数b) 码表的得出借助matlab中的quad积分函数,按照图5的流程,计算相位路径t,得到cost及sint,分别用一个1*1024的矩阵来表示,再存于一个mat文件。源代码如下:clc; %余弦表及正弦表生成clear;T=1/270833;B=0.3/T;a=sqrt(log(2)/2

9、)/B;% t=linspace(-2.5*T,2.5*T,1000);g=(t)(0.5*erfc(pi*(t-T/2)/a)-0.5*erfc(pi*(t+T/2)/a)/(2*T); %g(t)% G=(0.5*erfc(pi*(t-T/2)/a)-0.5*erfc(pi*(t+T/2)/a)/(2*T);% plot(t,G);b=zeros(32,5); %32行5列全0矩阵,5位地址逻辑for n=0:31 %将n转化为二进制 m=n; for j=4:-1:1 %高位到低位 if floor(m/2j)=1 b(n+1,5-j)=1,m=m-2j,end; end; b(n+1,

10、5)=m; %第五列 for i=1:5 if b(n+1,i)=0 b(n+1,i)=-1; %如果为0则让其为负1,对应地址逻辑,预编码 end; end;end;tempa=; %缓存数据数组for n=0:31 %最外层状态数n for L=0:3 %象限计数 tempc=0; %缓存变量 for j=-2:2 tempc=tempc+pi*b(n+1,j+3)*quad(g,-2.5*T,-j*T-T/2); %第一部分积分 end tempc=tempc+L*pi/2; for i=0:7 %采样8个样值 delta=0; for j=-2:2 delta=delta+pi*b(n

11、+1,j+3)*quad(g,-j*T-T/2,i*T/8-j*T-T/2); end tempb=tempc+delta; tempa=tempa,tempb; end endendpa=tempa;s=sin(tempa); %正弦余弦值,1*1024的矩阵c=cos(tempa); save('pa.mat','pa');save('sin.mat','s'); %存表save('cos.mat','c');c) 相位路径的验证编写的时候注意要加上因为求模而带来的损失,原码如下close al

12、l;%相位路径仿真p; %将ROM表导入 bpa=zeros(1,80); %一次显示的数据10*8m=223-1; %伪随机序列个数seq=round(rand(1,m); %产生伪随机序列an=0,seq(1:4); %取4为随机码k=5; %计数TIMS=40; %显示次数t=1:80; figure(1);LL=0; for i=1:TIMS for j=0:9 %每10个比特时间显示一次 an=an(2:5),seq(k); %取下一位信息码 n=an(1)*16+an(2)*8+an(3)*4+an(4)*2+an(5); %转换为10进制 if(k=5) L=0; %初始为0 e

13、lse seq(k-5)=2*seq(k-5)-1; %正1和负1,预编码 LL=LL+seq(k-5); %新的L的值 L=mod(LL,4); %模4 end; num=n*32+L*8; %转换到10进制,前面7位 for n=0:7 %每比特时间采样8个点 bpa(j*8+n+1)=pa(num+n+1)+(LL-L)*pi/2; %取ROM中的值并转换 end; k=k+1; end; plot(t,bpa); hold on; title('相位路径'); end;、图7 相位路径仿真图可以知道相位路径是连续的。d) 仿真眼图得到ROM存储的基本波形表后,利用信号源

14、产生的伪随机序列an经预编码后得到bn,经过地址逻辑运算由ROM中顺序取出cost及sint的离散值,然后利用计算机绘图程序(功能相当于数模变换DAC),得到基带波形的输出,观察仿真眼图。流程图如图8所示图8 仿真眼图流程图A、 开辟空间存入ROM表以及伪随机序列。B、 根据所用的ROM表确定采样频率fs=8fb(fb=270.833KHz), 即一个码元时间内有8个抽样值,每样值的量化电平是10,并设初始相位是0,即起始地址是0000000000。C、 确定读取信号的数目为10*TIMES,即每十个码元时间的波形显示于同一屏幕。共显示TIMES次。D、 由bk-2,bk-1,bk,bk+1,

15、bk+25个码元及象限L形成地址逻辑获得ROM表中的7位地址;E、 再取三位地址码,顺序取出i=0,1,2,3,4,5,6,7个抽样量化值,由10位地址逻辑找到ROM中基带波形的位置,将其转换成实际值,存入一个数据文件用于眼图仿真,共有10*TIMES*n个值(n=8);F、 根据产生眼图的原理,将每次扫描结果叠加而成,删除程序中清屏幕命令,即可看到眼图;原码如下:close all;%仿真p; %将ROM表导入 bcos=zeros(1,80); %一次显示的数据10*8bsin=zeros(1,80);bpa=zeros(1,80);m=223-1; %伪随机序列个数seq=round(r

16、and(1,m); %产生伪随机序列an=0,seq(1:4); %取4为随机码k=5; %计数TIMS=40; %显示次数t=1:80; figure(1);% figure(2); for i=1:TIMS for j=0:9 %每10个比特时间显示一次 an=an(2:5),seq(k); %取下一位信息码 n=an(1)*16+an(2)*8+an(3)*4+an(4)*2+an(5); %转换为10进制 if(k=5) L=0; %初始为0 else seq(k-5)=2*seq(k-5)-1; %正1和负1,预编码 L=L+seq(k-5); %新的L的值 end; L=mod(L

17、,4); %模4 num=n*32+L*8; %转换到10进制,前面7位 for n=0:7 %每比特时间采样8个点 bcos(j*8+n+1)=c(num+n+1)+1; %取ROM中的值并转换 bsin(j*8+n+1)=s(num+n+1)+1; bpa(j*8+n+1)=pa(num+n+1); end; k=k+1; end;% subplot(3,1,1); h1=plot(t,bcos); set(h1,'linewidth',1); hold on; title('cos眼图'); % subplot(3,1,2);% h2=plot(t,bsi

18、n);% hold on;% title('sin眼图'); end;仿真图如下所示:图9 一次扫描图10 40次扫描e) Bin文件的生成将正余弦表进行10bit单极性量化,量化范围为0-1023。由于选用的芯片ROM为8K。根据硬件逻辑地址,量化后的正余弦高两位、低八位分别放在不同的芯片里,所以需要三个BIN文件。两个BIN文件写入cos和sin的低八位,一个BIN文件写入cos和sin的高两位,sin在前,cos在后。由于硬件电路图是用了A12A3的信号,所以A2、A1、A0是没有用的,在写入BIN文件前需要在每两个量化结果之间插入7个0作为低位,即对每一个BIN文件进行

19、扩容,否则会出现眼图无法正常显示的现象。原码如下:cosbin=zeros(10,1024);sinbin=zeros(10,1024);p;c1=(c+1)*511.5; %表中的值提出来并且量化值为0-1023c2=(s+1)*511.5;for i=1:1024 m=c1(i); for j=9:-1:1 if floor(m/2j)=1 cosbin(10-j,i)=1;m=m-2j;end; %量化为10bit end; cosbin(10,i)=floor(m);end;for i=1:1024 m=c2(i); for j=9:-1:1 if floor(m/2j) sinbin

20、(10-j,i)=1;m=m-2j;end; end; sinbin(10,i)=floor(m);end;coslow=zeros(1,1024);sinlow=zeros(1,1024);sincos=zeros(1,1024);for i=1:1024 %生成3片ROM coslow(i)=cosbin(3,i)*27+cosbin(4,i)*26+cosbin(5,i)*25+cosbin(6,i)*24+cosbin(7,i)*23+cosbin(8,i)*22+cosbin(9,i)*2+cosbin(10,i); %低8位 sinlow(i)=sinbin(3,i)*27+sin

21、bin(4,i)*26+sinbin(5,i)*25+sinbin(6,i)*24+sinbin(7,i)*23+sinbin(8,i)*22+sinbin(9,i)*2+sinbin(10,i);sincos(i)=sinbin(1,i)*27+sinbin(2,i)*26+cosbin(1,i)*2+cosbin(2,i); %高两位end;coslowbin=zeros(1,1024*8);sinlowbin=zeros(1,1024*8);sincosbin=zeros(1,1024*8);for i=1:1024 %由1K向8K扩容 coslowbin(i*8-7)=coslow(i

22、); sinlowbin(i*8-7)=sinlow(i); sincosbin(i*8-7)=sincos(i);end;fidcos = fopen('cosbin.bin','w');fwrite(fidcos,coslowbin);fidsin = fopen('sinbin.bin','w');fwrite(fidsin,sinlowbin);fidsincos = fopen('sincos.bin','w');fwrite(fidsincos,sincosbin);fclose(

23、9;all');生成的bin文件如下图所示:图11 sin和cos高两位的bin文件图12 cos低8位的bin文件图13 sin低8位的bin文件2.硬件部分a) 设计地址逻辑 由实验原理分析可知,地址逻辑可由伪随机序列an经预编码后得到bn,再经地址逻辑运算形成。电路设计可分为时钟分频、伪随机序列的产生、地址逻辑的生成3部分。其中时钟分频和伪随机序列产生可由VHDL语言实现,地址逻辑的生成可由硬件之间的连线实现。利用Quartus软件环境完成硬件仿真。利用Quartus软件得到的地址逻辑电路图如图14。图14 地址逻辑电路图图14中clockmgdf器件是时钟脉冲发生器以及伪随机序

24、列发生器;DATA为伪随机输出信号,A5、A4、A3为8个采样值的逻辑地址码,分别为fb,2fb,4fb,fb=270.833kHz为码元速率;A6、A7为两位象限逻辑地址码,对应L从0到3;A8、A9、A10、A11、A12为5为信息地址码。clockmgdf时钟脉冲发生器的VHDL代码为:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clockmgdf isport(CLK:in std_logic;A3:out std_logic;A4:out std_logic;A5:ou

25、t std_logic;DATA:out std_logic);end;architecture a of clockmgdf issignal adr:std_logic_vector(2 downto 0);signal m:std_logic_vector(22 downto 0):= (others=> '0');signal n:integer range 0 to 7;beginprocess(CLK)beginif (CLK'event and CLK='1') thenif n = 7 thenn <= 0;if m = 0

26、then m(0) <= '1'elsem <= m(21 downto 0) & (m(0) xor m(22);end if;elsen <= n + 1;end if;adr <= adr + 1;end if;end process;A3 <= adr(0);A4 <= adr(1);A5 <= adr(2);DATA <= m(0);end;addrlogic原码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

27、entity addrlogic isport(DATA:in std_logic;A5:in std_logic;A6:out std_logic;A7:out std_logic;A8:out std_logic;A9:out std_logic;A10:out std_logic;A11:out std_logic;A12:out std_logic);end;architecture a of addrlogic issignal DataTemp:std_logic_vector(4 downto 0):="00000"signal L:std_logic_vec

28、tor(1 downto 0):="00"beginprocess(A5)beginif (A5'event and A5='0') thenif(DataTemp(4)='0') thenL<=L-1;elseL<=L+1;end if;DataTemp <= DataTemp(3 downto 0) & DATA;end if;end process;A6<= L(0);A7<= L(1);A8<= DataTemp(0);A9<= DataTemp(1);A10<= Dat

29、aTemp(2);A11<= DataTemp(3);A12<= DataTemp(4);end;b) 输出波形计算机仿真地址逻辑的输出波形如图15所示图15 地址逻辑输出波形c) 管脚分配下载时其管脚分配如图16所示:地址线A12A11A10A9A8A7A6A5A4A3管脚号46686765646361604948图16 地址逻辑管脚分配d) 下载及调试1) 用编程器将量化后的码表的二进制bin数据文件下载到ROM中,在将下载成功的芯片插在GMSK通信实验板上图17所示,注意芯片的位置和方向;图17 通信实验板2) 将GMSK通信实验板上的JTAG接口与计算机相连;3) 将双路稳压电源调整为±16V;4) 接通电源,用示波器观察余弦cost经过低通滤波器LPF后的输出波形,与Matlab软件仿真的眼图比较。5) 观察眼图,从示波器上观察到了眼图,从眼图的张开程度可观察码间干扰和加性噪声对接收基带信号波形的影响,从而可估计出系统的性能。若不经过低通滤波器直接观察眼图,可以明显看到波形上的锯齿,说明波形存在高频部分,主要是由于采样和量化误差引起的。在经过低通滤波之后,波形平滑很

温馨提示

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

最新文档

评论

0/150

提交评论