基于16QAM调制的ACO-OFDM系统仿真实现(matlab)

本文档介绍了使用MATLAB实现16QAM调制的ACO-OFDM系统的仿真过程。ACO-OFDM系统通过奇数子载波传输信号,偶数子载波不载信号,经过埃尔米特对称处理和限幅,确保信号为正实数,适合IM/DD光通信。在接收端,经过FFT和等化器后,仅取奇数子载波信息。这是一个简化版的MATLAB代码,适用于初学者学习,但需要源代码中的qam16函数才能运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于16QAM调制的ACO-OFDM仿真实现(matlab)

之前看到了一篇大神写的有关OFDM系统的仿真实现的MATLAB(文章链接在最后),在文章中他讲到:

本系统中IFFT得到的时域信号虽然全为实的,但含有负数,这对于采用IM/DD的光通信系统是不行的。

所以我就写了一篇ACO-OFDM系统的MATLAB仿真。众所周知,ACO-OFDM系统架构在奇数子载波在讯号,偶数子载波不载讯号。在埃尔米特对称处理之后,实数信号且保持反对称之特性,此特性使每一信号在对应位置上皆有其相反数存在。随后再将得到之信号做对零做限幅处理,使发送信号皆为正实数,满足强度调制/直接检测技术之要求。在接收器方面在经过快速傅立叶转换成频率域信号并经过等化器消除信道增益后,只取奇数子载波部份之结果,即为发送器之资讯。

在此声明,本人小白,第一次在CSDN上写文章,也是刚刚学习OFDM,所以我的代码中有大量的借鉴。并且,在源代码的基础上去除了对PAPR处理的操作、TS训练序列和信道均衡。我想做一个简化版的MATLAB程式码,以供像我这样的初学者学习。

代码在下方,有人也许会问为什么代码复制了无法运行,因为里面的qam16是源代码中的一个function,没有这个当然无法运行了。想要完整程式码,请认准源代码作者,就当支持一下这位大神博主了。

clc
clear all;
close all;
Nt_carr=256;      %子载波数=FFT点数---256
Np_carr=Nt_carr/2-1; %实际子载波数---127
Sig_per_carr=500; %每子载波含符号数---500
bits_per_symbol=4;      %每符号含比特数,16QAM调制---4
CP_Ratio=1/8;
CP_length=CP_Ratio*Nt_carr;%循环前缀长度
SNR=20;

%==================================================
%================信号产生===================================
baseband_out_length=Np_carr * Sig_per_carr * bits_per_symbol;  %所输入的比特数目  127*500*4
% rand( 'twister',0);
baseband_out=round(rand(1,baseband_out_length));%输出待调制的二进制比特流

%==============16QAM调制====================================
complex_carrier_matrix=qam16(baseband_out);%列向量

figure;
plot(complex_carrier_matrix,'*r');%16QAM调制后星座图
title('16QAM调制星座图');
axis([-5,5,-5,5]);
grid on   %显示网格线
axis square

%==============串并变换====================================
%矩阵转置时附加有取共轭

complex_carrier_matrix1=reshape(complex_carrier_matrix',Np_carr,Sig_per_carr)';%串并变换Sig_per_carr*Nt_carr 矩阵
%complex_carrier_matrix1=conj(reshape(complex_carrier_matrix',Nt_carr,Sig_per_carr)')%两次转置

%==============埃尔米特映射====================================
carriers=
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值