通信原理GMSK实验_第1页
通信原理GMSK实验_第2页
通信原理GMSK实验_第3页
通信原理GMSK实验_第4页
通信原理GMSK实验_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、北京邮电大学通信原理实验实验报告实验名称:高斯最小移频键控(GMSK)调制器实验学院: 信息与通信工程学院 班级: 姓名: 联系方式:邮箱: 学号: 教师: 韩玉芬 目录一、实验目的3二、实验内容3三、实验原理31、 GMSK调制器工作原理及相位路径的计算32、数字信号处理方法实现GMSK调制器5四、实验步骤6五、系统设计61、总体设计62、软件部分73、硬件部分15六、故障与解决方法19七、心得体会20 八、参考文献.21一、 实验目的1、 通过利用数字基带处理方法来实现高斯最小移频键控(GMSK)调制器算法的基带硬件实验,对通信系统硬件实现有新的认识及新的思路。2、 掌握MAX+plusI

2、I 及可编程器件的应用。3、 学会C语言或Matlab软件进行GMSK相位路径及仿真眼图的编程。4、 正确使用测试仪表。5、 理论联系实际,培养科学实验态度,提高实际动手能力。二、 实验内容1、 了解GMSK调制器工作原理,推导GMSK信号相位路径的计算公式,掌握GMSK调制器数字化实现的原理。2、 掌握GMSK调制器数字化、实现地址逻辑的工作原理,用可编程逻辑器件实现地址逻辑的设计,并仿真各点波形,分析检验其时序逻辑关系。3、 了解GMSK相位路径的编程流程图,并用计算机编出相位路径的余弦及正弦表。4、 为了检验所编码表的正确性,可进一步利用计算机软件检验从上述码表得出的GMSK基带波形的眼

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

4、瓣衰减比MSK更快,频谱利用率更高。产生GSMK信号的原理图如下其中,g(t)为BT=0.3高斯滤波器矩形脉冲响应,调制指数h=0.5,bn为双极性不归零码序列的第n个码元,bn为+1或-1。高斯低通滤波器的传输函数为 式中,是与高斯滤波器的3dB带宽有关的一个常数。由3dB带宽定义有 即 所以 由此可见,改变将随之改变。滤波器的冲激响应为由式看出,不是时限的,但它随按指数规律迅速下降,所以可近似认为它的宽度是有限的。由于它的非时限性,相邻脉冲会产生重叠。如果输入为双极性不归零矩形脉冲序列: 式中, 其中,为码元间隔。高斯预调制滤波器的输出为当取不同值时,高斯滤波器的矩形脉冲响应g(t)如下图

5、所示。经计算,BTb=0.3的高斯滤波器的的积分面积为1/2,且满足以下条件所以,对于BT=0.3的高斯滤波器,取g(t)的截短长度为5T来计算GMSK信号的相位,就可达到足够精度。由于g(t)在5T时间区间呢的积分面积为1/2,所以BT=0.3的GMSK相位路径计算大为化简。2、数字信号处理方法实现GMSK调制器在算得后,即可算出及值。在工程上,首先将及离散化,制成表,固化在ROM中。由随机数据形成ROM表的地址,根据地址取出ROM中相应的基带信号离散值,然后利用D/A将其数模变换成模拟基带信号和,再由正交调制器将基带频谱搬移至载频上。本实验的电路原理如图所示。 在上图中,虚框内表示地址逻辑

6、,功能是取出所需要的采样量化点。ROM表中存放的是1024个点的余弦值和正弦值。DAC是模数转换,即将1024个数据进行量化,可以通过计算机绘图plot函数实现。由于存在着采样造成的副主瓣,影响了功率谱特性,因此必须在D/A后加低通滤波器来抑制高频分量,减少副主瓣对功率谱的影响。选用在上图中,虚框内表示地址逻辑,功能是取出所需要的采样量化点。ROM表中存放的是1024个点的余弦值和正弦值。DAC是模数转换,即将1024个数据进行量化,又计算机绘图程序实现。LPF是低通滤波器,可抑制高频分量,减少副主瓣对功率谱的影响。选用3dB带宽为330kHz的6阶贝塞尔低通滤波器,数模变换后的基带信号经低通

