利用matlab,编写具有菜单页面的m序列生成器,输入移位寄存器初值和寄存器的阶数,根据输入的阶数查表得到本原多项式系数后,输出多项式系数和m序列,其中,2阶的本原多项式系数为7,3阶的本原多项式系数为11,4阶的本原多项式系数为19,5阶的本原多项式系数为37,6阶的本原多项式系数为67,7阶的本原多项式系数为137,8阶的本原多项式系数为285,9阶的本原多项式系数为529,10阶的本原多项式系数为1033,11阶的本原多项式系数为2093,12阶的本原多项式系数为4179,13阶的本原多项式系数为8219,14阶的本原多项式系数为17475,15阶的本原多项式系数为32771,16阶的本原多项式系数为69643,17阶的本原多项式系数为131081,18阶的本原多项式系数为262273,19阶的本原多项式系数为524327,20阶的本原多项式系数为1048585
时间: 2023-10-04 08:12:14 浏览: 113
以下是利用MATLAB编写的具有菜单页面的m序列生成器代码:
```matlab
function m_sequence_generator()
% M序列生成器
while true
% 显示菜单
disp('--------------------');
disp('M序列生成器');
disp('1. 生成m序列');
disp('2. 退出');
disp('--------------------');
% 获取用户输入
choice = input('请输入您的选择:');
if choice == 1
% 获取移位寄存器初值和阶数
init_value = input('请输入移位寄存器的初值:', 's');
order = input('请输入移位寄存器的阶数:');
% 根据阶数查找本原多项式系数表
switch order
case 2
coefficient = 7;
case 3
coefficient = 11;
case 4
coefficient = 19;
case 5
coefficient = 37;
case 6
coefficient = 67;
case 7
coefficient = 137;
case 8
coefficient = 285;
case 9
coefficient = 529;
case 10
coefficient = 1033;
case 11
coefficient = 2093;
case 12
coefficient = 4179;
case 13
coefficient = 8219;
case 14
coefficient = 17475;
case 15
coefficient = 32771;
case 16
coefficient = 69643;
case 17
coefficient = 131081;
case 18
coefficient = 262273;
case 19
coefficient = 524327;
case 20
coefficient = 1048585;
otherwise
disp('阶数无效,请重新输入!');
continue;
end
% 生成m序列
m_sequence = generate_m_sequence(init_value, order, coefficient);
% 显示多项式系数和m序列
disp('多项式系数:');
disp(coefficient);
disp('m序列:');
disp(m_sequence);
elseif choice == 2
% 退出程序
break;
else
disp('选择无效,请重新输入!');
end
end
end
function m_sequence = generate_m_sequence(init_value, order, coefficient)
% 生成m序列
% 初始化移位寄存器
shift_register = zeros(1, order);
for i = 1:order
shift_register(i) = str2double(init_value(i));
end
% 计算m序列
m_sequence = zeros(1, 2^order - 1);
for i = 1:length(m_sequence)
m_sequence(i) = shift_register(end);
feedback = mod(sum(shift_register .* coefficient), 2);
shift_register = [feedback shift_register(1:end-1)];
end
end
```
在运行程序后,用户可以选择生成m序列或退出程序。如果选择生成m序列,则需要输入移位寄存器初值和阶数。程序会根据输入的阶数查找本原多项式系数表,并计算出对应的m序列。最后,程序会输出多项式系数和m序列。
注意:在输入移位寄存器初值时,需要输入一个长度为阶数的二进制字符串,例如,当阶数为3时,移位寄存器初值可以为'101'。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)