% 定义信源概率分布
p = [1/2, 1/4, 1/4];
% 计算信源的熵率
entropy_rate = -sum(p .* log2(p));
% 计算二次拓展信源的概率分布
p_2_expansion = zeros(3, 3);
for i = 1:3
for j = 1:3
p_2_expansion(i,j) = p(i) * p(j);
end
end
% 计算二次拓展信源的熵
entropy_2_expansion = -sum(p_2_expansion(:) .* log2(p_2_expansion(:)));
% 计算三四次拓展信源的概率分布
p_3_expansion = zeros(3, 3, 3);
p_4_expansion = zeros(3, 3, 3, 3);
for i = 1:3
for j = 1:3
for k = 1:3
p_3_expansion(i,j,k) = p(i) * p(j) * p(k);
for l = 1:3
p_4_expansion(i,j,k,l) = p(i) * p(j) * p(k) * p(l);
end
end
end
end
% 计算三次拓展信源的熵
entropy_3_expansion = -sum(p_3_expansion(:) .* log2(p_3_expansion(:)));
% 计算四次拓展信源的熵
entropy_4_expansion = -sum(p_4_expansion(:) .* log2(p_4_expansion(:)));
% 显示结果
disp(['信源的熵率:', num2str(entropy_rate)]);
disp(['二次拓展信源的熵:', num2str(entropy_2_expansion)]);
disp(['三次拓展信源的熵:', num2str(entropy_3_expansion)]);
disp(['四次拓展信源的熵:', num2str(entropy_4_expansion)]);