📄 test.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%10/6/2008 zhangsong
%一个具有差错检测的DF仿真程序
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
echo off;clear all;close all;clc;
tic
N=300;
L=65; %一帧长度
BerSnrTable=zeros(20,4);
for snr=0:25
BerSnrTable(snr+1,1) = snr;
sig=1/sqrt(10^(snr/10));
temp=0;
for i=1:N
BitsTx = floor(rand(1,L)*2);
% BitsTxcrc=CrcEncode(BitsTx);
BitsTxcnv=cnv(BitsTx);
Mod8Tx=mod_8psk(BitsTxcnv);
M=length(Mod8Tx);
H1d=randn(1,M)+j*randn(1,M);
Z1d=randn(1,M)+j*randn(1,M);
Y1d=H1d.*Mod8Tx+sig*Z1d;
%error=0,正确解码 error=1,错误解码
%非协作情况
% if(error==1)
R1d=conj(H1d).*Y1d;
BitR1d=demod_8psk(R1d);
BitR1dviterbi=viterbi(BitR1d);
BitR1dviterbi=BitR1dviterbi(1:length(BitR1dviterbi)-1);
% BitR1ddecrc=CrcDecode(BitR1dviterbi);
[Num,Ber] = symerr(BitR1dviterbi,BitsTx);
BerSnrTable(snr+1,2)=BerSnrTable(snr+1,2)+Num;
% end
%协作情况
end
BerSnrTable(snr+1,3)=BerSnrTable(snr+1,2)/(L*N); %此处将M改成N
end
semilogy(BerSnrTable(:,1),BerSnrTable(:,3),'r*-');
time_of_sim = toc
echo on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -