检测性能的蒙特卡洛仿真-估计部分

article/2025/4/22 3:25:21

一、 实验目的

使用matlab编程,利用蒙特卡洛方法,对一个简单的二元假设检验问题进行仿真,分析不同信噪比下检测器的性能,分析SNR、MSE对估计的影响。

二、 实验步骤

通过蒙特卡洛仿真实验,检测性能在不同信噪比下的表现,以验证信噪比对于检测性能的影响。

实验步骤:

  1. 根据给定的参数设置,生成信号 s 和噪声 w ,并将它们相加得到观测数据 x 。
  2. 对于每一个待估计频率 f ,计算对数似然函数 log L ( f )的值,并找到最大值对应的 f 值作为 MLE 的结果f
  3. 计算 MLE 的均方误差(MSE),即(f − f 0 )² 的平均值。
  4. 计算 CRB 的值,并与 MLE 的 MSE 进行比较。
  5. 重复上述步骤多次(本实验中重复 5000 次),并绘制 MLE 和 CRB 随 SNR 变化的曲线图。

三、 实验原理

假设观测到一个长度为 N 的信号 s ,其形式为:

                                                              (3-1)

其中f0 是信号频率, n是时域采样点, w 是加性高斯白噪声,其方差为 σ² ,信噪比(SNR)定义为:

                                                                       (3-2)

本实验中,信号长度 N = 20 ,信号频率 f0 =0.2565,信噪比 SNR 在 -6 到 8 dB 之间变化,待估计频率 f 在 0.001 到 0.499 之间变化。

3.1 MLE

对于给定的观测数据 s ,其对数似然函数为:

                                                                             (3-3)

MLE 的思想是找到使得对数似然函数最大化的 f 值,即:

                                                               (3-4)

由于对数似然函数是关于 f 的非线性函数,无法直接求解出解析解,因此需要采用数值方法来求解。本实验中,使用了遍历搜索法,即在给定的 f 范围内,逐点计算对数似然函数的值,并找到最大值对应的 f 值作为 MLE 的结果。

3.2 CRB

CRB 是一种评价无偏估计器性能的指标,它给出了无偏估计器方差的下界,即:

                                                                               (2-5)

其中 I(f)是费舍尔信息量,定义为:

                                                   (2-6)

于本实验中的信号模型,可以推导出:

                                           (2-6)

因此,CRB 可以表示为:

                                                                                                                                                                           (2-7)

四、Matlab实现

Matlab代码实现如下:

%%参数区

N =20; % 信号长度

f0 = 0.2565; % 信号频率

SNR0=-6:2:8; % 信噪比范围

sigma2=0.5./10.^(SNR0/10); % 噪声方差

f = 0.001:0.001:0.499; % 待估计频率范围

% CRBIMLE

for i = 1:length (sigma2)

    s = cos(2*pi*f0*[0:N-1]); % 生成信号

    SNR(i)=10*log10(0.5/sigma2(i)); % 计算信噪比

    CRB(i) = sigma2(i)/(4*pi^2*sum([0:N-1].^2.*(sin(2*pi*f0*[0:N-1])).^2)); % 计算CRB

    for mc = 1:5000 % 蒙特卡洛仿真次数

        x = s + sqrt (sigma2 (i)) *randn(N,1).'; % 生成含噪声信号

        for j=1:length(f)

            J1(i,j)=sum((x-cos(2*pi*f(j)*[0:N-1])).^2); % 计算似然函数

        end

        u1 = find(J1(i,:) == min(J1(i,:))); % 找到似然函数最小值对应的频率

        mle(mc,i) = (f(u1)-f0).^2; % 计算MLE

    end

    MLE(i)=sum(mle(:,i)/mc); % 计算MSE

end   

%%plot

figure(1)

semilogy(SNR,(MLE),'r-s'); % 绘制MLE曲线

hold on

semilogy(SNR,(CRB),'b-+'); % 绘制CRB曲线

xlabel('SNR'),ylabel('MSE')

legend('MLE','CRB') % 添加图例

五、实验结果

通过蒙特卡洛仿真实验,可以发现:在频率估计中,CRB是一个理论上的下界,而MLE是一种常用的实际估计方法。在信噪比较低的情况下,MLE的MSE较高,估计结果不够准确;而在信噪比较高的情况下,MLE的MSE逐渐接近CRB,估计结果更加准确。因此,在实际应用中,需要根据具体情况选择合适的估计方法。。

图 5-1 SNR-MSE曲线图


http://chatgpt.dhexx.cn/article/lw8Vto8S.shtml

相关文章

cadence的工艺角仿真、蒙特卡洛仿真、PSRR

cadence的工艺角仿真、蒙特卡洛仿真、PSRR 工艺角仿真打开ADE XL选择工艺角为ff设置工艺角 蒙特卡洛仿真PSRR温度扫描 学习来源:https://www.bilibili.com/video/BV1gX4y1g7JJ?spm_id_from333.337.search-card.all.click 工艺角仿真 打开ADE XL 当你在ADEL完成仿…

雅可比迭代法法

雅可比迭代法法 在图形图像中很多地方用到求矩阵的特征值和特征向量,比如主成分分析、OBB包围盒等。编程时一般都是用数值分析的方法来计算,这里介绍一下雅可比迭代法求解特征值和特征向量。雅可比迭代法的原理,网上资料很多,详细…

雅可比迭代法和高斯赛德尔迭代法

刚学 Jacobi算法和Gauss_Siedel算法不久&#xff0c;觉的对以后学习会有帮助&#xff0c;所以记下来&#xff0c;希望感兴趣的朋友共勉&#xff01; 雅克比迭代 #include < iostream > #include " math.h " using namespace std; #define n 3 double a[n][n] …

数值计算——雅可比迭代法解线性方程组

1.雅克比迭代法的计算过程: (1).取初始向量: &#xff08;1&#xff09; (2).迭代过程 &#xff08;2&#xff09; 2.求解实例&#xff1a; &#xff08;3&#xff09; 用 Jacobi 方法求解&#xff0c;精确到小数点后 6 位, 给出所需步数及残差; 3.求解结果&#xff1a; 当n1…

雅可比迭代法、高斯-赛德尔迭代法、超松弛迭代法 matlab 实现

雅可比迭代法、高斯-赛德尔迭代法、超松弛迭代法 matlab 实现 一、雅可比迭代法 程序代码&#xff1a; function y Jacobi(A,b,e,M) % input: A 的对角线元素均不为 0 e: 精度 M: 最大计算次数 % output: y: 方程的解n length(A); x0 zeros(n,1); y zeros(n,1);[l,w] si…

数值计算——雅可比迭代法解线性方程组(附代码)

1.雅克比迭代法的计算过程: (1).取初始向量: &#xff08;1&#xff09; (2).迭代过程 &#xff08;2&#xff09; 2.求解实例&#xff1a; &#xff08;3&#xff09; 用 Jacobi 方法求解&#xff0c;精确到小数点后 6 位, 给出所需步数及残差; 3.求解结果&#xff1a; 当n1…

雅可比迭代法程序c语言,求雅可比迭代法解方程组的C\C++程序

满意答案 singleycf 2013.07.05 采纳率&#xff1a;54% 等级&#xff1a;13 已帮助&#xff1a;7908人 #include #include Jacobidiedai(int n, double *a, double *b,double *x) { int i,j; double *x0,m0,eps; x0 (double *) malloc(n*sizeof(double)); for(i0;i x0[i]x…

雅可比迭代法解线性方程组。

L U分解在我之前写的文章里。 定义的变量有点多&#xff0c;但挺容易看的。 #include<stdio.h> #include<math.h> #define N 3 int main (void) {double A[N][N] {0};double D[N][N] {0};double L[N][N] {0};double U[N][N] {0};double C[N][N] {0};double…

线性方程组迭代法—雅克比迭代法C++

此例子使用三个变量、三个方程的情况&#xff0c;如需讨论多个的情况&#xff0c;使用vector稍加修改即可。 使用的方程组如下&#xff1a; 每次迭代的值如下&#xff1a; 程序流程图&#xff1a; 程序代码&#xff1a; /********雅克比迭代法********* *1.Xi为每一步迭代…

《数值分析》-- 雅可比迭代法、高斯—塞德尔迭代法

文章目录 一、基本迭代法的格式及收敛性1.1 迭代法思想1.2 向量序列收敛的定义 二、迭代法的收敛与发散三、雅可比迭代法和高斯赛德尔迭代法3.1 雅可比迭代法3.2 高斯――赛得尔(Gauss-Seidel)迭代法 四、迭代法的收敛性4.1 严格对角占优矩阵与对角占优矩阵4.2 Jacobi迭代法和G…

