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

📄 run_pilot.asv

📁 uwb无线电基础书本(电子工业出版社)的MATLAB程序
💻 ASV
字号:

n_bits_data = 10000;
[bits_data] = cp0201_bits(n_bits_data);
N_OFDM = 10; %?个OFDM符号为一帧
N = 128;
N_pilot_distance = 8;
N_pilot = N/N_pilot_distance;
n_symbol_per_ofdm = N - 1 - N_pilot - 1;      %  [0  N-1  0 N-1]
n_time = ceil(n_bits_data/(2*N_OFDM*n_symbol_per_ofdm));  %正无穷方向取整    发送帧数
bits_data_fixed = zeros(1,n_time*2*N_OFDM*n_symbol_per_ofdm);
bits_data_fixed(1:n_bits_data) = bits_data;
SNR = [0 5 10 15 20 25 30];
%N_los = [1 2 3 4]; %cm1-cm4
BER = zeros(1,length(SNR));
pilot = (1+i)/sqrt(2);
count = 0;


%---------------------channel------------------------------

PT = 3; % 用于限制信道冲击响应中的多径分量的个数
N_los = 1;%cm1-cm4
%[h] = cp0802_channel_IEEEuwb(N_los,PT);

h =[0.1];
%---------------------channel------------------------------

    for snr = 1:length(SNR)
        for nb = 1:n_time
            bits = bits_data_fixed(1+(nb-1)*2*N_OFDM*n_symbol_per_ofdm:2*N_OFDM*n_symbol_per_ofdm+(nb-1)*2*N_OFDM*n_symbol_per_ofdm);
            [S,Sc,Ss] = cp0203_qpsk_mod(bits);
            [x] = cp0203_OFDM_pilot(S,N,N_pilot,pilot,N_OFDM);  %
            [y] = cp0802_channel(h,x);
            [y] = cp0802_add_noise(y,SNR(snr));
            %[y] = cp0204_Channel_Noise(x,SNR(snr)); 
            [Y] = cp0204_transform(y,N,N_OFDM);             %  去循环嵌缀, 变换到频域
            [H_estimat,Y_data] = cp0204_channel_estimat(Y,N,N_pilot,pilot,N_OFDM);         %
            [H_estimat_interp] = cp0204_channel_estimat_interp(H_estimat,N,N_pilot,N_OFDM);   %
            [X_estimat] = cp0204_Y_estimat(Y_data,H_estimat_interp);              %
            [bits_estimat] = cp0203_qpsk_demod(X_estimat);  
            [rx_bits] = cp0203_qpsk_demod(Y_data);  
            if nb==n_time
                bits = bits(1:2*N_OFDM*n_symbol_per_ofdm - length(bits_data_fixed) + n_bits_data);
                bits_estimat = bits_estimat(1:2*N_OFDM*n_symbol_per_ofdm - length(bits_data_fixed) + n_bits_data);
            
           end
            [ER] = cp0203_ber(bits,bits_estimat);
            [ER1] = cp0203_ber(bits,rx_bits);
            BER(snr) = BER(snr) + ER;
            count=count+1
            
            
        %[x,bits] = cp0203_OFDM_qpsk(numbits,N);
        %[y] = cp0204_Channel_Noise(x,N_los,SNR(snr));
        %[R_bits] = cp0203_OFDM_qpsk_demod(y,N);
        %[ER] = cp0203_ber(bits,R_bits);
        %BER(N_los,snr) = BER(N_los,snr) + ER;
        %m=m+1
        
        end
    end

BER = BER/n_bits_data;
plot(SNR,BER);

⌨️ 快捷键说明

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