📄 adaptive_power.m
字号:
function [Cn,P]=adaptive_power(H,Ber0,N,Noise,R)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 函数功能:
% 自适应调制和功率优化分配
% 基于功率梯度最小的QAM 算法
% 输入:
% Noise:噪声功率
% N:子载波的个数
% H:通过信道估计得到信道参数向量
% Ber0: 为系统需要的误码率
% R:固定比特速率
% 输出:
% Cn:分配给各子载波的比特数 Cn={0,2,4,6}
% P:分配给各子载波的功率
% 由QAM调制的误比特率公式得:
% 信噪比 SNR=In(5*Ber0)*(2^Cn-1)/(-1.6)
% 信噪比因子para
% 作者:郭莹,2004.3.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
para=log(5*Ber0)/(-1.6);
%初始化比特Cn,和功率P
Cn=zeros(N,1);
P=zeros(N,1);
% delta_P用于存储功率增量
delta_P=zeros(N,1);
%步长, 因为是使用QAM调制
Step=2;
for yy=1:R/Step
for i=1:N
if Cn(i)>6
delta_P(i)=inf;
continue;
end
%y=H(i)^2;
y = H(i).*conj(H(i));
delta_P(i)=3*para*(2^(Cn(i)+Step)-2^Cn(i))*Noise/y;
end
dex=find(delta_P==min(delta_P));
Cn(dex) = Cn(dex) + Step;
P(dex)=P(dex)+delta_P(dex);
end
P(find(P==0))=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -