MIMO-OFDM系统中信道估计的快速谐波搜索技术(Matlab代码实现)

news2024/11/17 16:52:25

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

目前,由OFDM技术与空时编码技术相融合而成的MIMO-OFDM技术已经引起了通信领域的广泛关注和研究.在无线通信系统中,MIMO-OFDM技术不仅能够有效地增强数据传输速率,增加系统传输容量,而且能有效地抑制多径衰落和干扰.信道估计问题是MIMO-OFDM系统的一项关键技术问题,因此,本论文针对MIMO-OFDM系统的信道估计问题展开研究. 

📚2 运行结果

主函数部分代码:

clc;
clear all;
close all;
​
global ofdm chan
global xb 
​
  %======================================================================
    %                               Inputs
    %======================================================================
    % Input parameters are (if not set the defalt value will be set)
        % ofdm.Nb      = 1e2;                 % number of blocks
        % ofdm.Nt      = 2;                   % number of transmit antennas    
        % ofdm.Nr      = 4;                   % number of receive antennas
        % ofdm.K       = 128;                 % number of subcarriers    
        % ofdm.G       = 1/4;                 % Guard interval percentage    
        % ofdm.Mod     = 4;                   % QPSK Modulation
        % ofdm.PSpace  = 1;                   % subcarrier space between two pilots
    % channel parameters
        % chan.SNR_dB  = 15;                  % signal to noise ratio
        % chan.L       = 6;                   % number of taps in each transmit-receive antenna
    % control parameters
        % ofdm.ifDemodulateData = 1;          % (1,0) if 1, the code demodulates the transmitted via LS data and calculates the BER
        % ofdm.ifDisplayResults = 1;          % (1,0) if 1, display the results in the command window
    %======================================================================
    %                               Outputs
    %======================================================================
    % The main outputs are listed below
        % chan.MSE_Theory           % Minimum squared error of LSE channel estimation in theory
        % chan.MSE_Simulation       % Minimum squared error of LSE channel estimation in simulations
        % ofdm.BER                  % Bit Error Rate if ofdm.ifDemodulateData = 1
​
  
    
    
    SNR_dBV     = 3:3:15;            % vector of SNR values in dB
    SNR_dBVL    = length(SNR_dBV);   % length of SNR vector
    nMonteCarlo = 5;%e2;            % number of Monte Carlo to find the value of each point in the figure
    ofdmIn.Nt   = 2;                 % number of transmit antennas
    ofdmIn.Nr   = 3;                 % number of recieve antennas
    ofdmIn.ifDisplayResults    = 0;  % turn off the display
    % other parameters of ofdm can also be set. see help of MIMO_OFDM_LSE_CHAN_EST
%% Outputs
    MSE_CHAN_SIM = zeros(nMonteCarlo,SNR_dBVL);     % MSE of LSE channel estimation in simulation
    MSE_CHAN_THR = zeros(nMonteCarlo,SNR_dBVL);     % MSE of LSE channel estimation in theory
    MSE_CHAN_BER = zeros(nMonteCarlo,SNR_dBVL);     % BER of the MIMO OFDM with LSE channel estimation
    
    
    
    
%% Parameters
    % system parameters (independent)
    ofdm.Nb      = 1e2;                 % number of blocks
    ofdm.Nt      = 2;                   % number of transmit antenna    
    ofdm.Nr      = 4;                   % number of receive antenna
    ofdm.K       = 128;                 % number of subcarriers    
    ofdm.G       = 1/4;                 % Guard interval percentage    
    ofdm.Mod     = 4;                   % QPSK Modulation    
    ofdm.PSpace  = 1;                   % pilot space between two pilots
    
    % channel parameters
    chan.SNR_dB  = 15;                  % signal to noise ratio
    chan.L       = 6;                   % number of channel taps between each transmit-receive antenna
    
    % control parameters
    ofdm.ifDemodulateData = 1;          % (1,0) if 1, the code demodulates the transmitted data via LS algorithm, and calculates the BER
    ofdm.ifDisplayResults = 1;          % (1,0) if 1, displays the results in the command window
    
