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

📄 receiver.m

📁 OFDM系统的仿真代码MATLAB环境下
💻 M
字号:

function [data_bits, raw_bits] = receiver(rx_signal,tx_raw_inf_bits);

global sim_consts;
[n_tx_antennas, n_rx_antennas] = get_n_antennas;

if n_rx_antennas == 2    else

   %sum the signal from different antennas   rx_signal = sum(rx_signal,1);       % Return to frequency domain
   [freq_data_syms, freq_pilot_syms] = rx_timed_to_freqd(rx_signal,n_tx_antennas);
      % Channel Estimation 
   cir = channel_estimation(freq_pilot_syms);      % Get the modulated frequency signal   mod_freq_data_syms = freq_data_syms./cir;      % Demodulate
   soft_bits = rx_demodulate(mod_freq_data_syms);

   % Deinterleave if bits were interleaved
   if sim_consts.InterleaveBits == 1
      deint_bits = rx_deinterleave(soft_bits);
   else
      deint_bits = soft_bits;
   end

   % hard decision of soft bits, used to measure uncoded BER
   n = length(deint_bits);   for index = 1:n       if deint_bits(index) > 0           raw_bits(index) = 1;       elseif deint_bits(index) <= 0            raw_bits(index) = 0;
       end   end    raw_bits(:,length(tx_raw_inf_bits)+1:end) = [];    % depuncture
   % depunc_bits = rx_depuncture(raw_bits, sim_consts.ConvCodeRate);

   % Vitervi decoding
   data_bits = rx_viterbi_decode(raw_bits);
end

⌨️ 快捷键说明

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