FBMC-OQAM demodulates received signal r. function [ y ] = AFB( r, g, Para) Input arguments: r: received signal. Size: vector [Para.N_R, ~]. Para: structure containing the modulation parameters. Outputs arguments: z: demodulated symbols at each subcarrier and multicarrier symbol. Size: matrix [Para.nSubcarriers, 2*(Para.Ns+Para.PreambleLength)] if Para.N_R == 1 or multidimensional arry [Para.N_R, Para.nSubcarriers, 2*(Para.Ns+Para.PreambleLength)] if Para.N_R > 1
0001 function [ z ] = FBMC_OQAM_Demodulator( r, Para) 0002 % FBMC-OQAM demodulates received signal r. 0003 % 0004 % function [ y ] = AFB( r, g, Para) 0005 % 0006 % Input arguments: 0007 % 0008 % r: received signal. Size: vector [Para.N_R, ~]. 0009 % 0010 % Para: structure containing the modulation parameters. 0011 % 0012 % Outputs arguments: 0013 % 0014 % z: demodulated symbols at each subcarrier and multicarrier symbol. 0015 % Size: matrix [Para.nSubcarriers, 2*(Para.Ns+Para.PreambleLength)] if Para.N_R == 0016 % 1 or multidimensional arry [Para.N_R, Para.nSubcarriers, 0017 % 2*(Para.Ns+Para.PreambleLength)] if Para.N_R > 1 0018 % 0019 0020 % This file is part of WaveComBox: www.wavecombox.com and is distributed under the terms of the MIT license. See accompanying LICENSE file. 0021 % Original author: François Rottenberg, May 4, 2018. 0022 % Contributors: 0023 % Change log: 0024 0025 M=Para.nSubcarriers/2; 0026 0027 [g, ~] = GeneratePrototypePhydyas(M, Para.kappa); % Prototype filter generation 0028 g=g.*sqrt(1/M); 0029 0030 if Para.N_R==1 0031 YY=AFB(r,g,Para); 0032 theta=ones(2*M,2*(Para.Ns+Para.PreambleLength)); 0033 theta(2:2:end,1:2:end)=1j; 0034 theta(1:2:end,2:2:end)=1j; 0035 z=YY.*conj(theta); % OQAM pattern (real-imaginary) 0036 else 0037 z=zeros(Para.N_R, 2*M, 2*(Para.Ns+Para.PreambleLength)); 0038 for index_N_R=1:Para.N_R 0039 YY=AFB(r(index_N_R,:),g,Para); 0040 theta=ones(2*M,2*(Para.Ns+Para.PreambleLength)); 0041 theta(2:2:end,1:2:end)=1j; 0042 theta(1:2:end,2:2:end)=1j; 0043 z(index_N_R,:,:)=YY.*conj(theta); % OQAM pattern (real-imaginary) 0044 end 0045 end 0046 0047 0048 0049 end 0050