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
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