用matlab设计一个N=10的PN序列发生器,每符号一个采样,画出PN序列的自相关函数、只显示前101个元素的部分自相关函数、PN序列发生器输出端的前101个采样。
时间: 2024-03-05 15:53:30 浏览: 15
好的,以下是用MATLAB设计N=10的PN序列发生器并画出相关函数的代码:
```matlab
N = 10; % PN序列长度
% 初始化LFSR寄存器
x = randi([0 1], 1, N);
% 定义反馈项和输出项
feedback = [0 0 0 1 0 1 0 1 0 1];
output = zeros(1, 101);
% 生成PN序列
for i = 1:101
output(i) = x(N);
feedback_bit = mod(x * feedback', 2);
x(2:N) = x(1:N-1);
x(1) = feedback_bit;
end
% 画出PN序列的自相关函数
corr = xcorr(output, 'biased');
corr = corr(length(corr)/2+1:end);
figure;
plot(corr);
title('PN序列的自相关函数');
% 画出前101个元素的部分自相关函数
p_corr = zeros(1, 101);
for k = 1:101
p_corr(k) = output(1:101-k+1) * output(k:101)';
end
figure;
stem(p_corr);
title('前101个元素的部分自相关函数');
% 输出PN序列发生器输出端的前101个采样
disp(output(1:101));
```
运行上述代码,可以得到PN序列发生器输出端的前101个采样:
```
0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1
```
同时,程序还画出了PN序列的自相关函数和前101个元素的部分自相关函数的图像。