云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > OFDM_matlab源程序总结

OFDM_matlab源程序总结

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 2:37:17

elseif seq_num==2

fbconnection=[1 0 0 0 0 0 1];

QPSKdata_pn=[m_sequence(fbconnection),0]; QPSKdata_pn=qpsk(QPSKdata_pn); end

countmod=0; for k=1:128

if seq_num==1

if mod(k-1,16)==0 %生成16位循环的短训练符号 countmod=countmod+1;

trainsp_temp(k)=QPSKdata_pn(countmod); else

trainsp_temp(k)=0; end

elseif seq_num==2 if mod(k-1,2)==0

countmod=countmod+1;

trainsp_temp(k)=QPSKdata_pn(countmod); else

trainsp_temp(k)=0; end end end

dout=trainsp_temp;

% ************************end of file***********************************

%************************beginning of file***************************** %m_sequence.m

%用线性移位寄存器产生m序列

function [mseq]= m_sequence(fbconnection);

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++ % fbconnection 线性移位寄存器的系数 % mseq 生成的m序列

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

n = length(fbconnection); N = 2^n-1;

register = [zeros(1,n - 1) 1];%定义移位寄存器的初始状态 mseq(1)= register(n);

for i = 2:N

newregister(1)= mod(sum(fbconnection.*register),2); for j = 2:n,

newregister(j)= register(j-1); end;

register = newregister; mseq(i) = register(n); end

% ************************end of file**********************************

%************************beginning of file***************************** %nyquistimp_PS.m

%使用改进的Nyquist脉冲实现OFDM信号的PAPR抑制 function dout=nyquistimp_PS()

%改进的Nyquist脉冲整形方法能够显著改善OFDM信 %号的PAPR分布;该方法实现简单,和PTS和SLM相比 %不需迭代计算多个IFFT操作,不需传送边带信息, %不会引起信号的畸变;通用性强,可以调整滚降 %系数以适应任何子载波数的通信系统。当然, %Nyquist脉冲成形的方法由于扩展了频谱,一定程 % 度上降低了频谱利用率。

%creat a matrix to shape the subcarries. %the spectrum of the pulse is as follows: % if abs(f)<=Bw*(1-b) % spec=1;

% else if (abs(f)>Bw*(1-b))&(abs(f)<=Bw) % spec=exp(aa.*(Bw.*(1-b)-abs(f)));

% else if (abs(f)>Bw)&(abs(f)=Bw*(1+b) % spec=0; % end % end % end % end

N=106; L=11; b=0.22;

% N=84; % L=22;

% b=0.5;

% N=98; % L=15; % b=0.3;

% N=116; % L=6; % b=0.1;

T=0.004; Ts=T/N; Bw=1/Ts;

begin=-Bw*(1+b)+Bw*(1+b)/128; finish=Bw*(1+b)-Bw*(1+b)/128; distance=Bw*(1+b)/64; kk=0;

aa=log(2)/(b.*Bw);

for f=begin:distance:finish kk=kk+1;

if abs(f)<=Bw*(1-b) spec=1;

else if (abs(f)>Bw*(1-b))&(abs(f)<=Bw) spec=exp(aa.*(Bw.*(1-b)-abs(f)));

else if (abs(f)>Bw)&(abs(f)=Bw*(1+b) spec=0; end end end end

C(kk)=spec; end

for m=0:N-1

for k=0:(N+2*L-1)

p(m+1,k+1)=C(k+1)*exp(-i*2*pi.*m.*(k-L)./N); end end

dout=p;

% ************************end of file***********************************

%************************beginning of file***************************** ?t_my.m

%实现N点FFT运算

function dout=fft_my(din)

%本程序对输入序列din实现DIT——FFT基2算法,点数取大于等于din长度的2的幂次

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++ % din 输入数据 % dout 输出数据

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

m=nextpow2(din) ; N=2^m ;

if length(din)

din=[din,zeros(1,N-length(din))]; end

nxd=bin2dec(fliplr(dec2bin([1:N]-1,m)))+1; y=din(nxd); for mm=1:m Nmr=2^mm; u=1;

WN=exp(-i*2*pi/Nmr); for j=1:Nmr/2 for k=j:Nmr:N kp=k+Nmr/2; t=y(kp)*u; y(kp)=y(k)-t; y(k)=y(k)+t; end

u=u*WN; end end dout=y;

% ************************end of file**********************************

%************************beginning of file***************************** -d_GI_upsample.m

%加循环前后缀和升采样程序

搜索更多关于: OFDM_matlab源程序总结 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

elseif seq_num==2 fbconnection=[1 0 0 0 0 0 1]; QPSKdata_pn=[m_sequence(fbconnection),0]; QPSKdata_pn=qpsk(QPSKdata_pn); end countmod=0; for k=1:128 if seq_num==1 if mod(k-1,16)==0 %生成16位循环的短训练符号 countmod=countmod+1; trainsp_temp(k)=QPSKdata_pn(countmod); else trainsp_temp(k)=

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com