Home > WaveComBox > Toolbox > FBMC_OQAM > ChannelEstimation > ComputeTransmuxCoefficient.m

ComputeTransmuxCoefficient

PURPOSE ^

Computes transmultiplexer coefficient.

SYNOPSIS ^

function [ t ] = ComputeTransmuxCoefficient( time_freq_index, m_0, l_0, theta, Para )

DESCRIPTION ^

 Computes transmultiplexer coefficient.

 function [ t ] = ComputeTransmuxCoefficient( time_freq_index, p, g, kappa, M, m_0, l_0, theta )

 Input arguments:

   time_freq_index: matrix containing the subcarrier and multicarrier
   symbol indices of SFB inputs

   m_0: AFB subcarrier output.

   l_0: AFB multicarrier symbol ouput.

   Para: structure containing the modulation parameters.

 Outputs arguments:

   t: transmultipexer resposne

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [ t ] = ComputeTransmuxCoefficient( time_freq_index, m_0, l_0, theta, Para  )
0002 % Computes transmultiplexer coefficient.
0003 %
0004 % function [ t ] = ComputeTransmuxCoefficient( time_freq_index, p, g, kappa, M, m_0, l_0, theta )
0005 %
0006 % Input arguments:
0007 %
0008 %   time_freq_index: matrix containing the subcarrier and multicarrier
0009 %   symbol indices of SFB inputs
0010 %
0011 %   m_0: AFB subcarrier output.
0012 %
0013 %   l_0: AFB multicarrier symbol ouput.
0014 %
0015 %   Para: structure containing the modulation parameters.
0016 %
0017 % Outputs arguments:
0018 %
0019 %   t: transmultipexer resposne
0020 %
0021 
0022 
0023 % This file is part of WaveComBox: www.wavecombox.com and is distributed under the terms of the MIT license. See accompanying LICENSE file.
0024 % Original author: François Rottenberg, May 9, 2018.
0025 % Contributors:
0026 % Change log:
0027 
0028 M=Para.nSubcarriers/2;
0029 kappa=Para.kappa;
0030 
0031 
0032 [p, ~] = GeneratePrototypePhydyas(M, Para.kappa); % Prototype filter generation
0033 p=p.*sqrt(1/M);
0034 g=p;
0035 
0036 t=zeros(1,length(time_freq_index(:,1)));
0037 for index=1:length(time_freq_index(:,1))
0038     m=time_freq_index(index,1);
0039     l=time_freq_index(index,2);
0040     Delta_m=m-m_0;
0041     Delta_l=l-l_0;
0042     n=(max([0,Delta_l*M/2,-Delta_l*M/2]):min([2*M*kappa-1,2*M*kappa-1+Delta_l*M/2,2*M*kappa-1-Delta_l*M/2])) ;
0043     temp=p(n+1-Delta_l*M/2)*(g(n+1+Delta_l*M/2).*exp(1j*2*pi/2/M*Delta_m*(n-(2*M*kappa-1)/2))).';    
0044     t(index)=(-1)^(m*l+m_0*l_0)*theta(m+1,l+1)*conj(theta(m_0+1,l_0+1))*1j^(Delta_m*(l+l_0))*temp;
0045 end
0046 
0047 
0048 end

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