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

SFB

PURPOSE ^

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

SYNOPSIS ^

function [ s ] = SFB(d_oqam, p, Para )

DESCRIPTION ^

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

 function [ s ] = SFB(d_oqam, p, Para )

 Input arguments:

   d_oqam: OQAM precoded symbols.

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

   Para: structure containing the modulation parameters.

 Outputs arguments:

   s: modulated signal.

 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 [ s ] = SFB(d_oqam, p, Para )
0002 % Synthesis filterbank implementation using IFFT and polyphase network [1,2].
0003 %
0004 % function [ s ] = SFB(d_oqam, p, Para )
0005 %
0006 % Input arguments:
0007 %
0008 %   d_oqam: OQAM precoded symbols.
0009 %
0010 %   p: prototype pulse of length Para.nSubcarriers*Para.kappa
0011 %
0012 %   Para: structure containing the modulation parameters.
0013 %
0014 % Outputs arguments:
0015 %
0016 %   s: modulated signal.
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 N=length(d_oqam(1,:));
0032 M=Para.nSubcarriers/2;
0033 
0034 
0035 A=kron(reshape(p,2*M,Para.kappa),[1,0]);
0036 Lg=length(p);
0037 beta=exp(-1j*2*pi*(0:2*M-1)'/(2*M)*(Lg-1)/2)*ones(1,N);
0038 
0039 d_beta=d_oqam.*beta;
0040 
0041 X_poly=conv2along1(ifft(d_beta),A)*(2*M);
0042 X_poly=[X_poly(1:M,:),zeros(M,1)]+[zeros(M,1),X_poly((M+1):2*M,:)];
0043 s=X_poly(:).';
0044 
0045 end
0046

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