function out=fun_descramber(init,len) reg=init; out=zeros(len,1); out(1:7)=init; for m=8:len t=xor(reg(1),reg(4)); reg=[reg(2:7);t]; out(m)=t; end end
时间: 2024-04-26 18:23:13 浏览: 153
这段代码的功能是实现一个简单的解扰器(descrambler)。输入参数为初始状态 init 和数据长度 len,输出为解扰后的数据 out。
具体实现过程如下:
1. 将初始状态赋值给寄存器 reg。
2. 初始化 out 数组的前 7 个元素为初始状态。
3. 对于从第 8 个元素开始的每一个元素,执行以下操作:
- 计算寄存器 reg 的第一个元素和第四个元素的异或结果,赋值给变量 t。
- 将寄存器 reg 向左移动一位,将变量 t 放到最后一位。
- 将变量 t 赋值给 out 数组的当前元素。
4. 返回解扰后的数据 out。
总体来说,这段代码比较简单,实现的是一个基本的移位寄存器解扰器。
相关问题
function seq = GenChaos(init,rv_bit,len) % init: 设定初始值 % thd : 门限 % len : 生成序列长度 % rv_bit: 舍弃的位数 x = init; % 初始值 thd = 0; % 门限 S=rv_bit; % 舍弃的位数 T=len; % 截断的位数 H=zeros(1,T); % 码序列 for i=1:S %舍去前S位 x=1-2*x*x; end for i=1:T %从S+1为开始截断,截断T位 if x>thd H(i)=1; else H(i)=0; end x=1-2*x*x; end seq = H; end这个程序运行的流程
这个程序是用来生成伪随机码的 MATLAB 函数,其主要流程如下:
1. 初始化参数:包括初始值、门限、舍弃的位数和生成序列长度;
2. 进行迭代,得到伪随机序列;
3. 对伪随机序列进行截断,得到最终的伪随机码。
具体而言,下面是 GenChaos 函数的 MATLAB 代码:
```matlab
function seq = GenChaos(init, rv_bit, len)
% 参数初始化
x = init; % 初始值
thd = 0; % 门限
S = rv_bit; % 舍弃的位数
T = len; % 截断的位数
% 生成伪随机序列
for i = 1:S
x = 1 - 2 * x * x;
end
H = zeros(1, T);
for i = 1:T
if x > thd
H(i) = 1;
else
H(i) = 0;
end
x = 1 - 2 * x * x;
end
% 截断伪随机序列,得到伪随机码
seq = H;
end
```
用户可以通过调整函数输入参数 `init`、`rv_bit` 和 `len`,来改变初始值、舍弃的位数和生成序列长度。需要注意的是,在生成伪随机序列时,需要进行一定次数的迭代,以消除初始值对结果的影响。在截断伪随机序列时,可以通过调整门限 `thd` 的值,来控制伪随机码的分布。
阅读全文