首页 > 编程语言 >信道估计算法误码率仿真,对比不同导频长度,对比不同信道估计算法包括CS-OMP,LS,MMSE

信道估计算法误码率仿真,对比不同导频长度,对比不同信道估计算法包括CS-OMP,LS,MMSE

时间:2023-02-18 23:22:32浏览次数:41  
标签:算法 信道 估计 LS ave mse OMP 对比

1.算法描述

       所谓信道估计,就是从接收数据中将假定的某个信道模型的模型参数出来的过程。如果信道是线性的话,那么信道估计就是对系统冲激响应进行估计。

 

CS-OMP

 

       正则正交匹配追踪(Regularized OMP)算法在超宽带系统信道估计中的应用。OMP算法在应用于稀疏信号恢复时,具备贪婪算法计算速度快和计算复杂度低的特点。超宽带通信(UWB)系统的信道估计需要估计一组最大径的参数,而OMP具有能够可靠恢复近似稀疏含噪信号的能力,适用于UWB信道估计。

 

       假设需要重构信号x,现可将信号x抽象为RN空间的N×1维列向量,在RN空间中,任何信号均可以使用N×1的规范正交基向量:

 

 

 

 

       ∈RN为投影系数,但仅有K个非零元素(K<<N),此时是N维—K稀疏向量。在重构信号x时,仅需估计K个未知参数而不是N个实际的未知参数,从而大大减少了采样信号的量,同时可以恢复原信号x。在CS理论中,对需要重构的信号x的采样,实际上是利用M×N的矩阵的M个行向量对投影系数向量的一个线性投影过程。信号x经过线性变换后,输出的观测信号y包含M个参数,每一个参数均为信号x的一个观测量,即:

 

        在LS估计中,我们使用Y和Y‘’来进行计算,估计出的结果是H’而并非H,若估计的结果H’使得Y’与Y误差最小,则能得到的结果应该是H’与H(带三角)的误差最小,但H(带三角)也不是真实的信道矩阵,其内还包含了一个误差项Z/X,因此对于LS信道估计而言,其结果的精度是受这个误差项影响的,而这个误差项概括来说就是和SNR相关,SNR越大,误差项越小,LS估计精度越高。现依据LS最优准则对上式中H’进行估计,首先给出LS准则的代价函数。

 

 

 

 

MMSE

 

依旧是给出假定的信号关系式

 

 

       Y为接收数据(包含多径)大小为Nx1。

       X为先验信息,大小为NXM。

       h为信道冲激响应,大小为MX1。

       Z为噪声,大小为NX1。

       MMSE信道估计的代价函数为

 

 

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

3.MATLAB核心程序

 

%频域信道估计
clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default');
 
L1=31;
taps=6;%抽头数
K=taps;
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%---------------------------频域的信道脉冲响应----------------------%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR = [0:5:30];
LEN = length(SNR);
 
l1=channel(L1,taps);
l2=channel(L1,taps);
h=cat(2,l1,l2)';
L=size(h,1);
cs=zeros(3,LEN);
ls=zeros(3,LEN);
mmse=zeros(3,LEN);
for t=1:3
    N1=16*t;%训练序列长度
N=N1*20;
[cs_mse_ave,ls_mse_ave,mmse_mse_ave]=MSE_com(N,L,K,h,N1);
cs(t,:)=cs_mse_ave;
ls(t,:)=ls_mse_ave;
mmse(t,:)=mmse_mse_ave;
end
A113

 

  

 

标签:算法,信道,估计,LS,ave,mse,OMP,对比
From: https://www.cnblogs.com/51matlab/p/17133932.html

相关文章

  • 基于kmeans算法的数据聚类matlab仿真
    1.算法描述       聚类算法也许是机器学习中“新算法”出现最多、最快的领域,一个重要的原因是聚类不存在客观标准,给定数据集总能从某个角度找到以往算法未覆盖的某......
  • 算法刷题-字符串排序-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 算法刷题-字符串反转-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 算法刷题-字符串分隔-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 关于知识蒸馏,你一定要了解的三类基础算法
    前言 本文将对response-based、feature-based和relation-based这三类基础KD算法进行重点介绍,为大家后续的深入研究、交流打下基础。 本文转载自OpenMMLab作者|......
  • 算法刷题 Day 43 | ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
    1049.最后一块石头的重量II本题就和昨天的416.分割等和子集很像了,可以尝试先自己思考做一做。视频讲解:https://www.bilibili.com/video/BV14M411C7oVhttps://p......
  • 算法刷题-计算某字符出现次数-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 计算机的数据算法-内存|顺序表|链表|单链表|双端链表
    内存计算机的作用用来存储和运算二进制的数据问题:计算机如何计算1+2?将1和2的二进制类型的数据加载到计算机的内存中,然后使用寄存器进行数值的运算变量......
  • 代码随想录算法训练营 第三天 | 203.移除链表元素 707.设计链表 206.反转链表
    移除链表元素1,双指针pre和cur(如果cur.val等于target pre.next=cur.next)2,虚拟头结点可以保证头结点的处理方式也一致设计链表1,注意审题 ......
  • 灰色关联分析算法
    最近在学习灰色关联分析和评价,于是乎整理本篇资料,方便以后自己学习。一、灰色关联分析的优点是:它对样本量的多少,或样本量有无规律同样适用,并且计算量比较小,十分方便,并且不......