⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 facchpe.m

📁 实现GSM通信的快速接入控制信道(FACCH)的信道编码的MATLAB仿真
💻 M
字号:
%全信道误码率,误帧率
function [bit_err_rate,frame_err_rate]=facchPe(snr_in_dB,N,burst)
%噪声功率
E=1;
snr=10^(snr_in_dB/10);
sgma=sqrt((E/snr)/2);%噪声功率
err_bit=0;
err_frame=0;
G=[1 0 0 1 1;1 1 0 1 1];
k=1;

for i=1:N
	%信息序列
    signal=round(rand(1,184));
    %外编码
    signal1=fire_sys_encode(signal);
    fire_enc=[signal1,0,0,0,0];%加4个0作为尾比特
    %内编码
    signal2=viterbi_encoder(G,k,fire_enc);
    viterbi_enc=signal2(1:456);%去掉后面8个0比特
    %交织重排
    C=INTER_WEAVE_8(viterbi_enc);
	%%%%%%%%%%%%%%%%%%%%%%%%
	%经信道加高斯噪声
	C=2*C-1;
	C=sign(C+sgma*randn(size(C))+eps);
	C=(C+1)/2;
	%加突发噪声
	%经信道加突发干扰
    %N_Interval=200;  %突发间隔,改变其值会影响误码率曲线
    %Noise=BurstNoise(N_Interval,burst,length(C));
    %C=rem(C+Noise,2);
    %%%%%%%%%%%%%%%%%%%%%%%%
	%反交织重排
	D=COUNTER_WEAVE_8(C);
	%内解码
	viterbi_out=viterbi_decoder(G,k,D);
    %外解码
	[fire_dec,sysinfo]=fire_sys_decode(viterbi_out);
	err_num=(length(find(signal~=fire_dec)));  %计算每次出错的长度
	err_bit=err_bit+err_num;                   %累积出错长度
    err_frame=(length(find(err_num~=0)))+err_frame;%累积出错的帧数
    end;
    
bit_err_rate=err_bit/(N*184); %误比特率
frame_err_rate=err_frame/N;   %误帧率
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -