• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Matlab
  • 标签:

资源简介

关于最大似然(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

评论

共有 条评论