GMSK调制器实验报告(课程设计)(2)

2019-03-22 23:28

figure(2)

set(2,'Position',[600,100,500,400]) %设定窗口位置及大小

figure(1) hold on

for jj=1:Na*l:N-Na*l %画cos的眼图 plot(ttt,cos_fai(jj:jj+Na*l)); end

figure(2) hold on

for jj=1:Na*l:N-Na*l %画sin的眼图 plot(ttt,sin_fai(jj:jj+Na*l)); end

眼图的绘制比较简单,本程序中加入了预编码,为了计算象限数L,又准备了与输入代码对应双极性码。形成地址就从ROM表中读出值并显示在屏幕上,重复显示多次,就形成了眼图。

图二为余弦仿真眼图:

图表 2 余弦仿真眼图

图三为正弦仿真眼图:

图表 3 正弦仿真眼图

1.4 ROM表的量化和BIN文件生成 lianghua.m文件的源代码:

global dt t f N fb close all

cos_bin=zeros(10,1024); sin_bin=zeros(10,1024);

for ii4=1:1024

cos_1=cos_rom(ii4); %cos量化开始 cos_2=(1+cos_1)*511.5; %量化的0-1023 mmm=cos_2;

nnn1=fix(mmm/512); %将这个数10bit量化 if nnn1,mmm=mmm-512;end; cos_bin(1,ii4)=nnn1;

nnn2=fix(mmm/256); if nnn2,mmm=mmm-256;end; cos_bin(2,ii4)=nnn2;

nnn3=fix(mmm/128); if nnn3,mmm=mmm-128;end; cos_bin(3,ii4)=nnn3;

nnn4=fix(mmm/64); if nnn4,mmm=mmm-64;end; cos_bin(4,ii4)=nnn4;

nnn5=fix(mmm/32); if nnn5,mmm=mmm-32;end; cos_bin(5,ii4)=nnn5;

nnn6=fix(mmm/16); if nnn6,mmm=mmm-16;end; cos_bin(6,ii4)=nnn6;

nnn7=fix(mmm/8); if nnn7,mmm=mmm-8;end; cos_bin(7,ii4)=nnn7;

nnn8=fix(mmm/4); if nnn8,mmm=mmm-4;end; cos_bin(8,ii4)=nnn8;

nnn9=fix(mmm/2); if nnn9,mmm=mmm-2;end; cos_bin(9,ii4)=nnn9;

nnn10=fix(mmm); cos_bin(10,ii4)=nnn10; end

for ii5=1:1024

sin_1=sin_rom(ii5); %sin sin_2=(1+sin_1)*511.5; % mmm=sin_2;

nnn1=fix(mmm/512); % if nnn1,mmm=mmm-512;end; sin_bin(1,ii5)=nnn1;

nnn2=fix(mmm/256); if nnn2,mmm=mmm-256;end; sin_bin(2,ii5)=nnn2;

量化开始 量化的0-1023 将这个数10bit量化 nnn3=fix(mmm/128); if nnn3,mmm=mmm-128;end; sin_bin(3,ii5)=nnn3;

nnn4=fix(mmm/64); if nnn4,mmm=mmm-64;end; sin_bin(4,ii5)=nnn4;

nnn5=fix(mmm/32); if nnn5,mmm=mmm-32;end; sin_bin(5,ii5)=nnn5;

nnn6=fix(mmm/16); if nnn6,mmm=mmm-16;end; sin_bin(6,ii5)=nnn6;

nnn7=fix(mmm/8); if nnn7,mmm=mmm-8;end; sin_bin(7,ii5)=nnn7;

nnn8=fix(mmm/4); if nnn8,mmm=mmm-4;end; sin_bin(8,ii5)=nnn8;

nnn9=fix(mmm/2); if nnn9,mmm=mmm-2;end; sin_bin(9,ii5)=nnn9;

nnn10=fix(mmm); sin_bin(10,ii5)=nnn10; end

cos_low=zeros(1,1024);

for ii6=1:1024 %cos低8位

cos_low(ii6)=cos_bin(3,ii6)*128+cos_bin(4,ii6)*64+cos_bin(5,ii6)*32+cos_bin(6,ii6)*16+cos_bin(7,ii6)*8+cos_bin(8,ii6)*4+cos_bin(9,ii6)*2+cos_bin(10,ii6); end

sin_low=zeros(1,1024);

for ii7=1:1024 %sin低8位

sin_low(ii7)=sin_bin(3,ii7)*128+sin_bin(4,ii7)*64+sin_bin(5,ii7)*32+sin_bin(6,ii7)*16+sin_bin(7,ii7)*8+sin_bin(8,ii7)*4+sin_bin(9,ii7)*2+sin_bin(10,ii7);

end

cos_sin=zeros(1,1024);

for ii8=1:1024 %cos和sin的高2位

cos_sin(ii8)=sin_bin(1,ii8)*128+sin_bin(2,ii8)*64+cos_bin(1,ii8)*2+cos_bin(2,ii8); end

cos_low_bin=zeros(1,8192); sin_low_bin=zeros(1,8192); cos_sin_bin=zeros(1,8192); for ii9=1:1024

cos_low_bin(8*ii9-7)=cos_low(ii9); %每个数据间插入7个0 sin_low_bin(8*ii9-7)=sin_low(ii9); cos_sin_bin(8*ii9-7)=cos_sin(ii9); end

fid_cos=fopen('cos.bin','w'); %生成bin文件 fwrite(fid_cos,cos_low_bin); %数据写入bin文件 fclose(fid_cos);

fid_sin=fopen('sin.bin','w'); fwrite(fid_sin,sin_low_bin); fclose(fid_sin);

fid_cs=fopen('cs.bin','w'); fwrite(fid_cs,cos_sin_bin); fclose(fid_cs);

程序中采用了单极性量化,即首先将余弦表中的数都加一使其变成0—2之间的数,然后将位于0—2之间的数乘以511.5均匀量化成0—1023中的某个数,再转化为10比特二进制数就完成量化,然后把两组低八位与高两位分别存于三片ROM中,再生成bin文件用于实际硬件的下载。

虽然第一次验收失败了,但我很快发现了错误之处,是因为每个数据间插入7个0的循环语句有了一个出了很低级的错误,修改正确后的再次验收,顺利通过。


GMSK调制器实验报告(课程设计)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:台州银行逻辑思维笔试题目汇总

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: