GMSK研究PCM/FM和GMSK的调制和解调方法
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
indx2
ERR = 0;
var = VAR(indx2);
for nn=1:Frame_Nums
nn
Dat_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 < Numbers
Rec(number) = exp(j*4*h*number)*Dat_trans2(indx) + Noise(indx);
number = number+1;
indx = indx + 1;
if number == Num_sym + 1
number = 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;
end
end
times = times + 1;
end
end
end
Berrs(indx2) = ERR/(Numbers*Frame_Nums);
end
figure;
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)
i
Bit_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 <= 200
fprintf('Eb/N0 = %f\\n', SNR(i));
Num_err
data = 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;
end
Bit_err(i) = Num_err/(N*N*Numbers);
end
figure;
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
以上是关于GMSK研究PCM/FM和GMSK的调制和解调方法的主要内容,如果未能解决你的问题,请参考以下文章
盲解调基于频率和滤波器参数估计的FH-GFSK调制信号盲解调算法matlab仿真
频带传输数字频带传输系统之不同调制方式的误码率与频谱特性总结
数字信号调制基于matlab 16QAM信号调制解调含Matlab源码 2050期