• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Matlab
  • 标签: matlab  OFDM  

资源简介

基于MATLAB的OFDM系统仿真及峰均比抑制(此处上传为第一部分代码,后续有第二部分代码及完整论文报告)

资源截图

代码片段和文件信息

clc; close all;
carrier=52;
numb_ifft=100;
numb_cp=25;
symb_ofdm=6;
bit_symb=2;
snr=15;
symbol_rate=250000;
bit_rate=symbol_rate.*bit_symb;
sum_bit=carrier*symb_ofdm*bit_symb;

MAX_SYMBOLS= 6;
ITERATE_NUM=2;
PAPR_Orignal = zeros(1MAX_SYMBOLS); %%记录每个OFDM符号的PAPR,原始的
PAPR_NS = zeros(ITERATE_NUMMAX_SYMBOLS); %2-6矩阵

for nSymbol=1:MAX_SYMBOLS
signal=rand(1sum_bit)<0.5;
figure(1)%完成待传数据
subplot(111)
plot(signal)
xlabel(‘time‘)
ylabel(‘amplitude‘)
grid on        

m = 3;                                     
n = 2^m-1;                                 %定义码长
k = n-m;                                   %信息位长
p=cyclpoly(nk);                              %循环码生成多项式,n=7,k=4
code = encode(signalnk‘cyclic‘p);               %编码函数,对信号进行差错编码
signal_p=reshape(code9112);%实现串并转换
for k=1:carrier+39
    for n=1:bit_symb*symb_ofdm/2
        imp=signal_p(k2*n);
        rlp=signal_p(k2*n-1);
        if(imp==0)&&(rlp==0)
            d(kn)=exp(1i*5*pi/4);
        end
        if(rlp==0)&&(imp==1)
            d(kn)=exp(1i*3*pi/4);
        end
        if(rlp==1)&&(imp==0)
            d(kn)=exp(1i*7*pi/4);
        end
        if(rlp==1)&&(imp==1)
            d(kn)=exp(1i*pi/4);
        end
    end
end

QPSKdata=reshape(d1546);
% 降低峰均比
K  = length(QPSKdata);               % SIZE OF OFDM Symbol
IF = 2;        % Interpolation factor (Oversampling factor)
Nf  = K*IF;
CR=4;     % SIZE OF FFT
ITERATE_NUM = 2; %限幅次数
Index = randi(length(QPSKdata)-11K)+1; %随机生成QPSK的相位的序号,比如1表示12表示-1,3表示j
X =QPSKdata(Index(1:)); %原始信号的相位(频域)
XX = [X(1:K/2) zeros(1Nf-K) X(K/2+1:K)]; 

x = ifft(XX[]2); % 时域的信号xk
Signal_Power = abs(x.^2); %计算信号功率
Peak_Power = max(Signal_Power[]2); %求最大功率
Mean_Power 

评论

共有 条评论