m基于matlab的光通信的信道估计,均衡,抑制papr误码率仿真,对比ZF,RLS,MMSE三种算法
创始人
2024-03-15 11:09:37
0

目录

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核心程序

clc;
clear all;
close all;
warning off;
addpath 'func\'sel    = 3;
%FFT长度
FFTLen = 64;
%循环前缀长度
CPLen  = 16; 
%QAM
M      = 4; 
%子载波个数
Ns     = 8;  
w      = ones(FFTLen,1); 
SNRdB  = [0:2:26];for ii = 1:length(SNRdB)iiSNRS = SNRdB(ii);NUM  = 0;ERR  = 0;while ERR <= 2000ERRNUM          = NUM + 1;store_input  = zeros(Ns,FFTLen*M); store_output = zeros(Ns,FFTLen*M);store_error  = zeros(Ns,FFTLen);for sym=1:Ns%发送数据input              = rand(1,FFTLen*M) > 0.5;store_input(sym,:) = input;%发送[signal_tx,input_symbols] = func_transmitter(input,FFTLen,CPLen,M);%通过信道signal_rx                 = func_channel(signal_tx,SNRS);%估计,均衡,if sel == 1[signal_recovered,w,error_sym] = func_receiver_mmse(signal_tx,signal_rx,input_symbols,FFTLen,CPLen,M,w);endif sel == 2[signal_recovered,w,error_sym] = func_receiver_zf(signal_tx,signal_rx,input_symbols,FFTLen,CPLen,M,w);end   if sel == 3w = zeros(3,1);[signal_recovered,w,error_sym] = func_receiver_rls(signal_tx, signal_rx, FFTLen, CPLen, M, w, 3);end                store_output(sym,:)            = signal_recovered;store_error(sym,:)             = error_sym.';enderrors_ext = abs(store_input - store_output);errors     = errors_ext(FFTLen+1:length(errors_ext));num_errors = sum(sum(errors));ERR        = ERR + num_errors;endBER(ii) = ERR/NUM/(FFTLen*M*(Ns-1));
end
% figure;
% semilogy(SNRdB,BER,'b-o');
% grid on;
% ylabel('Error');
% xlabel('SNR');if sel == 1save rmmse.mat SNRdB BER
end
if sel == 2save rzf.mat SNRdB BER
end
if sel == 3save rls.mat SNRdB BER
endfigure;
load rmmse.mat
semilogy(SNRdB,BER,'b-o');
hold on
load rzf.mat
semilogy(SNRdB,BER,'r-o');
hold on
load rls.mat
semilogy(SNRdB,BER,'k-o');
hold on
legend('MMSE','ZF','RLS');
grid on;
ylabel('Error');
xlabel('SNR');
01_099m

4.完整MATLAB

V

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...