ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:3.07MB ,
资源ID:30489950      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30489950.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮通原GMSK实验.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮通原GMSK实验.docx

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

2、器硬件实验板上。5、在通信实验板上,正确使用测试仪表观看GMSK基带信号眼图。(1)用示波器观看GMSK基带信号眼图;(2)用逻辑分析仪观看地址逻辑电路各点波形与其时序关系;(3)用频谱仪观看GMSK调制器基带波形的功率谱。6、按上述要求写出实验报告。二、实验思路1、实验中为获得GMSK信号,在MSK调制前加入高斯滤波器,得到成形信号,再通过h=0.5的MSK调制器即可获得GMSK信号。GMSK是恒包络连续相位调制信号,实验中要通过电路中输入码元以得到基带信号sin(phi)以与cos(phi),于是可以通过计算得到相位phi,进而得到相应的正弦与余弦值,由于一个码元周期内相位信号是连续的,可

3、以通过采样,量化,编码的方法得到相位对应的量化值。2、在Phi的计算中,可以将其作为分段处理,当t选定时,截短g(t)运算后发现,从负无穷到k-3区间内积分值为0.5,在k-2到t内为部分积分需要用公式计算,而超出此X围内积分为0.3、将写好的正弦余弦数据表烧入ROM中,电路实际操作中通过编码规则找到对应逻辑地址存储的数据进行DA转化得到模拟信号4、MATLAB的相位路径:取5位bn作为输入,计算得到相应的phi,然后对bn进行移位,重新得到下一个phi值,一个码元周期取8个点画一小段,10个小段作为一条完整的相位路径;循环40次得到整个的相位路径图。5、MATLAB的眼图仿真:通过产生随机序

4、列数组bn,取每五位一组作为输入,对相应的相位phi进行8次采样并计算相应(正)余弦值在图中画出一次GMSK相位路径,然后通表中的过对数组的移位重复上述过程,连续画40次形成眼图。6、对(正)余弦表中的1024个点每样值进行10bit量化,量化规则(地址)是高五位存储五位bn输入序列的组合,然后两位存储(L)4个象限,低三位用作8bit量化,由于采用均匀量化,且量化间隔较小,其误差很小,所以量化后的眼图的(正)余弦值通过查表得到。7、由于ROM数据位只有8位,有3块ROM,分别用作存储cos(phi)量化值的低八位、sin(phi)量化值的低八位,以与cos和sin的高两位。而且由于ROM每次

5、读八字节,所以每次存储时要间8字节。最后将表写入bin文件,以便实验后续硬件部分的进行。8.最后眼图观察采用了两种方法,分别是烧录bin文件以与通过mif文件的实现,由于一开始bin文件方法的人数较多,所以我在完成第一种方法同时将mif方法也做了出来,第一天验收成功bin文件的方法,第二天将mif的验收也取得成功。三、实验原理分析3.1 GMSK 调制器工作原理和相位路径的计算MSK 调制可以看成是调制指数为 0.5 的连续相位 2FSK 调制器,为了满足移动通信对发送信号功率普的带外辐射要求,在 MSK 调制前加入高斯滤波器。产生 GMSK 信号的原理图如图 1 所示:GMSK是恒包络连续相

6、位调制信号,它的表示式如下:相位路径为其中,g(t)为 BT=0.3 的高斯滤波器矩形脉冲响应。调制指数 h=0.5,为双极性不归零码序列的第 n 个码元,bn 为+1 或-1。高斯滤波器的传递函数为 H(f)为式中,是与高斯滤波器的3dB带宽有关的一个常数。由3dB带宽定义有即所以由此可见,改变,将随之改变;改变,将随之改变。高斯滤波器冲击响应为 h(t)矩形脉冲为式中 u(t)为单位阶跃函数,其表达式为高斯滤波器的矩形脉冲响应为其中可证明将 g(t)截短,对 BT=0.3 的 g(t)经计算,取最短长度为 5T 时,有因而在具体计算时,取 g(t)的截短长度为 5T,就可达到足够精度。BT

