multiband Carrierless Amplitude and Phase Modulation (mCAP)
7 views (last 30 days)
Show older comments
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
--------------------------------------------------------------------------------------------------------------------------------------------------
0 Comments
Answers (1)
See Also
Categories
Find more on Modulation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!