雅克比迭代法,高斯赛德尔迭代法,sor迭代法(python)

计算方法实验&#xff0c;在已给matlab的程序基础上进行修改得到的python程序&#xff0c;原理不再赘述。实际使用时&#xff0c;只需修改以下程序中的A,b矩阵&#xff08;注意只适用与A为n*n的情况&#xff09; 1.雅克比迭代法 import numpy as npA np.array([[10,-1,-2],[…

C语言实现雅克比迭代法求根

C语言实现雅克比迭代法求根 雅克比迭代法求根 C语言实现雅克比迭代法求根问题描述算法思想C语言程序实验结果 问题描述 设方程组 A x b Ax b Axb的系数矩阵 A A A非奇异 &#xff0c;且 a i i ≠ 0 {a_{ii}} \ne 0 aii​​0将 A A A分裂为&#xff1a; A D L U A D L…

雅克比迭代法和高斯-塞德尔迭代法

https://wenku.baidu.com/view/ac6a0d89d0d233d4b04e6905.html 另外附上迭代收敛的条件&#xff1a; 且越小&#xff0c;收敛的越快。

雅可比迭代法

雅可比迭代法 设有线性方程组 &#xff08;1&#xff09; 其矩阵形式为 设系数矩阵A为非奇异矩阵&#xff0c;且 从式(1)的第个方程中解出&#xff0c;得其等价形式 (2) 取初始向量 对式(2)应用迭代法&#xff0c;建立相应的迭代公式 (3) 也可记为矩阵形式 (4) 若将系数…

数值分析-雅克比迭代法

雅克比迭代法 雅克比迭代法就是众多迭代法中比较早且较简单的一种&#xff0c;其命名也是为纪念普鲁士著名数学家雅可比。雅克比迭代法的计算公式简单&#xff0c;每迭代一次只需计算一次矩阵和向量的乘法&#xff0c;且计算过程中原始矩阵A始终不变&#xff0c;比较容易并行计…

雅克比迭代算法

From https://blog.csdn.net/weixin_33895016/article/details/86031039 雅克比迭代&#xff0c;一般用来对线性方程组&#xff0c;进行求解。形如&#xff1a; a11∗x1a12∗x2a13∗x3b1a11∗x1a12∗x2a13∗x3b1   a21∗x1a22∗x2a23∗x3b2a21∗x1a22∗x2a23∗x3b2   a31…

雅克比(Jacobi)迭代法求解线性方程组

长博文不利于翻阅&#xff0c;于是又将Jacobi迭代法单独出来了。 这篇博文把高斯—赛德尔迭代法和雅克比迭代法都放到一起了&#xff0c;个人觉得看着有点累。&#xff08;迭代法求解线性方程组&#xff09;&#xff0c;不过还是要看的&#xff0c;因为它引出了迭代法。 进入…

MATLAB Jacobi迭代法 求解线性方程组

文章目录 前言一、Jacobi迭代法是什么&#xff1f;二、对应的编程思想以及公式推导 1.Jacobi迭代法 公式推导2.Jacobi迭代法求解线性方程组 例子3.Jacobi迭代法 编程实现总结 前言 雅克比&#xff08;Jacobi&#xff09;迭代法求解线性方程组 一、Jacobi迭代法是什么&#xff1…

紧张的337小时,终于等来了宇宙条字节跳动offer

作者&#xff1a;不穿格子衫的Java程序猿 来源&#xff1a;https://url.cn/5IiC4LJ 坐标北京&#xff0c;某211本科毕业生&#xff0c;之前学校活动有去过字节跳动公司总部参观&#xff0c;所以一直以来就蛮想进入字节工作的&#xff0c;被字节的企业文化和工作氛围所影响。字节…

元宇宙(Metaverse)了解一下

元宇宙(Metaverse)了解一下 “元宇宙”这个29年前就被提出的概念&#xff0c;随着近几年吸纳了日臻成熟的AI、游戏引擎、AR/VR、区块链等技术成果后&#xff0c;突然间就吸引了创业者、资本和市场的注意力。 什么是元宇宙&#xff1f; 元宇宙(Metaverse)概念起源于科幻小说&…