Matlab 第四章
合集下载
MATLAB-第4章

v
i 1
n
2 i
。
max { vi } 。
1 ≤i ≤n
设 A 是一个 m ×n 的矩阵,矩阵的 3 种常用范数如下。 1-范数: A 1 max { aij } 。
1 ≤ j ≤n i 1 m
2-范数: A 2 1 ,其中 λ 1 为 A'A 最大特征值。 ∞-范数: A max { aij } 。
【例4.6】先建立5 × 5矩阵A,然后将A的第一行元素乘以1, 第二行乘以2,…,第五行乘以5。 用一个对角矩阵左乘一个矩阵时,相当于用对角阵的第一个 元素乘以该矩阵的第一行,用对角阵的第二个元素乘以该 矩阵的第二行……依此类推,因此,只需按要求构造一个 对角矩阵D,并用D左乘A即可。命令如下: A=[1:5;2:6;3:7;4:8;5:9] D=diag(1:5); D*A %用D左乘A,对A的每行乘以一个指定常数
(2)构造对角矩阵 设V为具有m个元素的向量,diag(V,k)的功能是产生一个 n × n(n = m + k|)对角阵,其第k条对角线的元素即为 向量V的元素。 例如: diag(1:3,-1) ans = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0 省略k时,相当于k为0,其主对角线元素即为向量V的元素。
2.矩阵的秩与迹 (1)矩阵的秩 rank(A) (2)矩阵的迹 矩阵的迹即矩阵的对角线元素之和。 trace(A)。
3.向量和矩阵的范数
设向量 V = (v1 ,v2 ,…,vn ),向量的 3 种常用范数如下。 1-范数: V 2-范数: V ? -范数: V
1
vi 。
i 1
n
2
3.矩阵的转置 所谓转置,即把源矩阵的第一行变成目标矩阵第一列,第二 行变成第二列……依此类推。显然,一个m行n列的矩阵 经过转置运算后,变成一个n行m列的矩阵。MATLAB中, 转置运算符是单撇号(')。
MATLAB-第四章

三、函数相关知识
3 变量的作用域
tips:尽量不使用全局变量! tips
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制:当一个函数调用发生时, 按值传递机制:当一个函数调用发生时, MATLAB 将会复制实参生成一个副本,然后 将会复制实参生成一个副本, 把它们传递给函数。这次复制是非常重要的, 把它们传递给函数。这次复制是非常重要的, 因为它意味着虽然函数修改了输入参数, 因为它意味着虽然函数修改了输入参数,但 它并没有影响到调用者的原值。 它并没有影响到调用者的原值。 防止了因函数修改变量而导致的严重错误。 防止了因函数修改变量而导致的严重错误。
while 表达式 循环体 end
例:使用while循环计算1+2+3+…+100 使用while循环计算1+2+3+…+100 while循环计算
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构
clear sum=0; i=0; while i<100 i=i+1; sum=sum+i; end sum
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递 sample.m function out = sample(a, b)
fprintf('In Sample,before compute: a = %f, b = %f \n',a,b);
第四章 MATLAB的编程基础
二、其他流程控制语句 1 . break 和 continue语句 * break语句用于立即跳出含该 语句用于立即跳出含该break语 语句用于立即跳出含该 语 句的循环语句。 句的循环语句。 * continue语句用于提前结束当前循环。 语句用于提前结束当前循环。 语句用于提前结束当前循环
3 变量的作用域
tips:尽量不使用全局变量! tips
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制:当一个函数调用发生时, 按值传递机制:当一个函数调用发生时, MATLAB 将会复制实参生成一个副本,然后 将会复制实参生成一个副本, 把它们传递给函数。这次复制是非常重要的, 把它们传递给函数。这次复制是非常重要的, 因为它意味着虽然函数修改了输入参数, 因为它意味着虽然函数修改了输入参数,但 它并没有影响到调用者的原值。 它并没有影响到调用者的原值。 防止了因函数修改变量而导致的严重错误。 防止了因函数修改变量而导致的严重错误。
while 表达式 循环体 end
例:使用while循环计算1+2+3+…+100 使用while循环计算1+2+3+…+100 while循环计算
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构
clear sum=0; i=0; while i<100 i=i+1; sum=sum+i; end sum
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递 sample.m function out = sample(a, b)
fprintf('In Sample,before compute: a = %f, b = %f \n',a,b);
第四章 MATLAB的编程基础
二、其他流程控制语句 1 . break 和 continue语句 * break语句用于立即跳出含该 语句用于立即跳出含该break语 语句用于立即跳出含该 语 句的循环语句。 句的循环语句。 * continue语句用于提前结束当前循环。 语句用于提前结束当前循环。 语句用于提前结束当前循环
MATLAB第四章

‘unreal’
非“实”符号变量。
调用格式4:syms(‘a1’,’a2’,’a3’) 功能:把字符串a定义为基本符号对象。 另外,格式4的简洁形式如下:syms a1 a2 a3 例1:比较符号常数形成的差异 >> a=[6,1/6,sqrt(2),pi/3-1] a= %为数值常数
6.0000 0.1667 1.4142 0.0472
第四章 符号计算目录
§4-1 在线帮助和系统演示 §4-2 创建和使用符号对象 §4-3 运算符 §4-4 微积分 §4-5线性代数 §4-6符号计算在控制理论中的应用 §4-7微分方程求解 §4-8约当标准型
第四章 符号计算
前一章介绍了数值计算,它的操作对象都有确定的数值,如果 未对某个变量赋值而执行命令,MATLAB则会给出错误信息。 如: >> clear >> A=[1 1 1;x 3 4] %在数值计算中,x没赋值 ??? Undefined function or variable 'x'. 如果把它们看作符号计算,则不会出现错误信息。 如: >> A=sym('[1 1 1;x 3 4]') A= [ 1, 1, 1] [ x, 3, 4]
end
end
使用M文件来创建符号函数是比较方便的。 >> genhilb(5)
ans = [ 1/(2-t), [ 1/(3-t), [ 1/(4-t), [ 1/(5-t), [ 1/(6-t),
1/(3-t), 1/(4-t), 1/(5-t), 1/(6-t), 1/(7-t),
1/(4-t), 1/(5-t), 1/(6-t), 1/(7-t), 1/(8-t),
matlab第四章课件

4.1.1 M文件的分类
M文件是由若干 Matlab 命令组合在一起构成的,它可 以完成某些操作,也可以实现某种算法
事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言编写的 M文件 用户也可以结合自己的工作需要,开发自己的程序或工具箱
M文件根据调用方式的不同可以分为两类: Script file:命令文件/脚本文件 Function file:函数文件
例2 输入x,y的值,并将它们的值互换后输出(swap.m)。 x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y); 例3 求一元二次方程ax2 +bx+c=0的根(root.m)。 a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
例如:
s=0; a=[12 13 14;15 16 17;18 19 20;21 22 23] for k=a s=s+k; end disp(s); 该程序的功能是求矩阵各行元素之和,执行结果是: 39 48 57 66
while语句
while expr (条件) statement(循环体语句) end 若expr成立,则执行循环体的内容,执行后 再判断条件是否为真,如果不成立则跳出循环体。
[工学]第4章matlab
![[工学]第4章matlab](https://img.taocdn.com/s3/m/55e69768a8956bec0975e34f.png)
其中,参数x是输入信号向量,b和a差分方程的系数向量, 即 b [b0 , b1 , , bM ], a [a0 , a1 , , aN ] 要求 a0 1 ,xi是等效初始条件的输入向量,由函数 filtic产生,调用格式如下 xi=filtic(b,a,ys,xs); 其中,ys和xs是初始条件向量,即
MATLAB数字信号处理
离散时间系统
0.5n , n 0 h(n) 0.5n u(n) n0 0,
(b)将差分方程改为 y(n 1) 2 y(n) 2 x(n) 令输入 x(n) (n) ,则有
h(1) 2h(0) 2 (0) 2
h(2) 2h(1) 2 (1) 22
ay1 (n) by2 (n) T[ax1 (n) bx2 (n)]
2)时不变系统
离散时间时不变系统是指系统对输入信号的响应与信号 加于系统的时间无关,或者说输入序列的移位或延迟引起输 出序列相同的移位或延迟。假设系统对输入x(n)的响应为 y(n),即
MATLAB数字信号处理
离散时间系统
x ( n) h( n)
y ( n)
等价
h( n)
x ( n)
y ( n)
2)结合律
x(n) h1 (n) h2 (n) [ x(n) h1 (n)] h2 (n) x(n) [h1 (n) h2 (n)]
MATLAB数字信号处理
离散时间系统
即,一个序列先后通过两个单位冲激响应分别为h1(n) 和h2(n)的线性时不变系统,等效于通过一个线性时不变系 统,其单位冲激响应h(n)为h1(n)和h2(n)的线性卷积.示意 图如下.
第4章 离散时间系统和Z变换
MATLAB数字信号处理
离散时间系统
0.5n , n 0 h(n) 0.5n u(n) n0 0,
(b)将差分方程改为 y(n 1) 2 y(n) 2 x(n) 令输入 x(n) (n) ,则有
h(1) 2h(0) 2 (0) 2
h(2) 2h(1) 2 (1) 22
ay1 (n) by2 (n) T[ax1 (n) bx2 (n)]
2)时不变系统
离散时间时不变系统是指系统对输入信号的响应与信号 加于系统的时间无关,或者说输入序列的移位或延迟引起输 出序列相同的移位或延迟。假设系统对输入x(n)的响应为 y(n),即
MATLAB数字信号处理
离散时间系统
x ( n) h( n)
y ( n)
等价
h( n)
x ( n)
y ( n)
2)结合律
x(n) h1 (n) h2 (n) [ x(n) h1 (n)] h2 (n) x(n) [h1 (n) h2 (n)]
MATLAB数字信号处理
离散时间系统
即,一个序列先后通过两个单位冲激响应分别为h1(n) 和h2(n)的线性时不变系统,等效于通过一个线性时不变系 统,其单位冲激响应h(n)为h1(n)和h2(n)的线性卷积.示意 图如下.
第4章 离散时间系统和Z变换
Matlab北航教程第四章

[B,A]=butter(n,w0):滤波器设计 y=filter(B,A,x):对信号x进行滤波
4.6_3
CH4.7 系统分析 S_ss=ss(A,B,C,D):利用状态方程创建LTI S_zpk=zpk(Z,P,K) :利用零极点增益创建LTI S_tf=tf(num,den) :利用传递函数创建LTI [A,B,C,D]=ssdata(S_lti) [Z,P,K]=zpkdata(S_lti) [num,den]=tfdata(S_lti)
[x,resnorm,residual,exitflag]= lsqnonlin(fun,x0): 基于Gauss-Newton方法求解
min ( f (x) f1(x)2 f2 (x)2 fm (x)2 ) x
[x,resnorm,residual,exitflag] = lsqcurvefit(fun,x0,xdata,ydata) 非线性最小二乘曲线拟合
伪逆:B=pinv(A)
满秩分解 可利用rref指令完成
司楚尔(Schur)分解: [U R] = schur(A)
乔列斯基(Cholesky)分解:R = chol(X) R’*R=X
[R,p] = chol(X) 利用p来判断R是否为正定,p=0则X正定
线性方程组的解 一、行列式、逆、恰定方程 det(A) inv(A) x=inv(A)*b x=A\b 求解Ax=b,例4.1-1 二、最小二乘问题 对超定问题Ax=b有三种方法,4.1-2 x=inv(trans(A)A) trans(A)b x=pinv(A)*b x=A\b
CH4.2 矩阵的一些运算 加、减、乘
trace(A) rank(A)
kron(A,B) norm(A,flag) cond(A)
4.6_3
CH4.7 系统分析 S_ss=ss(A,B,C,D):利用状态方程创建LTI S_zpk=zpk(Z,P,K) :利用零极点增益创建LTI S_tf=tf(num,den) :利用传递函数创建LTI [A,B,C,D]=ssdata(S_lti) [Z,P,K]=zpkdata(S_lti) [num,den]=tfdata(S_lti)
[x,resnorm,residual,exitflag]= lsqnonlin(fun,x0): 基于Gauss-Newton方法求解
min ( f (x) f1(x)2 f2 (x)2 fm (x)2 ) x
[x,resnorm,residual,exitflag] = lsqcurvefit(fun,x0,xdata,ydata) 非线性最小二乘曲线拟合
伪逆:B=pinv(A)
满秩分解 可利用rref指令完成
司楚尔(Schur)分解: [U R] = schur(A)
乔列斯基(Cholesky)分解:R = chol(X) R’*R=X
[R,p] = chol(X) 利用p来判断R是否为正定,p=0则X正定
线性方程组的解 一、行列式、逆、恰定方程 det(A) inv(A) x=inv(A)*b x=A\b 求解Ax=b,例4.1-1 二、最小二乘问题 对超定问题Ax=b有三种方法,4.1-2 x=inv(trans(A)A) trans(A)b x=pinv(A)*b x=A\b
CH4.2 矩阵的一些运算 加、减、乘
trace(A) rank(A)
kron(A,B) norm(A,flag) cond(A)
matlab第4章

行向量元素为按降幂排列的多项式系数。
1.多项式乘法函数 conv ( )
格式:C= conv (A, B) %求多项式A和B的乘积
A、B是两个多项式的系数向量,按降幂排列。 conv( ) 把两个多项式相乘合并成一个多项式。
2
p1 2s 3;
2
p2 s 2 4
3 2
A (2s 3)(s 4) 2s 3s 8s 12
x:操作点处的状态向量
u:操作点处的输入向量
x,u缺省值为0。
20
( s 1)(s 2 2s 6) 2 【例4.4】 求传递函数 G(s) 2 s (s 3)(s 3 2s 2 3s 4)
的分子和分母多项式,并求传递函数的特征 根。
21
% num 分子多项式 % conv( ) 采用嵌套形式
G (s)
5s 3 s 3 6 s 2 11s 6
13
3.部分分式展开函数residue ( ) 功能:对两个多项式的比进行部分展开。 格式:[r, p, k]=residue(b, a) 求B(s)/A(s)的部分分式展开式 向量b和a是按s降幂排列的多项式系数。
14
B( s) bn s n bn1s n1 ...b0 F ( s) A( s) an s n an1s n1 ...a0
38
2.并联 G(s)=G1(s)+G2(s) 模型并联函数 parallel 格式:[num, den]=parallel(num1, den1, num2, den2) num1, den1:G1(s) 的分子、分母多项式 num2, den2:G2(s)的分子、分母多项式 num, den:G(s) 的分子、分母多项式
第4章 MATLAB编程基础

(3)使用C-MEX文件:在必须使用for或 while循环体时,为了提高执行效率,可以将 循环部分的代码转化为C-MEX文件。 (4)尽量使用函数文件:在MATLAB中,函 数文件的效率一般比脚本文件的效率要高, 这是由于函数文件有自己的工作空间,执行 一次后仅保存程序运行必需的变量,并将函 数编译成伪代码,下次调用时提高了效率。
例:根据用户要求找出数组x中的最大值、最 小值或所有元素的和。
t=[0:100];x=exp(-t).*sin(t); %给定数组x require=input('Type min,max,or sum.','s') %用户输入要求 require=lower(require); switch require case 'min' %分支判断通过比较字符串完 成 minimum=min(x) case 'max' maximum=max(x) case 'sum' total=sum(x) otherwise disp('You have not entered a proper requirement') end
例:利用for循环求1!+2!+3!+ +5!的值
sum=0; for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr; end
e x 1 x x 2 2 x3 6 例:找出近似级数 中误差大于1%之前的最大的x值(精确到小数点后两
垂直条形图 水平条形图
误差条形图 y轴对数刻度 坐标
commet stairs
rose compass
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本原多项式
4.2.1 函数介绍
decode 功能:差错控制译码。 语法: msg = decode(code,n,k,'hamming/fmt',prim_poly) msg = decode(code,n,k,'linear/fmt',genmat,trt) msg = decode(code,n,k,'cyclic/fmt',genpoly,trt) msg = decode(code,n,k) [msg,err] = decode(...) syndtable [msg,err,ccode] = decode(...)
4.4.1 线性分组码原理
反映线性分组码纠错能力的重要参数是最小(汉明) 码距,即任何两个不同码字间的最小汉明距离。在 线性码中,最小距离等于该码的最小码重。
4.3.1 线性分组码解码原理
从长为N的码字中恢复出长为K的信元需要经过一 个矩阵运算--伴随式计算。 假定接收到的信号是码字v和信道中产生的错误序 列e的叠加,即r=v+e,则译码过程包括下面四个 步骤:
h= 1 0 0
0 1 0
0 0 1
1 1 0
0 1 1
1 1 1
1 0 1
Hamming码
[h,g,n,k] = hammgen(3) h=1001011 0101110 0010111 g=1101000 0110100 1110010 1010001 n=7 k=4
,校正子与真值表的关系
校正子S s2 s1 s0
错误码位
真值表E e6 e5 e2 e3 e2 e1 e0
0 1 2 3 4 5 6 7
无 b4 b5 b2 b6 b0 b3 b1
0000000 0010000 0100000 0000100 1000000 0000001 0001000 0000010
1 1]]
4.3.3 线性分组码的MATLAB仿真作业
1 0 G 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
作业:假设生成矩阵为
(7 , 4) 线 性 分 组 码 。 用 MATLAB 函 数 encode 和 decode实现编/译码过程,要求:信息码用随机数;
加入一定的噪声后进行解码 ;并且计算错误比特 数
4.3.3 线性分组码的仿真模块
线性分组码编码参数
线性分组码解码参数
序号
错误码位
真值表E e6 e5 e2 e3 e2 e1 e0
校正子S s2 s1 s0
0 1 2 3 4 5 6 7
无 b4 b5 b2 b6 b0 b3 b1
0000000 0010000 0100000 0000100 1000000 0000001 0001000 0000010
rem与mod函数比较
rem(3,-2)
ans =1
rem(-3,2)
ans =-1
ans =-1 ans =1
与X符号同
mod(3,-2) mod(-3,2)
与Y符号同
4.2.2 通信工具箱差错控制函数举例
对二进制信息流进行hamming编码,信元长度 为4,码字长度为7: N=7; K=4; row_num=100; msg=randint(K*row_num,1,2); code=encode(msg,N,K,’hamming'); nois=randerr(row_num,N,1); code=rem(code(:)+nois(:),2); rcv=decode(code,N,K,' hamming'); err=biterr(rcv,msg);
4.1.1 差错控制编码过程
通信系统接收端
1.从信道接受信号并进行解调,恢复序列 2.按某种方式计算信息序列有无差错 3.检错/纠错
4.1.2 差错控制编码分类
分组码 线性编码 卷积码 非线性编码
汉明码 循环码
各码元仅与本组的信息元有关
各码元不仅与本组的信息元有关,还 与前面的若干组信息元有关
4.3.2 线性分组码的MATLAB仿真举例
例1 (7,4)线性分组码生成矩阵如下(通信原理 书中):
G=[1 0 0 0 1 1 1;0 1 0 0 1 1 0;0 0 1 0 1 0 1;0 0 0 1 0 1 1];
求线性分组码编码后的码组
4.3.2线性分组码的MATLAB仿真举例
程序: g=[1 0 0 0 1 1 1;0 1 0 0 1 1 0;0 0 1 0 1 0 1;0 0 0 1 0 1 1]; r=[0 0 1 0]'; code=encode(r,7,4,'linear',g) code = 0 0 1 0 g=[eye(4),[1 1 1;1 1 0;1 0 1;0 1 0 1
举例
r=[1 1 1 0 ]'; code=encode(r,7,4,'hamming') code1=decode(code,7,4)
0 1 0 1 1 1 0
4.2.2 通信工具箱差错控制函数举例
对二进制信息流进行 hamming编码,信元长度为 4,码 字长度为7: N=7; K=4; row_num=100; msg=randint(K*row_num,1,2); code=encode(msg,N,K,’hamming'); nois=randerr(row_num,N,1); code=rem(code(:)+nois(:),2); rcv=decode(code,N,K,' hamming'); err=biterr(rcv,msg);
4.3 线性分组码
4.4.1 线性分组码原理
线性分组编/译码是一种常用的编/译码方法。其它一些编/ 译码方法,例如汉明码或 BCH 码,都是线性分组码的特 例。在线性分组码中,码字矢量是消息矢量的映射。 码字v和信元u有如下关系: v=uG G是生成矩阵(K行N列)
4.3 线性分组码
000 001 010 011 100 101 110 111
4.3.1 线性分组码解码原理
通信工具箱为对称线性分组码提供了一个函数gen2par, 该函数可以由生成矩阵G计算出校验矩阵H的值。利用 伴随式的值,通过一个逻辑电路真值表就可以确定错误 的位置。
在通信工具箱中,单独的错误可以通过指令htruthtb的 运算发现(相当于求出校正子与真直表的对应关系)。 一旦求出e,v就可以通过有限域GF(2)上的简单加法运 算得到。
4.3.1 线性分组码解码原理
gen2par 功能:生成矩阵和校验阵的转换函数。 语法:h=gen2par(g); g=gen2par(h); 说明:h=gen2par(g)可以由一个生成矩阵 g得到 校验阵h,反之亦可。
g=[1 1 0 1 0 0 0;0 1 1 0 1 0 0;1 1 1 0 0 1 0;1 0 1 0 0 0 1]; h=gen2par(g)
out = randerr(8,7,[0 2]) out = 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0
out2 = randerr(8,7,[0 2; .25 .75]) out2 = 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0
计算r的伴随式的值;s=rHT
利用伴随式的值确定错误的位置; 将接收到的矢量还原为码字矢量
v=r-e; 从处理过的码字中恢复出原始的信息码元 。
4.4.2 线性分组码解码原理
当生成矩阵
序号
G
1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1
第四章 差错控制编/译码
4.1 差错控制编码概述
在通信系统中,发送端发出的信号受到噪声的影响,
信号的传输波形若受到破坏,则会使得接收端可能 发生错误判决。
信道编码是现代通信系统广泛采用的一种差错控制 措施。
4.1.1 差错控制编码过程
通信系统发送端
1.按某种方式对信息计算,得到检错/纠错 码 2.把此检错/纠错编码附加到信息序列中 3.把上一步得到的信息序列经过载波调制之 后发送到信道中
rem函数
求余函数
rem(x,y) has the same sign as x while mod(x,y) has the same sign as y.
rem(x,y) and mod(x,y) are equal if x and y have the same sign, but differ by y if x and y have different signs.
线性分组码
结构为(N,K)
其中K为信息位的长度 N-K为监督位的长度 信息位和监督位有一些线性方程联系着,并且各个 码之间是相互独立的
4.2 差错控制编/译码函数
encode 功能:差错控制编码
语法: