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

📄 generate_random_data.m

📁 viterbi译码以及psk调制解调的源程序
💻 M
字号:
function [RX_I,RX_Q,data]=generate_random_data(N) 
%**************************************************************************
% generate N random datas
%**************************************************************************
rand('state',sum(100*clock));
data=rand(1,N);
for i=1:N
    if (data(i)<=0.5)
        data(i)=0;
    else
        data(i)=1;
    end;
end;
data(N+1:N+8)=zeros(1,8);                  %生成八个零在随机数的后面,
                                           %是为了仿真“点亮”的过程
%**************************************************************************
% compute the data transmitted in the channel
%**************************************************************************
G1=171;                                                 %G1,G2均为八进制
G2=133;                                                 %并且约束长度为七

G1_vector=fliplr(dec2binvec(oct2dec(G1)));
G2_vector=fliplr(dec2binvec(oct2dec(G2)));

shift_d=zeros(1,6);
N=length(data);

for i=1:N
    t1=0;
    t2=0;
    for j=1:6
        t1=xor(t1,and(shift_d(j),G1_vector(j+1)));
        t2=xor(t2,and(shift_d(j),G2_vector(j+1)));
        
        RX_I(i)=xor(data(i),t1);
        RX_Q(i)=xor(data(i),t2);
    end;
       
    T_vector=dec2binvec((2*binvec2dec(shift_d)),6);     %状态值右移的过程
    shift_d=T_vector(1:6);
    shift_d(1)=data(i);
end;

⌨️ 快捷键说明

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