資源簡介
Hamming.m
代碼片段和文件信息
BitSeq=randi([01][51200002]);?%生成比特序列
SymbolSeq=bi2de(BitSeq‘left-msb‘);??%比特序列轉化為符號序列
ModulatedSeq=qammod(SymbolSeq4);??%調制后的信號序列
%QPSK實際誤碼率:
error=zeros([111]);
for?ebno=0:1:10
????AWGNChannel?=?comm.AWGNChannel(‘NoiseMethod‘‘Signal?to?noise?ratio?(Eb/No)‘‘EbNo‘ebno‘BitsPerSymbol‘2‘SignalPower‘mean(abs(ModulatedSeq).^2));
????outsignal=AWGNChannel(ModulatedSeq);
????recv=qamdemod(outsignal4);
????rec=de2bi(recv‘left-msb‘);
????[~error(ebno+1)]=biterr(recBitSeq);
end
semilogy(0:1:10error‘o-‘);
grid?on?
axis([0101e-51])
hold?on
xlabel(‘Eb/No‘);
ylabel(‘BER‘);
title(‘AWGN‘);
%%
%?%?軟判決+最小歐式距離譯碼
temp?=?[1?1?1
????????1?0?1
????????0?1?1
????????1?1?0];
G?=?[eye(4)?temp];
global?base;
base?=?0:15;
base?=?de2bi(base‘‘left-msb‘);
Y?=?mod(base*G2);
Y_1?=?[bi2de(Y(:1:2)‘left-msb‘)?bi2de(Y(:3:4)‘left-msb‘)?bi2de(Y(:5:6)‘left-msb‘)?Y(:7)];
global?ModulatedY;
ModulatedY=qammod(Y_14);??%調制后的信號序列
BitSeq=randi([01][5120004]);?%生成比特序列
BitSeq_Encode?=?mod(BitSeq*G2);
SymbolSeq?=?[bi2de(BitSeq_Encode(:1:2)‘left-msb‘)?bi2de(BitSeq_Encode(:3:4)‘left-msb‘)?bi2de(BitSeq_Encode(:5:6)‘left-msb‘)?BitSeq_Encode(:7)];
ModulatedSeq=qammod(SymbolSeq4);??%調制后的信號序列
error=zeros([19]);
for?ebno=0:1:8
????AWGNChannel?=?comm.AWGNChannel(‘NoiseMethod‘‘Signal?to?noise?ratio?(Eb/No)‘‘EbNo‘ebno‘BitsPerSymbol‘2‘SignalPo
評論
共有 條評論