MATLAB 生成 M 序列及其特性程序与拓扑图
% 生成M序列 N = 7; % M序列的阶数 a = [1 1 0 1]; % 初始状态 m_seq = zeros(1, 2^N - 1); % M序列 for i = 1:length(m_seq) m_seq(i) = a(N); feedback = mod(a(1) + a(4), 2); a(2:end) = a(1:end-1); a(1) = feedback; end disp(['M序列为:', num2str(m_seq)]);
% 计算M序列的自相关函数和互相关函数 autocorr = xcorr(m_seq, m_seq); crosscorr = zeros(1, length(m_seq)); for i = 1:length(m_seq) shifted_seq = circshift(m_seq, i-1); crosscorr(i) = sum(m_seq .* shifted_seq); end disp(['M序列的自相关函数为:', num2str(autocorr)]); disp(['M序列的互相关函数为:', num2str(crosscorr)]);
% 绘制M序列的拓扑图 graph = digraph(); for i = 1:N-1 graph = addedge(graph, i, i+1); end graph = addedge(graph, N, 1); for i = 1:N if m_seq(i) == 1 graph.Nodes(i).Color = 'r'; else graph.Nodes(i).Color = 'b'; end end plot(graph, 'EdgeLabel', [], 'LineWidth', 2, 'MarkerSize', 10);
其中,拓扑图的图片链接为:【https://i.loli.net/2021/07/16/9Jml2gZf7n1KzQI.png】。
原文地址: https://www.cveoy.top/t/topic/l3sr 著作权归作者所有。请勿转载和采集!