資源簡介
基于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?
評論
共有 條評論