​
    % dependent parameters
    ofdm.PPos    = 1:(ofdm.PSpace+1):ofdm.K;    % OFDM pilot positionss
    ofdm.PL      = length(ofdm.PPos);           % Length of pilot subcarriers
    ofdm.DPos    = setxor(1:ofdm.K,ofdm.PPos);  % OFDM data positions
    ofdm.DL      = length(ofdm.DPos);           % Length of data subcarriers
    ofdm.BER     = 0;                           % set the BER to zero
    chan.sigma   = sqrt(10^(-0.1*chan.SNR_dB)); % noise power
    
    % normalization of the energy for the constelation        
        temp         = 0:ofdm.Mod-1;           % possible symbols
        temp         = qammod(temp,ofdm.Mod);  % modulated symbols
        temp         = abs(temp).^2;           % power of each point in the constellation
        temp         = mean(temp);             % average energy of the constellation
        ofdm.ModNorm = 1/sqrt(temp);           % normaliztion factor
    
%% Data generation
    % symbol generation
    ofdm.d      = randi(ofdm.Mod,ofdm.DL,ofdm.Nb,ofdm.Nt)-1;   % generation of a DL by nB by Nt matrix of data symbols
    
    
    figure,
    stem(ofdm.d(:,:,1))
    xlabel('Sample')
    ylabel('Data Gen')
    
%% data Modulation
    ofdm.dMod   = zeros(ofdm.K,ofdm.Nb,ofdm.Nt);    % memory allocation for the ofdm blocks transmitted from each Tx antenna
    if ofdm.DL > 0
        for nt = 1 : ofdm.Nt
            ofdm.dMod(ofdm.DPos,:,nt) = ofdm.ModNorm*qammod(ofdm.d(:,:,nt),ofdm.Mod);
        end
    end
​

🎉3 参考文献

​[1]曹松景. MIMO-OFDM系统中信道估计方法的研究[D]. 重庆大学.

点击文章左下角【阅读全文】

部分理论引用网络文献,若有侵权联系博主删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11. 图的入门

11. 图的入门 11.1 图的实际应用: ​ 在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。 地图: ​ 我们生活中经常使用的地图,基本上是由…

关于函数栈帧的创建与销毁和可变参数列表

目录 1. 深刻理解函数调用过程1.1 基本概念1.2 函数栈帧的创建于销毁1.2.1 栈帧创建1.2.2 栈帧销毁1.2.3 有趣的现象 2. 了解可变参数列表的使用与原理2.1 可变参数列表与函数栈帧的关系2.2 宏的工作过程2.3 宏的具体实现原理 1. 深刻理解函数调用过程 1.1 基本概念 关于函数…

VBA智慧办公9——图例控件教程

