multiband Carrierless Amplitude and Phase Modulation (mCAP)

7 views (last 30 days)
I have been trying to simulate a mCAP modulated system. I have managed to simulate the 1*1 CAP system without any issues. In the mCAP model, The total available bandwidth is fixed. When m = 1 (m -> no. of multibands), the signal occupies the entire available bandwidth. When m = 2, the available bandwidth is partitioned into two sections and each section has the same bandwidth. For any value of m, the total available bandwidth is partitioned into m sections. See the plots in the reference paper here.
In my simulation, I am unable to set the total available bandwidth. The multibands i have simulated overlap each other. There is also a limitation on the number of multibands i can simulate. I have attached my code here. Please suggest a solution for this issue.
Thanks in advance.
----------------------------------------------------------------------------------------------------------------------------------
Matlab code:
Fs = (6 * 10^4); % the sampling frequency
Ts = 1 * 10^-3; % 1 ms symbol spacing, i.e. the baseband samples are Ts seconds apart.
BN = 1/(2*Ts ); % the Nyquist bandwidth of the baseband signal.
ups = (Ts*Fs) ;% number of samples per symbol in the "analog" domain
N = 10 ; % number of transmitted baseband samples
Nband = 2; % number of multibands
% Calculate the filter coefficients (N=number of samples in filter)
rolloff = 1;
span = 10;
sps = 10;
my_rrc = rcosdesign(rolloff, span, sps);
t_rrc = (0:length(my_rrc)-1) / Fs; % the time points that correspond to the filter values
fc = ((1 + rolloff)/(2 * Ts)); % carrier frequency
% Step T1
M = 4;
ip = randi([0 M-1],Nband,N);
dk = qammod(ip,M);
t_symbols = Ts * (0:N-1) ; % time instants of the baseband samples
% Step T2)
x = upsample(dk',ups)'; % upsampling
t_x = (0:length(x)-1)/Fs;
% Step T3)
i = real(x);
q = imag(x);
% Step T4)
for nn = 1 : Nband,
iup(nn,:) = conv(i(nn,:), my_rrc .* cos(2*(2*nn-1)*pi*t_rrc*fc) );
qup(nn,:) = conv(q(nn,:), my_rrc .* -sin(2*(2*nn-1)*pi*t_rrc*fc));
end
t_u = (0:length(iup)-1)/Fs;
% Step T5)
s = iup + qup;
tx = sum(s,1); % mCAP signal
--------------------------------------------------------------------------------------------------------------------------------------------------

Answers (1)

lu
lu on 1 Jan 2025
hello,did you solve your problem. I also have some problems about mCAP.

Products


Release

R2014a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!