[发明专利]一种OFDM系统中功率放大器的频域线性化方法有效
申请号: | 201510566527.5 | 申请日: | 2015-09-08 |
公开(公告)号: | CN105207628B | 公开(公告)日: | 2018-06-29 |
发明(设计)人: | 任智源;张平;陈晨;赵力强;张海林 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H03F1/32 | 分类号: | H03F1/32;H03F3/20 |
代理公司: | 北京世誉鑫诚专利代理事务所(普通合伙) 11368 | 代理人: | 郭官厚 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种OFDM系统中功率放大器的频域线性化方法,包括如下步骤:S1:发送随机测试信号,通过反馈迭代得到二维查询表的初始值;S2发送实际信号,得到输出信号。本发明的优点体现在:本发明在OFDM系统的频域对功率放大器进行预失真,使其线性化。避免了现有技术中需要通过低通滤波器对功率放大器的线性失真和记忆性失真进行多次预失真的缺点,仅需一次预失真,其结构简单,易于实现,极大的提高了OFDM系统的稳定性,增加了OFDM系统的应用领域。 | ||
搜索关键词: | 功率放大器 线性化 频域 发送 低通滤波器 二维查询表 记忆性失真 输出信号 随机测试 线性失真 预失真 次预 迭代 失真 反馈 | ||
【主权项】:
1.一种OFDM系统中功率放大器的频域线性化方法,其特征在于,包括如下步骤:S1:发送随机测试信号,通过反馈迭代得到二维查询表的初始值:S1.1建立二维预失真表,并初始化:Ha(m,n)=1Hp(m,n)=0其中Ha表示信号经过功放后幅度缩放失真,Hp表示信号经过功放后相位旋转失真;m∈[1,carrier_count],carrier_count=512表示OFDM调制中子载波数目,对应着不同发送信号频率;n∈[1,16],分别对应16QAM调制星座图中16个不同的星座点;S1.2产生输入随机测试比特流信号bit_x(n),为1*N串行数据:N=carrier_count*symbols_per_carrier*bits_per_symbol为一组比特流长度,其中carrier_count=512为子载波数,symbols_per_carrier=1为每个子载波中OFDM符号数,bits_per_symbol=4为每个调制符号的比特数,16QAM调制每符号含有4个比特;S1.3步骤S1.2中得到的二进制信号bit_x转化为十六进制信号bit16_x:把步骤2中的1*N串行二进制信号bit_x转换为1*carrier_count的十六进制信号bit16_x,作为步骤4中16QAM调制输入信号;S1.4步骤S1.3得到的信号bit16_x,进行16QAM调制:mo=modem.qammod(16);symbol_x=modulate(mo,bit16_x)symbol_x,为16QAM调制后的1*carrier_count串行信号;根据星座图上16个不同的点,把调制后的信号的幅度标号保存到index(n)中,index范围从1到16,为二维表Ha和Hp的纵坐标,即第二维坐标;S1.5步骤S1.4得到的信号symbol_x进行功率回退:symbol_x2(n)=symbol_x(n)/num,为1*carrier_count串行符号;其中num=sqrt(10*10^(ibo/10)),IBO=6dB,把dB转化为幅度,并且16QAM功率归一化;S1.6步骤S1.5得到的信号symbol_x2进行串/并转换:symbol_x2F=reshape(symbol_x2,length(symbol_x2),1),把1*carrier_count的串行符号symbol_x2(n)转换为carrier_count*1的并行信号symbol_x2F(n);S1.7步骤S1.6得到的信号symbol_x2F进行频域预失真处理:xTa(n)=Ha(n,index(n))*xa(n);xTp(n)=xp(n)+Hp(n,index(n));n∈[1,carrier_count],其中xa(n)和xp(n)分别表示步骤S1.6得到的信号symbol_x2F(n)的幅度和相位;xTa(n)和xTp(n)表示预失真处理后得到信号symbolx_xF的幅度和相位;S1.8步骤S1.7得到的信号symbolx_xF进行IFFT变换,即OFDM调制:symbol_xt(n)=ifft(symbol_xF(n),IFFT_bin_length);n∈[1,carrier_count],IFFT_bin_length=carrier_count,为IFFT变换长度;把频域信号symbol_xF(n),变换到时域symbol_xt(n),carrier_count*1的并行信号;S1.9步骤S1.8得到的信号symbol_xt并/串转换:symbol_xt2=reshape(symbol_xt,1,length(symbol_xt));把并行carrier_count*1的信号symbol_xt转化为串行1*carrier_count的信号symbol_xt2;S1.10步骤S1.9得到的信号symbol_xt2插入循环前缀:CP=PrefixRatio*IFFT_bin_length=128;PrefixRatio为保护间隔与OFDM长度的比例;即把信号symbol_xt2的后cp位添加到信号前面,变为加循环前缀信号symbol_xt3(n),为1*(carrier_count+cp)串行信号;PrefixRatio取值为1/6~1/4;S1.11步骤S1.10得到的信号symbol_xt2通过功率放大器HPA,即信号过等效的wiener模型:(1)过记忆性FIR滤波器:b=[0.7692,0.1538,0.0769];a=1;p=filter(b,a,symbol_xt3);a,b为记忆性滤波器的参数,symbol_xt3为输入信号,p为记忆性失真输出信号;(2)过非线性saleh功放模型;pa=abs(p);pa为信号p的幅度;pp=angle(p);pp为信号p的相位;ya=(2.1587*pa)./(1.1517*pa.^2+1);yp=4.0033*((pa.^2)./(9.1040*pa.^2+1))+pp;ya、yp分别为信号p通过非线性saleh功放模型的输出信号symbol_xt4的幅度和相位;symbol_xt4=ya*exp(1i*yp)为通过功放后的输出信号,属于1*(carrier_count+cp)串行的数据;S1.12反馈信号Feedback=symbol_xt4:通过功放放大且失真后的信号symbol_xt4作为反馈信号Feedback,属于1*(carrier_count+cp)串行的数据;S1.13步骤S1.12得到的反馈信号Feedback去循环前缀:1*(carrier_count+cp)串行的反馈信号Feedback去掉前面CP个符号,得到1*carrier_count的串行去前缀的反馈信号Feedback2;S1.14步骤S1.13得到的信号Feedback2串/并转换:Feedback3=reshape(Feedback2,length(Feedback2),1);把1*carrier_count的串行信号Feedback2转化为carrier_count*1的并行信号Feedback3;S1.15步骤S1.14得到信号Feedback3进行FFT变换:Feedback_F=fft(Feedback3,IFFT_bin_length);把carrier_count*1的并行信号Feedback3进行IFFT_bin_length点的FFT变换;将信号由时域变换到频域carrier_count*1的并行信号Feedback_F;S1.16计算步骤S1.15中反馈信号Feedback_F和步骤S1.6得到的预失真前symbol_x2F信号均方误差
通过信号均方误差来观察算法对功放失真矫正的程度;S1.17Rascal算法更新二维查询表:Ha(n,index(n))=Ha(n,index(n))‑uu*(Fa(n)‑xa(n));Hp(n,index(n))=Hp(n,index(n))‑uu*(Fp(n)‑xp(n));其中,ua=0.1为幅度迭代步长,up=0.1为相位迭代步长;xa和xp分别为步骤S1.6得到的信号symbol_x2F的幅度和相位,Fa和Fp分别为步骤S1.15得到的信号Feedback_F的幅度和相位;重复迭代步骤S1.2到步骤S1.17loop_test次,loop_test=10000,即发送loop_test组随机测试信号,更新得到的信号幅度缩放表Ha和信号相位旋转表Hp作为发送信号的Ha和Hp的初值;S2发送实际信号,得到输出信号:S2.1把步骤S1.1到S1.17发送的loop_test组随机测试信号,不断迭代更新得到的Ha和Hp,设置为发送信号的幅度缩放表Ha和信号相位旋转表Hp的初值:S2.2发送实际比特流信号bit_x(n),为1*N串行数据;N=carrier_count*symbols_per_carrier*bits_per_symbol为一组比特流长度;其中carrier_count=512为子载波数,symbols_per_carrier=1为每个子载波中OFDM符号数,bits_per_symbol=4为每个调制符号的比特数,16QAM调制每符号含有4个比特;S2.3步骤S2.2中得到二进制信号bit_x转化到十六进制:把步骤S2.2中的1*N串行二进制信号bit_x转换为1*carrier_count的十六进制信号bit16_x,作为步骤S1.4中16QAM输入信号;S2.4对实际信号重复步骤S1.3到S1.17loop_signal次,其中loop_signal=100;S2.5过信道,加噪声:将实际发送信号迭代loop_signal次后,得到1*(carrier_count+cp)串行的发送信号symblo_xt4,过信道,加噪声得到接收信号Yreceive;Yreceive=awgn(symbol_xt4,snr);标量snr指定了每一个采样点信号与噪声的比率,即信道信噪比,单位为dB;为了检测频域线性化技术对功率放大器失真的矫正,信道信噪比snr取值范围为snr≥18dB;S2.6步骤S2.5中得到的接收信号Yreceive去循环前缀:1*(carrier_count+cp)串行的接收信号Yreceive去掉前面CP个符号,得到1*carrier_count的串行去前缀后的接收信号Yreceive2;S2.7步骤S2.6得到的信号Yreceive2串/并转换:Yreceive3=reshape(Yreceive2,length(Yreceive2),1);把1*carrier_count的串行信号Yreceive2转化为carrier_count*1的并行信号Yreceive3;S2.8步骤S2.7得到的信号Yreceive3FFT变换:Yreceive_F=fft(Yreceive3,IFFT_bin_length);把carrier_count*1的并行信号Yreceive3进行IFFT_bin_length点的FFT;将信号由时域变换到频域carrier_count*1的并行信号Yreceive_F;S2.9步骤S2.8得到的信号Yreceive_F并/串转换:Yreceive_F2=reshape(Yreceive_F,length(Yreceive2),1);把carrier_count*1的并行信号Yreceive_F转化为1*carrier_count的串行信号Yreceive_F2;S2.10步骤S2.9得到的信号Yreceive_F2功率还原:Yreceive_F3=Yreceive_F2*num;把发送回退的功率还原;S2.11步骤S2.10得到的信号16QAM解调:de=modem.qamdemod(16);out=demodulate(de,Yreceive_F3);out为16QAM解调后的1*carrier_count的串行信号;S2.12步骤S2.11得到的十六进制信号out转换到二进制:把16QAM解调后1*carrier_count的串行信号out,转换为二进制1*(carrier_count*symbols_per_carrier)的信号bit_y;到步骤S2.12即可得到发送信号bit_x经过系统后的输出信号bit_y。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510566527.5/,转载请声明来源钻瓜专利网。
- 上一篇:可调适等化器及其工作方法
- 下一篇:一种科尔皮兹振荡器