设计一个N=10的PN序列发生器,每符号5个采样(不调用replicate等MATLAB自带的函数),画出PN序列的自相关函数、只显示前101个元素的部分自相关函数、PN序列发生器输出端的前101个采样
时间: 2024-02-29 22:51:12 浏览: 159
自相关函数和互相关函数的利用MATLAB计算和作图.doc
5星 · 资源好评率100%
PN序列是通过LFSR(线性反馈移位寄存器)实现的,可以使用MATLAB中的shiftregister函数来实现。具体实现如下:
```matlab
% PN序列发生器
N = 10; % PN序列长度
M = 5; % 每符号采样数
L = N * M; % 采样总数
s = zeros(1, L); % 初始化输出序列
% 初始化LFSR
reg = [1 0 0 0 0 0 0 0 0 0];
% 产生PN序列
for i = 1:L
s(i) = reg(end); % 输出序列的当前采样
fb = xor(reg(3), reg(end)); % LFSR的反馈位
reg = circshift(reg, [0 1]); % LFSR移位
reg(1) = fb; % 更新LFSR的第一个寄存器
end
% 绘制PN序列的自相关函数
autocorr(s, L-1);
% 绘制前101个元素的部分自相关函数
parcorr(s(1:101), 100);
% 绘制输出端的前101个采样
stem(s(1:101));
```
上述代码中,我们使用了shiftregister函数来实现LFSR,其中reg表示LFSR的寄存器状态,shiftregister函数用于实现移位操作。PN序列的自相关函数和部分自相关函数可以使用MATLAB自带的autocorr和parcorr函数实现,输出端的前101个采样使用stem函数进行绘制。
阅读全文