7、=0.3 的高斯滤波器矩形脉冲响应如图2所示:图2 BT=0.3 的高斯滤波器矩形脉冲响应在KTt(K+1)T时,图3表示不归零矩阵脉冲序列通过 BT=0.3 的高斯滤波器的相响应示意图。图 3 BT=0.3 的高斯滤波器矩形脉冲序列响应示意图3.2 数字信号处理方法实现 GMSK 调制器在算得后,可得出值。首先将的值离散化,固化在ROM中。由随机数据bn形成 ROM 表的地址,根据地址取出ROM中的相应的基带信号离散值,然后利用D/A将其数模变换成模拟基带信号,再由正交调制器将基带频谱搬移至载频上。本实验的电路原理框图如图 4:图4 用数字化方法实现GMSK的原理框图为得到的余弦表和正弦表,

8、必须将基带信号离散化,即抽样、量化。根据随机信号功率谱估计仿真方法,对不同采样速率、不同量化电平值的GMSK基带信号进行谱估计,最后选用采样速率为每比特抽8个样,每个样值量化编码为10比特(Q=10)。在采样速率fs=8fb=2.166664MHz的情况下,由于存在采样造成的副主瓣,影响了功率谱特性,因此必须在D/A转化后加低通滤波器来抑制高频分量,选用3dB带宽的330KHZ的6阶贝塞尔函数低通滤波器,数/模变换后的基带信号经低通滤波器后的功率谱满足GSM05.05建议的要求。四、实验步骤1、仔细阅读实验原理后,推导的计算公式。2、编写GMSK高斯滤波器的矩形脉冲响应的函数。3、编写计算程序

9、。4、编写计算与的程序,并设计余弦与正弦ROM表。5、将余弦和正弦码表中的每个样值的10bit码字,按照地址逻辑进行存放,并用matlab程序实现6、得到ROM存储的基本波形表,利用信号源产生的伪随机序列经预编码后得到,经过地址逻辑运算由ROM中顺序取出与的离散值,然后利用计算机绘图程序(功能相当于数模变换DAC),得到基带波形的输出,观察仿真眼图。7、把得到的正余弦表进行数字量化,写入BIN文件,下载到硬件系统中,通过示波器观察实际硬件实现的GMSK信号眼图。8、将bin文件用matlab转换为mif文件,并导入到quartus连接好电路生成ROM模块,后烧录入FPGA,观察示波器上的GMS

