【GMSK】研究PCM/FM和GMSK的调制和解调方法
【GMSK】研究PCM/FM和GMSK的调制和解调方法
1.软件版本
matlab2013b
2.本算法工作内容
1. 用MATLAB仿真多符号检测(MSD)和Turbo乘积码的编解码
2. 研究Turbo码同步参数的优化设计及其性能;
3. 比较TPC和纠删码的性能,实现复杂度,实现方式上的差异;
4. 学习GMSK的调制、解调方式),重点研究GMSK-PN码的调制和解调方法,利用MATLAB对其进行仿真;并考虑是否可以利用PCM/FM加入PN码或其他方式实现测距功能;
5. 研究PCM/FM的码同步方法
3.部分源码
clc;
clear;
close all;
warning off;
addpath 'func_MSD\'Frame_Nums = 500;
Numbers = 200;
Num_sym = 10;
SNR1 = [0:1:7];
SNR2 = 10.^(SNR1/10);
VAR = 1./(SNR2*2);
%设置调制指数
h = 0.6;
load('Table.mat');
[Ro,Co] = size(Table);for indx2 = 1:length(SNR1)indx2ERR = 0;var = VAR(indx2); for nn=1:Frame_NumsnnDat_trans = randsrc(1,Numbers,[0 1]);%差分编码Dat_trans2 = func_chafen(Dat_trans,Numbers);%定义噪声Noise = sqrt(var/2)*(randn(1,Numbers) + i*randn(1,Numbers));%参数初始化parameter;%MSD检测while indx < NumbersRec(number) = exp(j*4*h*number)*Dat_trans2(indx) + Noise(indx);number = number+1;indx = indx + 1;if number == Num_sym + 1number = 1;indx = indx-2;%计算模y = func_abs(Rec,Num_sym);%MSD检测MSD_results = func_MSD_Check(y,Table,Num_sym,Ro,Co);%检测误码率for hh=1:Num_sym-2 if MSD_results(hh) ~= Dat_trans(hh+times*Co)ERR = ERR + 1;endendtimes = times + 1; endendendBerrs(indx2) = ERR/(Numbers*Frame_Nums);
endfigure;
semilogy(SNR1,Berrs,'b-o');
legend('ber of MSD');
xlabel('SNR');
ylabel('ber');
grid on; if h == 0.8;save msd1.mat SNR1 Berrs
end
if h == 0.7;save msd2.mat SNR1 Berrs
end
if h == 0.6;save msd3.mat SNR1 Berrs
end
clc;
clear;
close all;
warning off;
addpath 'func_tpc\'%调用矩阵
load h.mat
load g57x64.mat
N = size(G,1);
M = size(G,2);
SNR = [0:1:7];for i=1:length(SNR)iBit_err(i) = 0; %设置误码率参数Num_err = 0; %蒙特卡洛模拟次数Numbers = 0; %误码率累加器SNRs = 10^(SNR(i)/10);sigma = 1/sqrt(2*M/N*SNRs);d1 = 1;d2 = 1;while Num_err <= 200fprintf('Eb/N0 = %f\n', SNR(i));Num_errdata = randint(N,N);%TPC编码tx_data = func_tpc_encode(data,G,N,M);tx_data = 2*tx_data-1; %通过高斯信道rx_data = tx_data + sigma*randn(size(tx_data));rx_data = reshape(rx_data,N+7,N+7);%TPC译码 decoded_bits = func_tpc_decoded(rx_data,1,H,d1,d2);nberr = sum(sum(abs(data-decoded_bits(M-N+1:M,M-N+1:M))));Num_err = Num_err+nberr;Numbers = Numbers+1;endBit_err(i) = Num_err/(N*N*Numbers);
endfigure;
semilogy(SNR,Bit_err,'o-');
xlabel('Eb/N0(dB)');
ylabel('BER');
grid on;
save Results2.mat SNR Bit_err
4.仿真结论
1. 用MATLAB仿真多符号检测(MSD)和Turbo乘积码的编解码,得到参考文献[1]中图3、表1和图4;
比较TPC和纠删码
学习GMSK的调制、解调方式,重点研究GMSK-PN码的调制和解调方法,利用MATLAB对其进行仿真;并考虑是否可以利用PCM/FM加入PN码或其他方式实现测距功能;
PCM/FM的码同步方法
5.参考文献
[1] MSD与TPC技术在PCM_FM遥测系统中的应用研究_王晓波
[2] Turbo码块同步参数优化设计_吴岭
[3] 中频带宽对调频遥测解调性能的影响分析_朱宏权
[4] 同时传输遥测和伪码测距信号的GMSK技术_游莎莎
[5] 深空测控通信中GMSK体制非相干解调算法研究_吴伟仁
[6] 基于纠删码的遥测链路丢帧恢复技术_张金荣
[7] 基于PCM_FM遥测信号的多站时差定位技术应用研究_王俊峰
[8] GMSK调制技术及其在遥测中的应用分析_游莎莎A01-128