资源简介
关于最大似然(ML)准则和最大后验概率(MAP)的MATLAB代码
代码片段和文件信息
clear
clc
%输入参数变量的值
p = 0.1; %序列{+1-1}中+1出现的概率为p,-1出现的概率为1-p
signal_power = 1; %信号功率为1
noise_power = 0.0; %噪声功率为0
noise_power_times = 50; %信噪比的次数
test_times = 100; %重复实验的次数
length = 1000; %序列的长度
SNR_dB = zeros(noise_power_times1); %保留每次实验的SNR
BER_mean_MAP = zeros(noise_power_times1); %保留每次MAP实验BER的均值
BER_mean_ML = zeros(noise_power_times1); %保留每次ML实验BER的均值
BER_all_MAP = zeros(test_times1); %保留每次MAP实验的BER
BER_all_ML = zeros(test_times1); %保留每次ML实验的BER
%运算过程
for i = 1: noise_power_times %信噪比的个数
noise_power = noise_power+i/10; %噪声功率N
noise_mean = 0; %高斯白噪声的均值
noise_var = noise_power*0.5; %高斯白噪声的方差
for j = 1:test_times %进行重复实验
%信号序列
signal = randsrc(1length[-1 1;1-p p]); %randsrc()产生-1和1的贝努利随机序列,概率均为 0.5
%噪声序列
noise = normrnd(noise_meannoise_var[1length]); %normrnd()产生N(noise_meannoise_var)的高斯白噪声
%加噪声的信号序列
mixed_signal = signal + noise;
judged_signal_MAP = zeros(size(signal)); %zeros()初始化序列的值为0,size()获得矩阵的行数和列数
judged_signal_ML = zeros(size(signal)); %zeros()初始化序列的值为0,size()获得矩阵的行数和列数
for k = 1:length
%最佳MAP判决的信号序列
i
评论
共有 条评论