10、K信号眼图。五、软件实现5.1仿真眼图流程图5:眼图仿真流程5.2 g(t)信号产生首先编写q(t)函数,g(t)通过调用q(t)函数实现,其代码如下:function y=q(x) %调用 erfc 函数实现 Q(t) y=erfc(x./(sqrt(2 )./2;endfunction gt=g(t) %调用 Q(t)函数实现 g(t)T=3.6923*10-6;B=0.3/T;alpha=(1/B)*sqrt ( log(2)/2) ;gt=(1/(2*T)*(q(sqrt(2)*pi*( t- T/2 )/alpha)- q(sqrt(2)*pi*( t+T/2) /alpha );e

11、nd绘制g(t)的函数和结果如下:T=3.6923*10-6;t=linspace(-1,1,20000);for i=1:20000 y(i)=g(t(i)*2.5*T);endplot(t,y),title(BT=0.3 截断长度为 5T 的 g(t),xlabel(时间 t(*2.5T),ylabel(g(t)图6 BT=0.3 高斯滤波器矩形脉冲响应5.3函数的实现与与相位路径的画图计算相位路径与计算余弦正弦值的流程图如下:图7 相位路径正余弦表流程图具体在计算时,将分解为两个部分,其中但在以下 Ph(t,b,L)函数中,参数 t 不是绝对时间,而是绝对时间除以 T 的倍数,如 1/8

12、,1 等数。计算时可写成两个积分,但由于积分的函数一样,只是上下限不同,故程序中写为一个积分,调用了 matlab 中的 quad 函数。函数如下:function phase= Ph(t,b,L) %计算 phi(t);这里 t 是与T的相对时间 T=3.6923*10-6;ph=0; %初始化相位for i=-2:2 %循环叠加求出 phi(0)+delta phi(t),ph=ph+quad(g,-2.5*T,t*T-i*T-T/2)*pi*b(i+3); %此处是phi的积分公式endphase=ph+L*pi/2; %得到相位 phi(t)end下面验证相位路径ph(t,b,l)的正

13、确性,采用绘制出相位路径图方法,代码如下:a=randint(1,1024);%随机产生 0/1 序列 ab=2*a-1;%经预编码和电平变换后得到序列bscreen=40; path=zeros(1,80); %初始路径长度for i=1:screentemp=b(1),b(2),b(3),b(4),b(5); %赋初值LL=0;%LL 表示绝对的 LL=0; %模4后的Lfor k=1:10for j=1/8:1/8:1 path(k-1)*8+j*8)=Ph(j,temp,L)+(LL-L)*pi/2;%加上因为模 4 而带来的相位上的损失endLL=LL+temp (1); %得到连续

14、相位,l 为不模4的L=mod(LL,4); %因为写的函数Phi是要输入模4的L的, 所以也要同时求出for kk=1:4 temp(kk)=temp(kk+1); %移位,得到新的 temp temp(5)=b(i-1)*10+k+5); %给 temp(5)赋值,得到完整的 temp,作为次输入endendplot(path); hold on;endhold off; 由MATLAB画出的图像如下:其中图2是将进入循环时的输入一样情况的路径图,更为明显。图8 相位路径图图9相位路径图5.4正弦表和余弦表的生成计算出的 b(n)有2 种状态,L有4 个象限,在采样速率fs下每比特采样8次

15、,故有1024 个点,代码中对应数组 phi(1024)。代码中用到3重循环,最外层是 32 种状态的循环,第二层是象限的循环,最内层是采样次数的循环。最后用计算出的phi值进行余弦、正弦的运算,得到两个表存正弦和余弦值。其代码如下:clear;phi(1024)=0;%大小为1024的数组用于存放存phibn(5)=0;%T=3.6923*10-6;for i=0:1:31bn=de2bi(i,5);%将十进制转换为二进制bn=seqreverse(bn);for ii=1:5%得到输入序列bnbb(ii)=2*bn(ii)-1;endfor j=0:1:3%4个象限for k=0:1:7%

16、采样8次phi(i*32+j*8+k+1)=Ph(k/8,bb,j);%计算 phi endendendendcos_table=cos(phi);sin_table=sin(phi);5.5量化前的眼图绘制原理为:首先产生足够长的0,1序列,经预测编码与变化后得到bn序列,作为Ph函数的输入,初始化循环次数,象限数,与路径等,设立两级循环计算每次输入情况下的相位值(注意此处连续相位),进行采样八次画出一条正弦值的图,然后移位bn数组与改变其他输入量,重新画出下一次的正弦值的图,循环多次在屏幕上画出一个眼图,其代码实现如下:a=randint(1,1024); %等概率生成 0/1 b=2*a

17、-1;screen=40;%刷屏 screengmsk=zeros(1,80); %初始化 pathtemp=b(1),b(2),b(3),b(4),b(5 );%赋初值%LL 表示绝对的 LL=0; %模4后的L for i=1:screenfor k=1:10for j=1/8:1/8:1 %采样 8 次gmsk(k-1)*8+j*8)=sin(Ph(j,temp,L);%不用加上因为模 4 而带来的相位上的损失endL=mod(L+temp(1),4); %因为写的函数 Phi是要输入模 4的 L 的,所以也要同时求出for kk=1:4 %移位,得到新的 temptemp(kk)=te

18、mp(kk+1);temp(5)=b(i-1)*10+k+5); %给 temp(5)赋值,得到完整的 temp endendplot(gmsk);title(GMSK 基带正弦信号眼图); hold on;endhold off;绘图如下:图10 量化前GMSK基带余弦,正弦信号眼图5.6正(余)弦表的均匀量化与Bin文件的生成对正(余)弦表的量化X围为-1,1,且每个样值量化为 10bit,故量化为1024 个电平。若采用均匀量化,则量化间隔为 ,其误差较小,不足以对整个编解码产生不可恢复的影响,且考虑到其实现简单的因素,所以采用均匀量化,既能满足实验对精确度的要求,又将运算复杂度降低到了

19、能够接受的程度。具体步骤如下:1)对正 (余)弦表中1024个点的每个样值进行10bit 量化。2)实验板上只有插接 8KB 的 ROM,所以 ROM 的数据位只有 8 位,共有 3 块 ROM。存储方式是: ROM1存储量化值的低 8 位;ROM3存储量化值的低8位;ROM2存储和的高两位;由于ROM每次读8位,所以存储也要按此方式,其代码如下M=1024; %量化delta=2/M; quancos=zeros(1,8*1024);quansin= zeros(1,8*1024) ; quansc=zeros(1,8*1024);for n=1:1024qcos=floor(cos(phi

20、(n)+1)/delta);%量化后的 cosqsin=floor(sin(phi(n)+1)/delta);%量化后的 sincosh=floor(qcos/256);%cos 高两位cosl=floor(mod(qcos,256);%cos 低 8 位quancos(n*8-7)=cosl; sinh=floor(qsin/256 );sinl= floor(mod(qsin,256); quansin(n*8-7)=sinl;endcosfile= fopen(cosl.bin,w); %写入bin文件fwrite(cosfile,quancos);fclose(cosfile);sin

21、file= fopen(sinl.bin,w);fwrite(sinfile,quansin);fclose(sinfile);scfile= fopen(sc.bin,w); fwrite(scfile,quansc); fclose(scfile );图11 SIN低八位bin表图12 COS低八位bin表图13 SIN和COS的高位5.7量化后的眼图绘制原理与量化前眼图原理一样,区别在于绘制时正弦和余弦值要通过查表得到,其代码实现和绘制眼图如下:M=1024;delta=2/M; cos_table_lh(1024)=0;sin_table_lh(1024)=0;for n=1:1024

22、qcos=floor(cos(phi(n)+1)/delta);%量化后的 cos cos_table_lh(n)=qcos*delta-1;qsin=floor(sin(phi(n)+1)/delta);%量化后的sin sin_table_lh(n)=qsin*delta-1;enda=randint(1,1024); %等概率生成 0/1b=2*a-1;screen=40;%刷屏 screengmsk=zeros(1,80); %初始化 pathtemp=b(1),b(2),b(3),b(4),b(5);%赋初值L=0; %模4后的Lc(5)=0;for i=1:screen for k

23、=1:10temp(5)=b(i-1)*10+k+5); %给 temp(5)赋值,得到完整的 tempfor j=0:1:7 %采样 8 次for x=1:5if(temp(x)=-1) c(x)=0;else c(x)=1;endendn=16*c(1)+8*c(2)+4*c(3)+2*c(4)+c(5)+1;%第 n个状态gmsk(k-1)*8+j+1)=cos_table_lh(n-1)*32+L*8+j+1); % endL=mod(L+temp(1),4);%因为写的函数 Phi是要输入模 4 的L 的,所以也要同时求出for kk=1:4 %移位,得到新的 temptemp(kk

24、)=temp(kk+1);endendplot(gmsk);title(量化后 GMSK 基带余弦信号眼图); hold on;end hold off;图14量化后 GMSK 基带余弦信号、正弦信号图5.8 mif文件的生成for i=1:8192 data(i)=quansc(i);endfid=fopen(/Users/zhouliang/Desktop/GMSK/sc.mif,w);fprintf(fid,WIDTH=8;n);fprintf(fid,DEPTH=1024;n); %指定数值的个数,即ROM的深度(本工程用256个)fprintf(fid,ADDRESS_RADIX=U

25、NS;n); %指定地址的数制(UNS:无符号数。推荐UNS)fprintf(fid,DATA_RADIX=DEC;n); %指定数据基数(DEC:十进制(有符号数),推荐DEC)fprintf(fid,CONTENT BEGINn); %固定格式 %在读不同的文件时需要改变number=0:8191; data_temp = number;data; fprintf(fid, %d:%d; n, data_temp); fprintf(fid,END;n); %固定格式fclose(fid);六、硬件部分6.1地址逻辑设计地址逻辑可以由伪随机序列an经预编码之后得到bn,再经地址逻辑运算形成

26、,电路设计可分为时钟分频,伪随机序列的产生,地址逻辑的生成3部分。预编码与10位地址码产生电路的原理为:图15 预编码与 10 位地址码产生电路原理图由图中可以看出,实验板上的 13MHz 晶振产生的频率经过分频器后可产生信号 A5、A4、A3 的频率,分别为fb、2fb、4fb,fb=270.833KHz 为码元速率。 fb 作为 M 序列发生器的输入时钟,产生伪随机序列 DATA。在上图的下方,由 DATA 经过两个 D 触发器 74LS74(状态方程 Qn+1=D),延时一个周期 T 后与 DATA 的下一个值相异或,完成预编码 dn=anan-1之后,dn 在经 74LS74 得到 b

27、n(如图中部),由端口 B 进入移位寄存器 74LS164。74LS164 是一种 8 位移位寄存器芯片,只能单向移位,在 A 端口取“1”时,移位方式是:B-Q0,Q0-Q1, Q1-Q2, Q2-Q3, Q3-Q4,分别代表 A8,A9,A10,A11,A12。Q4 移出后进入图中加减计数器前面的 D 触发器,输出 bk-3 作为加减计数器 74LS169 的输入。74LS169 是一种可预置 4 位二进制可逆计数器,这里只用到了输出的低两位。根据芯片手册,当 bk-3=1 时,为加计数;当 bk-3=0 时,为减计数。这样,就可以控制相位在 0011 之间变化。此部分电路地址逻辑电路框图

28、如图所示图16地址逻辑电路框图CLK是时钟脉冲发生器,DATA为伪随机序列输出信号;A5、A4、A3为8个采样值的逻辑地址码;A6、A7为两位象限逻辑地址码,对应L从0到3;A8、 A9、A10、A11、A12为信息地址码。6.2 CLOCKMGDF模块时钟分频,生成8个抽样值逻辑地址码,并输出伪随机序列DATA;码元速率fb为270.833khz,抽样速率为8fb。抽样地址A5,A4,A3从000到111变化,因此A5,A4,A3频率依次为fb,2fb,4fb查表可得(223-1)M 序列的反馈函数为。同时为防止进入全 0 状态,当 Q 全零时转入 000001状态,继续循环。LIBRARY

29、 IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CLOCKMGDF IS PORT ( CLK:IN STD_LOGIC; A3:OUT STD_LOGIC; A4:OUT STD_LOGIC; A5:OUT STD_LOGIC; DATA:OUT STD_LOGIC ); END ENTITY CLOCKMGDF; ARCHITECTURE M OF CLOCKMGDF IS SIGNAL TMP:STD_LOGIC_VECTOR(

30、2 DOWNTO 0);-暂存000111变化SIGNAL Q:STD_LOGIC_VECTOR(22 DOWNTO 0); BEGIN P1:PROCESS(CLK) BEGIN IF (CLKEVENT AND CLK=0) THEN TMP= TMP+1; IF Q(22 DOWNTO 0)=000000 THEN Q(0)=1; -防止进入全零状态 ELSE Q=Q(21 DOWNTO 0)&(Q(4)XOR Q(22); END IF; DATA=Q(22);-产生伪随机序列 A3=TMP(0); -频率4fb A4=TMP(1); -频率2fb A5=TMP(2); -频率fb END IF; END PROCESS P1; END M;仿真波形为图17 CLOCKMGDF模块仿真波形图6.3 ADDRLOGIC模块

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1