码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • m基于matlab的光通信的信道估计,均衡,抑制papr误码率仿真,对比ZF,RLS,MMSE三种算法


    目录

    1.算法描述

    2.仿真效果预览

    3.MATLAB核心程序

    4.完整MATLAB


    1.算法描述

    可见光通信的信道估计,均衡,抑制papr。

    不考虑光信道,用传统的无线通信的OFDM的信道估计,均衡,抑制papr  信道估计,均衡最好有两个以上的方法比较

    %本次仿真载频为2GHz,带宽1MHz,子载波数128个,cp为16
    %子载波间隔为7.8125kHz
    %一个ofdm符号长度为128us,cp长度为16us
    %采用16QAM调制方式
    %最大doppler频率为132Hz
    %多径信道为5径,功率延迟谱服从负指数分布~exp(-t/trms),trms=(1/4)*cp时长,各径延迟取为delay=[0 2e-6 4e-6 8e-6 12e-6]

    Zero forcing, ZF:简单,但放大了噪声,性能最差

    Minimum Mean Square Error, MMSE:考虑了噪声因素,性能比ZF好

    2.仿真效果预览

    matlab2022a仿真如下:

    3.MATLAB核心程序

    1. clc;
    2. clear all;
    3. close all;
    4. warning off;
    5. addpath 'func\'
    6. sel = 3;
    7. %FFT长度
    8. FFTLen = 64;
    9. %循环前缀长度
    10. CPLen = 16;
    11. %QAM
    12. M = 4;
    13. %子载波个数
    14. Ns = 8;
    15. w = ones(FFTLen,1);
    16. SNRdB = [0:2:26];
    17. for ii = 1:length(SNRdB)
    18. ii
    19. SNRS = SNRdB(ii);
    20. NUM = 0;
    21. ERR = 0;
    22. while ERR <= 2000
    23. ERR
    24. NUM = NUM + 1;
    25. store_input = zeros(Ns,FFTLen*M);
    26. store_output = zeros(Ns,FFTLen*M);
    27. store_error = zeros(Ns,FFTLen);
    28. for sym=1:Ns
    29. %发送数据
    30. input = rand(1,FFTLen*M) > 0.5;
    31. store_input(sym,:) = input;
    32. %发送
    33. [signal_tx,input_symbols] = func_transmitter(input,FFTLen,CPLen,M);
    34. %通过信道
    35. signal_rx = func_channel(signal_tx,SNRS);
    36. %估计,均衡,
    37. if sel == 1
    38. [signal_recovered,w,error_sym] = func_receiver_mmse(signal_tx,signal_rx,input_symbols,FFTLen,CPLen,M,w);
    39. end
    40. if sel == 2
    41. [signal_recovered,w,error_sym] = func_receiver_zf(signal_tx,signal_rx,input_symbols,FFTLen,CPLen,M,w);
    42. end
    43. if sel == 3
    44. w = zeros(3,1);
    45. [signal_recovered,w,error_sym] = func_receiver_rls(signal_tx, signal_rx, FFTLen, CPLen, M, w, 3);
    46. end
    47. store_output(sym,:) = signal_recovered;
    48. store_error(sym,:) = error_sym.';
    49. end
    50. errors_ext = abs(store_input - store_output);
    51. errors = errors_ext(FFTLen+1:length(errors_ext));
    52. num_errors = sum(sum(errors));
    53. ERR = ERR + num_errors;
    54. end
    55. BER(ii) = ERR/NUM/(FFTLen*M*(Ns-1));
    56. end
    57. % figure;
    58. % semilogy(SNRdB,BER,'b-o');
    59. % grid on;
    60. % ylabel('Error');
    61. % xlabel('SNR');
    62. if sel == 1
    63. save rmmse.mat SNRdB BER
    64. end
    65. if sel == 2
    66. save rzf.mat SNRdB BER
    67. end
    68. if sel == 3
    69. save rls.mat SNRdB BER
    70. end
    71. figure;
    72. load rmmse.mat
    73. semilogy(SNRdB,BER,'b-o');
    74. hold on
    75. load rzf.mat
    76. semilogy(SNRdB,BER,'r-o');
    77. hold on
    78. load rls.mat
    79. semilogy(SNRdB,BER,'k-o');
    80. hold on
    81. legend('MMSE','ZF','RLS');
    82. grid on;
    83. ylabel('Error');
    84. xlabel('SNR');
    85. 01_099m

    4.完整MATLAB

    V

  • 相关阅读:
    Python零基础入门-11 标准库简介 —— 第二部分
    Leetcode(633)——平方数之和
    rtsp_topic
    XML - XML学习/XML文件解析器(C++)实现
    Python while循环语句语法格式
    .NET 开源工作流: Slickflow流程引擎高级开发(十) -- BpmnJS流程设计器集成
    【算法刷题 | 贪心算法03】4.25(最大子数组和、买卖股票的最佳时机|| )
    【学习日志】2022.11.10 C++11常量表达式、用户定义字面量、原生字符串字面值、类的改进、Leetcode疼迅优选50提T1
    【博客488】prometheus-----长尾问题,跳变问题,数据外推问题,增量丢失问题
    tracy 学习
  • 原文地址:https://blog.csdn.net/hlayumi1234567/article/details/128165846
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号