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

📄 awgn.m

📁 回波抵消器中常用的几种自适应滤波算法有LMS, NLMS, RLS等算法。对现有主要算法的性能进行了分析
💻 M
字号:
clear all;

A = [1 1/exp(1) 1/exp(2)];  % power delay profile
N = 64;  % number of symbols in a single OFDM symbol
GI = 16;  % guard interval
Mt = 1;  % number of Tx antennas
Mr = 1;  % number of Rx antennas
sig2 = 1e-3;  % noise variance
M = 8;  % max constellation bit number
Mgap = 10.^(0.1:(1.6/10):1.7);  % gap
Btot = 100*Mt;  % total # bits per OFDM symbol
TransmitIter = 50; % # iterations of symbol transmissions for each channel instance
ChannelIter = 100; % # iterations of independent identically distributed channel instances
GapIter = length(Mgap);

load ENC2.mat
load ENC4.mat
load ENC16.mat
load ENC64.mat
load ENC256.mat

TotEbNo = [];
Errors =[];
EbNo = [];

gap=1;


for j=1:11
    totalErrors=0;
    for i=1:ChannelIter
        for k=1:TransmitIter

    %bits_alloc=4*ones(1,N);
    %Btot=sum(bits_alloc);
    SNR=Mgap(12-j)*ones(1,N);
 %   for i=1:N
 %       roundtempbits=bits_alloc(i);
 %       energy_alloc(i)  = (2^roundtempbits-1)/SNR(i) ;
 %  end
    S=(SNR*sig2*gap).^0.5;
    % bitloading
    % bits to transmit
    x = (randn(1,Btot)>0);    
    
    [bits_alloc,energy_alloc] = BitLoad(S,Btot,Mt*N,gap,sig2,M);
    % modulate
    x_mod = modulate(x,bits_alloc,energy_alloc, s2,s4,s16,s64,s256);

    % precode modulated signal
             %x_pre = precode(Mt, x_mod, V, N);

            % ifft, with cyclic prefix for each antenna
    ofdm_symbol =[];
    for i=1:Mt
        %ofdm_symbol = [ofdm_symbol; ifft_cp_tx_blk(x_pre(i:Mt:Mt*(N-1)+i),N,GI)];
        ofdm_symbol = [ofdm_symbol; ifft_cp_tx_blk(x_mod(i:Mt:Mt*(N-1)+i),N,GI)];
    end
    ofdm_symbol2 = reshape(ofdm_symbol,Mt*(N+GI),1);

    % channel
    H=eye(N+GI);
    y = transpose(channel(sig2, Mt, Mr, ofdm_symbol2, H, N+GI));

    % fft
    rec_symbol =[];
    for i=1:Mt
        rec_symbol = [rec_symbol; fft_cp_rx_blk(y(i:Mt:Mt*(N+GI-1)+i),N,GI)];
    end

    rec_symbol2 = reshape(rec_symbol,1,Mt*N);

            % shape received signal
            %shaped_vals = shape(rec_symbol2, Mr, U, N);

            % demodulate
            %y_demod = demodulate(shaped_vals, bits_alloc, energy_alloc, S, s2,s4,s16,s64,s256, c2,c4,c16,c64,c256);

    y_demod = demodulate(rec_symbol2, bits_alloc, energy_alloc, S, s2,s4,s16,s64,s256, c2,c4,c16,c64,c256);
            % comparison
    totalErrors = totalErrors + sum(xor(y_demod,x));
 end
 EbNo = [EbNo sum(energy_alloc)/Btot/sig2];
end
Errors = [Errors totalErrors/Btot/ChannelIter/TransmitIter]
TotEbNo = [TotEbNo mean(EbNo)]
EbNo = [];
end

⌨️ 快捷键说明

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