Home > WaveComBox > Toolbox > FBMC_OQAM > Modulation > AFB.m

AFB

PURPOSE ^

Analysis filterbank implementation using polyphase network and IFFT [1,2].

SYNOPSIS ^

function [ y ] = AFB( r, g, Para)

DESCRIPTION ^

 Analysis filterbank implementation using polyphase network and IFFT [1,2].

 function [ y ] = AFB( r, g, Para)

 Input arguments:

   r: received signal. Size: vector.

   g: prototype pulse of length Para.nSubcarriers*Para.kappa

   Para: structure containing the modulation parameters.

 Outputs arguments:

   y: demodulated symbols at each subcarrier and multicarrier symbol.

 References:
 [1] P. Siohan, C. Siclet, and N. Lacaille, "Analysis and design of
 OFDM/OQAM systems based on filterbank theory," IEEE Transactions
 on Signal Processing, vol. 50, pp. 1170–1183, May 2002.
 [2] Viholainen, A. et al., "Prototype filter and structure optimization,"
 tech. rep., ICT-211887 PHYDYAS, January 2009.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [ y ] = AFB( r, g, Para)
0002 % Analysis filterbank implementation using polyphase network and IFFT [1,2].
0003 %
0004 % function [ y ] = AFB( r, g, Para)
0005 %
0006 % Input arguments:
0007 %
0008 %   r: received signal. Size: vector.
0009 %
0010 %   g: prototype pulse of length Para.nSubcarriers*Para.kappa
0011 %
0012 %   Para: structure containing the modulation parameters.
0013 %
0014 % Outputs arguments:
0015 %
0016 %   y: demodulated symbols at each subcarrier and multicarrier symbol.
0017 %
0018 % References:
0019 % [1] P. Siohan, C. Siclet, and N. Lacaille, "Analysis and design of
0020 % OFDM/OQAM systems based on filterbank theory," IEEE Transactions
0021 % on Signal Processing, vol. 50, pp. 1170–1183, May 2002.
0022 % [2] Viholainen, A. et al., "Prototype filter and structure optimization,"
0023 % tech. rep., ICT-211887 PHYDYAS, January 2009.
0024 
0025 
0026 % This file is part of WaveComBox: www.wavecombox.com and is distributed under the terms of the MIT license. See accompanying LICENSE file.
0027 % Original author: François Rottenberg, May 4, 2018.
0028 % Contributors:
0029 % Change log:
0030 
0031 M=Para.nSubcarriers/2;
0032 
0033 Lg=length(g);
0034 A=kron(reshape(g,2*M,Para.kappa),[1,0]);
0035 beta=exp(-1j*2*pi*(0:2*M-1)'/(2*M)*(Lg-1)/2)*ones(1,2*(Para.Ns+Para.PreambleLength));
0036 
0037 temp=reshape(r(1:floor(length(r)/M)*M),M,floor(length(r)/M));
0038 temp=[zeros(M,1) flipud(temp(1:end,:))];
0039 Y_poly=[[temp,zeros(M,1)];[zeros(M,1),temp]];
0040 
0041 
0042 Y=conv2along1(Y_poly,A);
0043 y=ifft(Y)*(2*M);
0044 y=y(:,Para.kappa*2+1:Para.kappa*2+2*(Para.Ns+Para.PreambleLength)).*beta;
0045 
0046 
0047 
0048 
0049 end
0050

Generated on Mon 14-Oct-2019 13:48:34 by m2html © 2005