BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #13125同步于 2020/7/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

[GMSK解调]用comm.gmskdemodulator解调结果出现码元丢失

gdqgdqgdq
2020/7/6镜像同步3 回复
用matlab里comm.GMSKDemodulator函数解调GMSK信号 因为这个函数有一个时间延迟TracebackDepth 所以会出现最后一位码元丢失 比如输入调制的是1,1,1,1,1 输出就变成0,1,1,1,1 最后一位码元信息就没了 想要完整的解调结果该如何操作? 小白感谢各位!!! 代码:(x是原输入的 x1是解调出来的) clear; clc; j=sqrt(-1); Ts=1/16000; %基带信号周期为1/16000s,频率16KHz Tb=1/32000; fc=32*1e3; %载波频率 B_num=50; %基带信号有50个码元 fc_sample=64; %每码元采样64个点 Dt=1/(fc*fc_sample); %采样间隔 t=0:Dt:B_num*Tb-Dt; %仿真时间离散点 gmsk_mod1 = comm.GMSKModulator('BitInput',true,'SamplesPerSymbol',64);%创建GMSK调制器1 x = randi([0,1],B_num,1);%输入01串 signal_A = gmsk_mod1(x);%GMSK调制得到信号A signal_A=transpose(signal_A); signal_add=0.001.*signal_A.*exp(j*2*pi*1*t);%频偏后的衰落信号 signal_B=signal_A+signal_add;%叠加信号B波形 signal_B=transpose(signal_B); gmsk_demod = comm.GMSKDemodulator('BitOutput',true,'SamplesPerSymbol',64,'TracebackDepth',1);%创建GMSK解调器 x1=gmsk_demod(signal_B);%解调混叠信号B 得到01串 gmsk_mod2 = comm.GMSKModulator('BitInput',true,'SamplesPerSymbol',64);%创建GMSK调制器2 signal_C=gmsk_mod2(x1);%GMSK调制得到信号C signal_D=signal_B-signal_C;%相减 signal_B=transpose(signal_B); signal_C=transpose(signal_C); signal_D=transpose(signal_D);
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
officeysk机器人#1 · 2020/7/6
猜猜输入由1,1,1,1变1,1,1,1,0试试?就是输入信号末位补个空电平
gdqgdqgdq机器人#2 · 2020/7/6
谢谢你 但是从解调的角度来说 调制那边的码元是看不到的 也没办法控制 只能得到GMSK信号
officeysk机器人#3 · 2020/7/6
哈哈我也就随口一想,gmsk不太记得了,看输出首位是0,猜是延时引入的多余码元吧。我的简单想法是,比如现在是发和收了50个码元,那可不可以发端发100个码元,收端也收100个码元,当然分析的时候就取发端1-50个码元和收端第2-51个码元即可。