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

📄 gfprimdf.m

📁 数字通信第四版原书的例程
💻 M
字号:
function pol = gfprimdf(m, p)
%GFPRIMDF Produces a default primitive polynomial in GF(P^M).
%       Pol = GFPRIMDF(M) outputs the default primitive polynomial Pol in
%       GF(2^M). 
%
%       Pol = GFPRIMDF(M, P) outputs the default primitive polynomial Pol
%       in GF(P^M).
%
%       The default primitive polynomials are monic polynomials.
%
%       See also GFPRIMCK, GFPRIMFD.

%       Wes Wang 6/30/94, 10/7/95
%       Copyright (c) 1995-96 by The MathWorks, Inc.
%       $Revision: 1.1 $  $Date: 1996/04/01 17:59:26 $

if nargin < 2
    p = 2;
end;
if p == 2
   if m == 1
           pol = [1 1];
   elseif m == 2
    pol = [2 1 0];
   elseif m == 3
          pol = [3 1 0];
   elseif m == 4
          pol = [4 1 0];
   elseif m == 5
          pol = [5 2 0];
   elseif m == 6
          pol = [6 1 0];
   elseif m == 7
          pol = [7 3 0];
   elseif m == 8
          pol = [8 4 3 2 0];
   elseif m == 9
      pol = [9 4 0];
   elseif m == 10
         pol = [10 3 0];
   elseif m == 11
        pol = [11 2 0];
   elseif m == 12
        pol = [12 6 4 1 0];
   elseif m == 13
    pol = [13 4 3 1 0];
   elseif m == 14
    pol = [14 10 6 1 0];
   elseif m == 15
           pol = [15 1 0];
   elseif m == 16
        pol = [16 12 3 1 0];
   elseif m == 17
           pol = [17 3 0];
   elseif m == 18
        pol = [18 7 0];
   elseif m == 19
        pol = [19 5 2 1 0];
   elseif m == 20
    pol = [20 3 0];
   elseif m == 21
        pol = [21 2 0];
   elseif m == 22
        pol = [22 1 0];
   elseif m == 23
        pol = [23 5 0];
   elseif m == 24
        pol = [24 7 2 1 0];
   else
      disp('The maximum primitive polynomial degree in the database is 24. You have request')
       disp(['degree of ', num2str(m), ' Please wait for processing.'])
          pol = gfprimfd(m, 'min');
   end
   if (m <= 24) & (m >= 2)
       pol = gfrepcov(pol);    
   end
else
    if (m == 1)
        pol = [1 1];
    elseif (p == 3) & (m <= 6)
        if m == 2
            pol = [2 1 1];
        elseif m == 3
            pol = [1 2 0 1];
        elseif m == 4
            pol = [2 1 0 0 1];
        elseif m == 5
            pol = [1 2 0 0 0 1];
        elseif m == 6
            pol = [2 1 0 0 0 0 1];
        end;
    elseif (p == 5) & (m <= 4)
        if m == 2
            pol = [2 1 1];
        elseif m == 3
            pol = [2 3 0 1];
        elseif m == 4
            pol = [2 2 1 0 1];
        end;
    elseif (p == 7) & (m <= 3)
        if m == 2
            pol = [3 1 1];
        elseif m == 3
            pol = [2 3 0 1];
        end;
    else
            pol = gfprimfd(m, 'min', p);
    end
end;
% -- end of gfprimdf--

⌨️ 快捷键说明

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