7、滤波器后的功率谱满足GSM05.05建议的要求。四、 实验步骤1、 仔细推导g(t)、(t)的计算公式。2、 自学Matlab软件。3、 用Matlab编写GMSK高斯滤波器的矩形脉冲响应g(t)的函数。4、 绘制g(t)函数验证程序的正确性。5、 用Matlab编写计算(t)的程序。6、 用Matlab编写计算余弦和正弦的程序,并设计余弦和正弦ROM表。7、 将余弦及正弦码表中每样值的10bit码字,按照地址逻辑进行存放。8、 用预编码后得到的随机序列表,经过地址逻辑运算由ROM中顺序取出及的离散值,然后利用计算机绘图程序(功能相当于数模变换DAC),得到基带波形的输出,观察仿真眼图。9、

8、把得到的正余弦表进行数字量化,写入BIN文件,下载到硬件系统中,通过示波器观察实际硬件实现的GMSK信号眼图。五、 系统设计1、 总体设计总体结构图:VHDL硬件设计量化生成BIN文件产生高斯滤波器冲击响应g(t)实验板测试计算相位路径(t)MATLAB仿真眼图MATLAB绘制随机序列的功率谱总体流程图:2、软件部分(1)g(t)函数的产生利用erfc()函数以及相应的参数设置得到的表达式,然后作图可以得到的图像。代码:function f = g( t )%计算g(t)clc;clear;T=1/270833;B=0.3/T;a=1/B*sqrt(log(2)/2);t=linspace(-

9、2.5*T,2.5*T,1000);f=1/(2*T)*1/2*(erfc(pi/a*(t-T/2)-erfc(pi/a*(t+T/2);plot(t,f);title(' BT=0.3时,高斯滤波器矩形脉冲响应g(t)');xlabel('t(限定在5T范围内)');ylabel('g(t)');得到高斯滤波器冲击响应如下图所示:(2)相位路径(t)与正余弦码表的产生思路:首先产生32种由5位0、1组合的序列b,既可以将所有情况罗列并一一赋值,也可以通过循环实现,代码选择的是后者;其次是计算(t)的值,记为pb。(t)分为两部分:(KT)与,将

10、所有pb添加至pa数组中;最后保存sin.mat和cos.mat。代码:clc;clear;T=1/270833;B=0.3/T;a=sqrt(log(2)/2)/B;t=linspace(-2.5*T,2.5*T,1024);g=(t)(0.5*erfc(pi*(t-T/2)/a)-0.5*erfc(pi*(t+T/2)/a)/(2*T); b=zeros(32,5); % 32种组合 每种组合中5位for n=0:31 %生成数组b,内容是32组01组合 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

11、+1,5)=m; for i=1:5 if b(n+1,i)=0 b(n+1,i)=-1; end; end;end; pa=;for n=0:31 for L=0:3 fai=0; for j=-2:2 fai=fai+pi*b(n+1,j+3)*quad(g,-2.5*T,-j*T-T/2); end fai=fai+L*pi/2; %计算kT处的fai值 for i=0:7 delta=0; for j=-2:2 delta=delta+pi*b(n+1,j+3)*quad(g,-j*T-T/2,i*T/8-j*T-T/2); end %计算delta的fai值 pb=fai+delta

12、; pa=pa,pb; %将pb添加入pa数组中 end endend%figure(2);%plot(t,pa);s=sin(pa); %正弦表c=cos(pa); %余弦表save('sin.mat','s');save('cos.mat','c');(3)眼图的绘制思路:随机产生码元序列,从b数组中取出并换算为十进制,根据得到的十进制数,从ROM中读取出连续的八位离散数值通过计算机绘图(DAC),观察仿真眼图。说明:A、 开辟空间存入ROM表以及伪随机序列。B、根据所用的ROM表确定采样频率, 即一个码元时间内有8个抽样值,

13、每样值的量化电平是10,并设初始相位是0,即起始地址是0000000000。C、确定读取信号的数目为10*TIMES,即每十个码元时间的波形显示于同一屏幕。共显示TIMES次。D、由bk-2,bk-1,bk,bk+1,bk+25个码元及象限L形成地址逻辑获得ROM表中的7位地址;E、再取三位地址码,顺序取出i=0,1,2,3,4,5,6,7个抽样量化值,由10位地址逻辑找到ROM中基带波形的位置,将其转换成实际值,存入一个数据文件用于眼图仿真,共有10*TIMES*n个值(n=8);F、根据产生眼图的原理,将每次扫描结果叠加而成,删除程序中清屏幕命令,即可看到眼图;代码:p; m=223-1;

14、 %伪随机序列个数TIMS=500; %显示次数k=5;t=1:80;bcos=zeros(1,80);bsin=zeros(1,80);seq=round(rand(1,m); %产生伪随机序列an=0,seq(1:4); %初始4位随机码,最开始0或1关系到L初始值%an=1,seq(1:4);figure(1); for i=1:TIMS for j=0:9 %一屏显示的码元时间,五个眼 an=an(2:5),seq(k); %产生随机组合 n=an(1)*16+an(2)*8+an(3)*4+an(4)*2+an(5); %将随机组合换为十进制 if(k=5) L=0; %初始化L e

15、lse seq(k-5)=2*seq(k-5)-1; L=L+seq(k-5); end; k=k+1; L=mod(L,4); num=n*32+L*8; for n=0:7 bcos(j*8+n+1)=c(num+n+1)+1; %取ROM中的余弦值 bsin(j*8+n+1)=s(num+n+1)+1; %取ROM中的正弦值 end; end; plot(t,bcos); hold on; title('cos眼图');end;眼图仿真波形图: (4)量化并生出BIN文件思路:1. 将正余弦表进行10bit单极性量化,量化范围为0-1023。2. 芯片ROM为8K,量化后

16、的正余弦高两位、低八位分别放在不同的芯片里,需要三个BIN文件,分别是cosbin,sinbin,cossin。3. 硬件结构中A2、A1、A0是没有用的,在写入BIN文件前需要在每两个量化结果之间插入7个0作为低位,即对每一个BIN文件进行扩容,这点造成了存储空间的很大浪费。代码:cosbin=zeros(10,1024);sinbin=zeros(10,1024);p; c1=(c+1)*511.5; %值为0-1023c2=(s+1)*511.5;for i=1:1024 %量化cos m=c1(i); for j=9:-1:1 if floor(m/2j)=1 cosbin(10-j,

17、i)=1;m=m-2j;end; end; cosbin(10,i)=floor(m);end;for i=1:1024 %量化sin m=c2(i); for j=9:-1:1 if floor(m/2j) sinbin(10-j,i)=1;m=m-2j;end; end; sinbin(10,i)=floor(m);end; coslow=zeros(1,1024); %写入三个数组sinlow=zeros(1,1024);cossin=zeros(1,1024);for i=1:1024 coslow(i)=cosbin(3,i)*27+cosbin(4,i)*26+cosbin(5,i

18、)*25+cosbin(6,i)*24+cosbin(7,i)*23+cosbin(8,i)*22+cosbin(9,i)*2+cosbin(10,i); sinlow(i)=sinbin(3,i)*27+sinbin(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); cossin(i)=sinbin(1,i)*27+sinbin(2,i)*26+cosbin(1,i)*2+cosbin(2,i);end; coslowbin=zeros(1,1024*

19、8); %产生扩容后的数组,地址结构决定sinlowbin=zeros(1,1024*8);cossinbin=zeros(1,1024*8);for i=1:1024 coslowbin(i*8-7)=coslow(i); sinlowbin(i*8-7)=sinlow(i); cossinbin(i*8-7)=cossin(i);end;fidcos = fopen('cosbin.bin','w');fwrite(fidcos,coslowbin);fidsin = fopen('sinbin.bin','w');fwrit

20、e(fidsin,sinlowbin);fidcossin = fopen('cossin.bin','w');fwrite(fidcossin,cossinbin);fclose('all');产生的BIN文件如下图所示: cos和sin的高两位合成的BIN文件 cos低八位的BIN文件 sin低八位的BIN文件 (5) 眼图的功率谱密度思路:仿真功率谱密度使用伪随机序列提供地址逻辑,最后生成的值进行傅立叶变换,再平方,运用对数刻度将其plot即可仿真功率谱密度。其中的傅里叶变换依靠fft方法。代码:p;fs=2.166664*106; %采样

21、速率(Hz)m=27; %采样点数T=(m-4)/270833; %时域范围(时域点数)df=1/T;f=-fs/2+df:df:fs/2; %频域范围(频域点数) bn=round(rand(1,m);tmp=0,bn(1:4); %b(k-2)至b(k+2)数据暂存器k=5;bcos=;for i=1:m-4 %bn取值范围为1至m tmp=tmp(2:5),bn(k); n=tmp(1)*16+tmp(2)*8+tmp(3)*4+tmp(4)*2+tmp(5);%对应数列中位置的高5位 if k=5 L=0; else bn(k-5)=2*bn(k-5)-1; %预编码 L=L+bn(k

22、-5); end; L=mod(L,4); %L取模4 k=k+1; num=n*32+L*8; %对应数列中的实际地址 bcos(i*8-7:i*8)=c(num+1:num+8); %8位采样点end;S=t2f(bcos,fs);Eg=abs(S).2;plot(f,10*log10(Eg);xlabel('f(Hz)');ylabel('dB/Hz');title('GMSK功率谱密度图');%傅里叶正变换function S= t2f(s,fs) % s代表输入信号,S代表s的频谱,fs是采样频率N= length(s); %样点总数T

23、= 1/fs*N; %观察时间f= -N/2:(N/2-1)/T; % 频率采样点tmp1= fft(s)/fs;tmp2= N*ifft(s)/fs;S(1:N/2)= tmp2(N/2+1: -1:2);S(N/2+1:N)= tmp1(1:N/2);S= S.*exp(j*pi*f*T);end生成的功率谱仿真图如下图所示:(不同的随机序列) 3、硬件部分硬件我们采用的是GMSK调制器通信系统实验箱,电擦除器,28管脚ROM编程器。电路设计可分为时钟分频、伪随机序列的产生、地址逻辑的生成3部分。其中时钟分频和伪随机序列产生可由VHDL语言实现,地址逻辑的生成可由硬件之间的连线实现。(1)

24、地址逻辑框图利用Quartus软件得到的地址逻辑电路图如下图。 其中clockmgdf器件是时钟脉冲发生器以及伪随机序列发生器;DATA为伪随机输出信号,A5、A4、A3为8个采样值的逻辑地址码;A6、A7为两位象限逻辑地址码,对应L从0到3;A8、A9、A10、A11、A12为5为信息地址码。时钟脉冲发生器的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:ou

25、t std_logic;A5:out 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

26、<= 0;if m = 0 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;伪随机序列发生器的VHDL代码为:library ieee;use ieee.std_logic_1164.all;use ieee.std

27、_logic_unsigned.all;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"si

28、gnal L:std_logic_vector(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<= Data

29、Temp(1);A10<= DataTemp(2);A11<= DataTemp(3);A12<= DataTemp(4);end;(2)输出波形计算机仿真逻辑的输出波形为:(3)器件编程 将文件下载到GMSK通信系统实验箱通信实验板,用逻辑分析仪或存储示波器观测地址逻辑波形。其中管脚分配如下:地址线A12A11A10A9A8A7A6A5A4A3管脚号46686765646361604948(4)硬件调试步骤A、用编程器将量化后的码表的二进制bin数据文件下载到ROM中,在将下载成功的芯片插在GMSK通信实验板上,注意芯片的位置和方向;B、将GMSK通信实验板上的JTAG接口与计算机相连;C、将双路稳压电源调整为±16V;D、接通电源,用示波器观察余弦经过低通滤波器LPF后的输出波形,与Matlab软件仿真的眼图比较。(5)示波器输出眼图六、 故障与解决方法问题1 眼图如下:写程序代码时对每屏10个码元时间理解不深:十个码元时间指的是十个变化过程,共有五个周期,即五个眼。

温馨提示

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

评论

0/150

提交评论