MCAP(Multi-Carrier Amplitude and Phase Modulation,多载波幅度和相位调制)是一种结合了多载波传输和 QAM 调制的技术,常用于高速数据通信系统
MCAP原理:
        MCAP 将数据流分成多个子流,每个子流调制到不同的子载波上,然后叠加传输。它本质上是多载波技术与QAM 调制的结合,兼具两者的优势:多载波优势:抗频率选择性衰落、简化均衡器设计。QAM 优势:高频谱效率,通过幅度和相位同时携带信息。网上没有开源的源码,只有cap的而且不便宜,我这里自己复现出来和原论文基本一致,需要的可以找我。

        系统原理图如下:

仿真结果:先看频谱图,我这里分路是设的1、4、10

使用16QAM(4,16,64都可以),下面第一张图为调制星座图,第二张图为解调星座图

                                            

下面是不同参数配置下的解码结果

M=16,snr=20

M=64,snr=10

M=64,snr=30

部分源码

Fs = 6.5e6; % 信道采样率 (6.5 MHz)
filterOrder = 10; % 滤波器阶数
m = 8; % 数据分路值(m - CAP 中的子载波数)
M = 64; % QAM 调制阶数
bitsPerSymbol = log2(M); % 每个符号携带的比特数
dataLength = 2*16*100*m*bitsPerSymbol; % 数据长度(比特总数)
rollOff = 0.5; % 滤波器滚降系数
Rs = Fs / (m * (1 + rollOff)); % 符号速率 (Hz)
sps = round(Fs / Rs); % 每符号采样点数
snr = ind; % 信噪比 (dB)
Fc = Fs / (2 * m) + Fs / m * (0:(m-1)); % 子载波中心频率 (Hz)
h = rcosdesign(rollOff, filterOrder, sps, 'sqrt'); % 根升余弦滤波器
BaudRate = Rs; % 波特率
SymbolDuration = 1/BaudRate; % 符号持续时间
Ts = 1/Fs; % 采样间隔
L = filterOrder; % 截断长度
t = (0:(dataLength/m)*sps - 1)*Ts; % 时间向量

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