如图,利用VBA进行可视化交互界面的设计,在界面中我们用到了label,button,text,title等多个工具,在进行框图效果的逐一实现后可进行相应的操作和效果实现。 VBA(Visual Basic for Applications&a…

家用洗地机要怎么选?平价洗地机推荐

国内大多数家庭比较注重地面清洁,不仅是要扫的干净,更要拖的干净,尤其追求地板锃亮的视觉效果,因此家用洗地机因其清洁效率高、能吸除干湿垃圾以及自清洁拖布等优点,成为很多家庭用于替代扫帚拖把等传统清洁工具的清洁…

可视化Echarts 柱状图、饼状图、折线图的设置

柱状图 饼状图 折线图 柱状图 基本的柱状图设置 <template> <div ref"ec" id"ec"></div> </template><script> import * as echarts from "echarts"; //引用echartsexport default {mounted(){let mc ech…

【网络安全】CVE 漏洞分析以及复现

漏洞详情 Shiro 在路径控制的时候&#xff0c;未能对传入的 url 编码进行 decode 解码&#xff0c;导致攻击者可以绕过过滤器&#xff0c;访问被过滤的路径。 漏洞影响版本 Shiro 1.0.0-incubating 对应 Maven Repo 里面也有 【一一帮助安全学习&#xff0c;所有资源获取一一…

onnx手动操作001

使用onnx.helper可以进行onnx的制造组装操作&#xff1a; 对象描述ValueInfoProto 对象张量名、张量的基本数据类型、张量形状算子节点信息 NodeProto算子名称(可选)、算子类型、输入和输出列表(列表元素为数值元素)GraphProto对象用张量节点和算子节点组成的计算图对象ModelP…

王道计组(23版)3_存储系统

概述 RAM&#xff1a;随机存储器&#xff0c;任一个存储单元可以随机存取&#xff0c;易失。用作主存(DRAM)或Cache(SRAM) ROM&#xff1a;只读存储器&#xff0c;可随机读出&#xff0c;写入较慢&#xff0c;需刷新&#xff0c;非易失。Flash、SSD固态硬盘、U盘 _____SSD&…

某医院网络安全分析案例

背景 我们已将NetInside流量分析系统部署到某市医院的机房内&#xff0c;使用流量分析系统提供实时和历史原始流量。本次分析重点针对网络流量安全进行分析&#xff0c;以供安全取证、网络质量监测以及深层网络分析。 分析时间 报告分析时间范围为&#xff1a;2023-04-12 16…

牛客网Verilog刷题——VL3

牛客网Verilog刷题——VL3 题目答案 题目 要求设计一个奇偶校验模块&#xff0c;根据sel信号选择进行奇校验还是偶校验&#xff08;sel0&#xff0c;进行偶校验&#xff1b;sel1&#xff0c;进行奇校验&#xff09;&#xff0c;根据输入的32位数据生成1位的奇偶校验位。   …

云安全监控及云数据保护

如今&#xff0c;许多公司已经迁移到云&#xff0c;目的是进行扩展和现代化&#xff0c;但在此过程中&#xff0c;他们面临着新的、代价高昂的风险。云安全是一种多管齐下的方法&#xff0c;专注于保护数据和业务内容&#xff0c;同时确保企业的业务运营高效运行。 监控云访问 …

JMM 内存模型

文章目录 1、 java 内存模型1.1 原子性1.2 问题分析1.3 解决方法 2、可见性2.1 退不出的循环2.2 解决方法2.3 可见性 3、有序性3.1 诡异的结果3.2 解决方法3.3 有序性理解3.4 happens-before 4、CAS 与 原子类4.1 CAS4.2 乐观锁与悲观锁4.3 原子操作类 5、synchronized 优化5.1…

MemCache详细解读

目录 一、MemCache是什么 二、MemCache特性和限制 三、MemCache实现原理 四、MemCache的Java实现实例 五、MemCache指令汇总 一、MemCache是什么 MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数据库的负载。它…

【李宏毅】自注意力机制self-attention

课件网址&#xff1a; 【機器學習2021】自注意力機制 (Self-attention) (上) - YouTube 【機器學習2021】自注意力機制 (Self-attention) (下) - YouTube 这两章课程主要在讲self-attention是怎么做的&#xff0c;对应的矩阵操作是什么&#xff0c;以及为什么要这样处理。 …

MySQL_第13章_约束

第13章_约束 1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性&#xff08;Data Integrity&#xff09;是指数据的精确性&#xff08;Accuracy&#xff09;和可靠性&#xff08;Reliability&#xff09;。它是防止数据库中存在不符合语义规定的数据和防止因错误信息…

SQL Server 意向锁

SQL Server 数据库引擎使用意向锁来确保共享锁&#xff08;S 锁&#xff09;或排他锁&#xff08;X 锁&#xff09;放置在锁层次结构的底层资源上。 意向锁之所以命名为意向锁&#xff0c;是因为在较低级别锁前可获取它们&#xff0c;因此会通知意向将锁放置在较低级别上。 意向…

fastadmin后台用户管理中余额记录显示

查询明细JS代码 {field: buttons,width: "200px",title: __(查询明细),table: table,events: Table.api.events.operate,buttons: [{name: money,text: __(余额),title: __(余额),classname: btn btn-xs btn-success btn-dialog,icon: fa fa-database,url: user/us…

按照条件向Spring容器中注册bean

1.Conditional注解概述 Conditional注解可以按照一定的条件进行判断&#xff0c;满足条件向容器中注册bean&#xff0c;不满足条件就不向容器中注册bean。 package org.springframework.context.annotation;import java.lang.annotation.Documented; import java.lang.annota…

数据转换器的工程师指南

数据转换是连接模拟和数字世界的重要电路&#xff0c;在大多数嵌入式系统中&#xff0c;您都会发现模拟到数字转换和数字到模拟转换&#xff0c;从物联网&#xff08;IoT&#xff09;传感器到无线网络&#xff0c;从智能家居自动化到电源&#xff0c;数据转换无处不在。在本文中…

Git在工作中的使用流程

Git中的分支 master分支&#xff1a;所有用户可见的正式版本&#xff0c;都从master发布&#xff08;也是用于部署生产环境的分支&#xff0c;确保master分支稳定性&#xff09;。主分支作为稳定的唯一代码库&#xff0c;不做任何开发使用。master 分支一般由develop以及hotfi…