W_OFDM_RX_window_design creates the window used at the w-ofdm receiver [1, 2]. function [ F_window ] = W_OFDM_RX_window_design( Para ) Input arguments: Para: structure containing the modulation parameters. Outputs arguments: F_window: W-OFDM Rx window. Size: vector [2*Para.win_L + Para.nSubcarriers, Para.Ns]
0001 function [ F_window ] = W_OFDM_RX_window_design( Para ) 0002 % W_OFDM_RX_window_design creates the window used at the w-ofdm receiver [1, 2]. 0003 % 0004 % function [ F_window ] = W_OFDM_RX_window_design( Para ) 0005 % 0006 % Input arguments: 0007 % 0008 % Para: structure containing the modulation parameters. 0009 % 0010 % Outputs arguments: 0011 % 0012 % F_window: W-OFDM Rx window. Size: vector [2*Para.win_L + Para.nSubcarriers, Para.Ns] 0013 0014 %References: 0015 % [1] 3GPP R1-165425 'f-OFDM scheme and filter design' 0016 % [2] 3GPP R1-166999 'Detailed configuration of f-OFDM and W-OFDM for LLS evaluation' 0017 0018 % This file is part of WaveComBox: www.wavecombox.com and is distributed under the terms of the MIT license. See accompanying LICENSE file. 0019 % Original author: Mathieu Van Eeckhaute, September 26, 2018. 0020 % Contributors: 0021 % Change log: 0022 0023 %Window generation, Meyer RRC window [1, 2] 0024 k_abs = ((1-Para.alpha_win)*Para.L/2:(1+Para.alpha_win)*Para.L/2-1); 0025 k_v =(k_abs-(1-Para.alpha_win)*Para.L/2)/(Para.alpha_win*Para.L); 0026 v = k_v.^4.*(35-84*k_v+70*k_v.^2 - 20*k_v.^3); 0027 w_R = 1/2*(1+cos(pi.*(1-v))); 0028 w_F = 1-w_R; 0029 % %RX windowing [1] 0030 F_window = ones(Para.nSubcarriers+2*Para.win_L, 1); 0031 F_window(1:2*Para.win_L) = w_R; 0032 F_window(end-2*Para.win_L+1:end) = w_F; 0033 F_window = repmat(F_window, 1, Para.Ns); 0034 0035 end 0036