▲基于深度Q网络的动态多信道协作感知算法matlab仿真
目录
✅1.问题描述
基于深度Q网络的动态多信道协作感知方法是认知无线电领域中解决频谱资源高效利用的前沿技术方案。在动态频谱接入场景中,多个次级用户(Secondary Users, SUs)需要在不干扰主用户(Primary Users, PUs)正常通信的前提下,智能地感知并接入空闲信道。传统的频谱感知方法依赖固定规则或简单的统计模型,难以适应信道状态快速变化的动态环境。本方法将深度强化学习与协作感知相结合,通过协同服务器集中式训练、分布式执行的架构,实现多用户多信道场景下的智能频谱接入决策。
系统模型包含N个次级用户和K个授权信道。在每个时隙tt,每个信道被主用户占用的概率为pk,次级用户需要选择一个信道进行接入。系统的核心目标是最大化所有次级用户的累积吞吐量,同时最小化与主用户的碰撞以及次级用户之间的冲突。
✨2.状态空间设计
状态矩阵是深度Q网络输入的核心数据结构。对于N个次级用户和K个信道,系统状态定义为过去T个时隙的感知历史矩阵:

其中on,k(τ)表示第n个次级用户在时隙τ对第k个信道的感知结果。状态矩阵的维度为N×K×T,将所有次级用户的历史感知信息展平后送入神经网络:
![]()
🚀3.动作空间定义
动作空间以维度为K+1的向量表示每个次级用户下一时隙的信道选择。对于N个次级用户,联合动作空间定义为:
![]()
其中an(t)∈{0,1,2,...,K},an(t)=0表示该次级用户不接入任何信道(保持静默),an(t)=k(k≥1k≥1)表示接入第k个信道。协同矩阵输出维度为(K+1)N种离散组合,通过DDQN网络对每种组合估计Q值。
💼4.奖励函数设计
即时奖励函数综合考虑成功传输、主用户碰撞惩罚和次级用户间冲突惩罚三个方面:

其中α、β、γ分别为成功传输奖励系数、主用户碰撞惩罚系数和次级用户冲突惩罚系数。I(⋅)为指示函数。成功接入条件为信道空闲且无其他次级用户竞争:
![]()
💡5.DDQN网络结构与训练
双深度Q网络(Double DQN)使用两个网络来消除过估计问题。评估网络参数为θ,目标网络参数为θ−。Q值更新的目标值计算为:

👇6.协作感知流程
整体协作流程分为四个步骤:
(1)各次级用户将本地感知结果上传至协同服务器形成全局状态矩阵;
(2)协同服务器将状态矩阵输入DDQN网络,输出协同矩阵;
(3)接入服务器根据协同矩阵指导各次级用户执行信道接入;
(4)根据实际接入结果计算即时奖励并存入经验回放缓冲区。经验回放缓冲区存储转移元组(st,at,rt,st+1),训练时随机采样小批量数据进行梯度更新,打破样本相关性,提升训练稳定性。
💼7.MATLAB程序
%% 系统参数设置
num_channels = 4; % 信道数K
num_SUs = 3; % 次级用户数N
num_episodes = 1000; % 训练回合数
max_steps = 100; % 每回合最大步数
history_len = 4; % 历史时隙长度T
PU_activity = [0.3, 0.5, 0.4, 0.6]; % 各信道PU占用概率% 动作空间: 每个SU可选择0~K个动作, 联合动作简化为预定义组合
num_actions = (num_channels + 1)^num_SUs; % 总动作数
action_set = generate_action_set(num_channels, num_SUs);% 状态维度
state_dim = num_SUs * num_channels * history_len;%% DQN超参数
gamma = 0.95; % 折扣因子
lr = 0.001; % 学习率
epsilon_max = 1.0; % 初始探索率
epsilon_min = 0.01; % 最小探索率
epsilon_decay = 0.005; % 衰减系数
batch_size = 32; % 批大小
buffer_size = 5000; % 经验回放容量
target_update_freq = 10; % 目标网络更新频率
tau_soft = 0.01; % 软更新系数% 奖励系数
alpha_reward = 1.0; % 成功传输奖励
beta_penalty = -1.5; % PU碰撞惩罚
gamma_penalty = -1.0; % SU冲突惩罚%% 神经网络初始化 (评估网络和目标网络)
hidden1 = 32;
hidden2 = 8;
eval_net = init_network(state_dim, hidden1, hidden2, num_actions);
target_net = eval_net; % 初始时两个网络相同
💡8.仿真结果分析

展示累积奖励随训练回合数的增长趋势,验证DDQN的收敛性。

实时展示各时隙中次级用户的信道选择、主用户占用状态及累积奖励变化。
👇9.完整程序下载
完整可运行代码,博主已上传至CSDN,使用版本为MATLAB2024b:
(本程序包含程序操作步骤视频)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)