⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ofdm.m

📁 ofdm系统性能的仿真
💻 M
字号:
clear all;A = [1 1/exp(1) 1/exp(2)];  % power delay profileN = 64;  % number of symbols in a single OFDM symbolGI = 16;  % guard intervalMt = 1;  % number of Tx antennasMr = 1;  % number of Rx antennassig2 = 1e-3;  % noise varianceM = 8;  % max constellation bit numberMgap = 10.^(1:(1.7/10):2.7);  % gapBtot = 100*Mt;  % total # bits per OFDM symbolTransmitIter = 50; % # iterations of symbol transmissions for each channel instanceChannelIter = 100; % # iterations of independent identically distributed channel instancesGapIter = length(Mgap);load ENC2.matload ENC4.matload ENC16.matload ENC64.matload ENC256.matTotEbNo = [];Errors =[];EbNo = [];for lGap = 1:GapIterlGapgap = Mgap(lGap);totalErrors = 0;for lChan = 1:ChannelIter    % create channel[H h_f]=create_channel(Mt, Mr, A, N+GI);% decompose each subchannel in the frequency domain[U S V] = svd_decompose_channel(Mt, Mr, h_f, N);% bitloading[bits_alloc,energy_alloc] = BitLoad(S,Btot,Mt*N,gap,sig2,M);%energy_alloc=energy_alloc/(mean(energy_alloc));%energy_alloc=ones(1,128);for lTrans = 1:TransmitIter% bits to transmitx = (randn(1,Btot)>0);% modulatex_mod = modulate(x,bits_alloc,energy_alloc, s2,s4,s16,s64,s256);% precode modulated signalx_pre = precode(Mt, x_mod, V, N);% ifft, with cyclic prefix for each antennaofdm_symbol =[];for i=1:Mt    ofdm_symbol = [ofdm_symbol; ifft_cp_tx_blk(x_pre(i:Mt:Mt*(N-1)+i),N,GI)];endofdm_symbol2 = reshape(ofdm_symbol,Mt*(N+GI),1);% channely = transpose(channel(sig2, Mt, Mr, ofdm_symbol2, H, N+GI));% fftrec_symbol =[];for i=1:Mt    rec_symbol = [rec_symbol; fft_cp_rx_blk(y(i:Mt:Mt*(N+GI-1)+i),N,GI)];endrec_symbol2 = reshape(rec_symbol,1,Mt*N);% shape received signalshaped_vals = shape(rec_symbol2, Mr, U, N);% demodulatey_demod = demodulate(shaped_vals, bits_alloc, energy_alloc, S, s2,s4,s16,s64,s256, c2,c4,c16,c64,c256);% comparisontotalErrors = totalErrors + sum(xor(y_demod,x));endEbNo = [EbNo sum(energy_alloc)/Btot/sig2];endErrors = [Errors totalErrors/Btot/ChannelIter/TransmitIter]TotEbNo = [TotEbNo mean(EbNo)]EbNo = [];endsemilogx(TotEbNo, Errors);xlabel('Eb/No');ylabel('BER');title('SISO link, adaptive rate and power')save SISO_adaptive2.mat Errors EbNo

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -