資源簡(jiǎn)介
基于MATLAB的OFDM系統(tǒng)仿真及峰均比抑制(此處上傳為第一部分代碼,后續(xù)有第二部分代碼及完整論文報(bào)告)
代碼片段和文件信息
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);?%%記錄每個(gè)OFDM符號(hào)的PAPR,原始的
PAPR_NS?=?zeros(ITERATE_NUMMAX_SYMBOLS);?%2-6矩陣
for?nSymbol=1:MAX_SYMBOLS
signal=rand(1sum_bit)<0.5;
figure(1)%完成待傳數(shù)據(jù)
subplot(111)
plot(signal)
xlabel(‘time‘)
ylabel(‘a(chǎn)mplitude‘)
grid?on????????
m?=?3;?????????????????????????????????????
n?=?2^m-1;?????????????????????????????????%定義碼長(zhǎng)
k?=?n-m;???????????????????????????????????%信息位長(zhǎng)
p=cyclpoly(nk);??????????????????????????????%循環(huán)碼生成多項(xiàng)式,n=7,k=4
code?=?encode(signalnk‘cyclic‘p);???????????????%編碼函數(shù),對(duì)信號(hào)進(jìn)行差錯(cuò)編碼
signal_p=reshape(code9112);%實(shí)現(xiàn)串并轉(zhuǎn)換
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;?%限幅次數(shù)
Index?=?randi(length(QPSKdata)-11K)+1;?%隨機(jī)生成QPSK的相位的序號(hào),比如1表示12表示-1,3表示j
X?=QPSKdata(Index(1:));?%原始信號(hào)的相位(頻域)
XX?=?[X(1:K/2)?zeros(1Nf-K)?X(K/2+1:K)];?
x?=?ifft(XX[]2);?%?時(shí)域的信號(hào)xk
Signal_Power?=?abs(x.^2);?%計(jì)算信號(hào)功率
Peak_Power?=?max(Signal_Power[]2);?%求最大功率
Mean_Power?
評(píng)論
共有 條評(píng)論