資源簡介
TCM Trellis Code Modulation Based on Matlab 網格編碼調制基于Matlab 含PPT講解
并且與QPSK和8PSK做比較 兩種TCM結構

代碼片段和文件信息
clc
clear?all;
%close?all;
%System?1(1/2?convolutional?encoder?2/3?TCM)
%?8PSK-TCM?simulation
tx_num?=?2000;
tx?=?randint(1tx_num);
%tx_num?=?2000tx?=?randint(12000);%?tx?=?[0?1?1?0?1?1?0?1?1?1?1?0?0?1?1?0];
Es?=?1;?Eb?=?Es/3;
Eb_dB?=?10*log10(Eb);
SNR?=?(0:1:10);?
SNR_lin?=?10.^(SNR?/?10);
BER?=?zeros(1length(SNR));
%%%%%%%%%%%%%%%%%%%%%%%%TCM%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M?=?8;
conv_input?=?tx(1:2:end);
uncode_data?=?tx(2:2:end);
%?Convolutional?encoder
trellis?=?poly2trellis(3[5?2][5]);
%trellis?=?poly2trellis(3[5?7][5]);
%trellis?=?poly2trellis(4[13?6][13]);
code_data?=?convenc(conv_inputtrellis);
%?partitioning
partition=[pskmod(1M0‘gray‘)?pskmod(7M0‘gray‘);
pskmod(2M0‘gray‘)?pskmod(4M0‘gray‘);
pskmod(3M0‘gray‘)?pskmod(5M0‘gray‘);
pskmod(0M0‘gray‘)?pskmod(6M0‘gray‘)];
%?TCM?Modulation
txSig?=?zeros(1length(uncode_data));
for?k?=?1:?length(uncode_data)
i?=?code_data(2*k-1)+code_data(2*k)*2;
txSig(1k)=partition(i+1uncode_data(k)+1);
end
for?n?=?1:length(SNR)
%?Add?Gaussian?noise.
rxSig?=?awgn(txSigSNR(n)Eb_dB);
%rxSig?=?sqrt(Es/2)?*?txSig?+?sqrt(Eb/(2*SNR_lin(n)))?*?(randn(size(txSig))?+?j?*?randn(size(txSig)));
%rxSig?=?awgn(txSigSNR(n));
%?Demodulate.
rx?=?pskdemod(rxSig?M0‘gray‘);
%?Decode
r_code?=?zeros(1length(rx)*2);
r_uncode?=?zeros(1length(rx));
for?i=1:length(rx)
switch?rx(i)
case?0
r_code(12*i-1)?=?1;
r_code(12*i)?=?1;
r_uncode(1i)?=?0;
case?1
r_code(12*i-1)?=?0;
r_code(12*i)?=?0;
r_uncode(1i)?=?0;
case?2
r_code(12*i-1)?=?1;
r_code(12*i)?=?0;
r_uncode(1i)?=?0;
case?3
r_code(12*i-1)?=?0;
r_code(12*i)?=?1;
r_uncode(1i)?=?0;
case?4
r_code(12*i-1)?=?1;
r_code(12*i)?=?0;
r_uncode(1i)?=?1;
case?5
r_code(12*i-1)?=?0;
r_code(12*i)?=?1;
r_uncode(1i)?=?1;
case?6
r_code(12*i-1)?=?1;
r_code(12*i)?=?1;
r_uncode(1i)?=?1;
case?7
r_code(12*i-1)?=?0;
r_code(12*i)?=?0;
r_uncode(1i)?=?1;
otherwise
error(‘This?is?impossible‘)
end
%decrx1?=?vitdec(r_codetrellis?2‘trunc‘?‘hard‘);
decrx1?=?vitdec(r_codetrellis?length(r_code)/2‘trunc‘?‘hard‘);
decrx(1:2:length(tx))=?decrx1;
decrx(2:2:length(tx))=?r_uncode;
end
[nErrors?BER(1n)]?=?biterr(txdecrx);
end
figure(1)
semilogy(SNRBER‘r‘);grid?on;
grid?on;
xlabel(‘SNR?(dB)‘);?ylabel(‘BER‘);
title(‘TCM?Modulation?with?a?convolutional?encoder?in?an?AWGN?channel‘);?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-03-28?14:46??final\
?????文件??????454144??2017-11-09?23:54??final\20MATLABTBER_TCM_QPSK_8PSK.ppt
?????文件????????2422??2017-10-18?09:01??final\tcm_simulation12.m
?????文件????????2414??2017-10-18?09:49??final\tcm_simulation12_bin.m
?????文件????????2278??2017-09-20?10:04??final\tcm_simulation23.m
?????文件????????1480??2017-11-08?12:03??final\tcm_unc8psk.m
?????文件????????1821??2016-11-15?10:06??final\tcm_unqpsk.m
?????文件????????1477??2015-11-22?14:53??final\theo_tcm_12.m
?????文件????????1614??2015-11-22?15:05??final\theo_tcm_23.m
評論
共有 條評論