interplexmod
Description
[
modulates the input signals modsignal
,efficiency
] = interplexmod(signal
,ampfactor
)signal
and returns an interplexed signal
modsignal
and the power efficiency of the interplexing process
efficiency
. The amplification factor ampfactor
defines the power distribution between the signals.
For more information, see Interplex Modulation Workflow.
Examples
Perform Interplex Modulation of Four Random Signals
Generate four random signals to modulate.
numSignals = 4; x = 2*randi([0 1],1000,numSignals) - 1;
Set the power distribution among the signals to 20%, 20%, 40%, and 20%, respectively.
Calculate the corresponding amplitude factors as the square root of the power distribution of that signal.
ampfactor = [sqrt(0.2) sqrt(0.2) sqrt(0.4) sqrt(0.2)];
Apply interplex modulation to the four signals.
[y,efficiency] = interplexmod(x,ampfactor);
Display the power efficiency of interplexing process.
disp(efficiency)
0.4167
Perform Interplex Modulation on Three NavIC Signals
Perform interplex modulation on these three Navigation with Indian Constellation (NavIC) signals to generate a complex baseband waveform.
Standard Positioning Service (SPS) signal
Restricted Service (RS) data signal
RS-pilot signal
Set the pseudo-random number (PRN) index for the satellite.
PRNID = 1;
Set the number of navigation data bits in the generated waveform.
numNavDataBits = 3;
NavIC uses course acquisition codes (C/A-codes) for spreading the navigation data spectrum at a chipping rate of 1.023 Mcps.
numCAChipsPerDataBit = 1023*20; randNavICData = 1 - 2*randi([0 1],1,numNavDataBits); caCode = 1 - 2*double(gnssCACode(PRNID,"NavIC L5-SPS")); % Each navigation data bit corresponds to 20 repetitions of C/A-code caBits = repmat(caCode,20,1); SPSsig = caBits.*randNavICData; % Spread SPS data
Generate random data bits for RS-pilot and RS-data signals.
dummyRSP = randi([0 1],numCAChipsPerDataBit*numNavDataBits,1); % RS pilot signal dummyRSD = randi([0 1],numCAChipsPerDataBit*numNavDataBits,1); % RS data signal
Modulate the RS signals by using binary offset carrier (BOC) modulation. Rate-match the SPS signals with the BOC-modulated RS signals.
RSPsig = bocmod(dummyRSP,5,2); RSDsig = bocmod(dummyRSD,5,2); RateMatchedSPSsig = repelem(SPSsig(:),10,1);
Set the amplification factors for the RS-data, SPS, and RS-pilot signals, in that order.
ampfactors = [2/3 sqrt(2)/3 sqrt(2)/3];
Perform interplex modulation of SPS, RS-pilot, and RS-data signals.
[NavICBBWaveform,efficiency] = interplexmod([RSDsig,RateMatchedSPSsig,RSPsig],ampfactors);
Visualize the complex NavIC baseband waveform.
fs = 10*1.023e6; % Sample rate bbscope = spectrumAnalyzer(SampleRate=fs, ... Title="Power spectrum of NavIC signals"); bbscope(NavICBBWaveform)
Perform Interplex Modulation on Three GPS Signals
Perform interplex modulation on these three Global Positioning System (GPS) signals to generate a complex baseband waveform.
C/A-code
L1 civil (L1C) data ranging code (L1CD)
M-code
Set the PRN index for the satellite.
PRNID = 1;
Set the number of C/A-code navigation data bits in the generated waveform.
numNavDataBits = 1;
Initialize random data for each GPS signal.
randLNAVData = randi([0 1],1,numNavDataBits);
% L1CD data bits are twice of C/A-code for same time duration
randCNAV2Data = randi([0 1],1,2*numNavDataBits);
Generate a C/A-code for the set PRNID.
caCode = gnssCACode(PRNID,"GPS"); tempCABits = repmat(caCode,20,1); caBits = xor(tempCABits,randLNAVData); rateMatchedCABits = repelem(caBits(:),40); % Rate match with M-code signal caCodeSig = 1 - 2*rateMatchedCABits(:);
Generate L1C-codes for the set PRNID.
l1cd = gpsL1CCodes(PRNID); licdBits = xor(l1cd,randCNAV2Data); l1cdSig = -1*bocmod(licdBits(:),1,1,20);
The spreading code rate for the M-code is 5.115 Mcps, and one bit duration is 20 ms.
numChipsPerDataBit = (5*1023)*20;
Generate random data bits as M-coded data, and then modulate the bits using BOC modulation.
mCode = randi([0,1],numChipsPerDataBit*numNavDataBits,1); mCodeSig = bocmod(mCode,10,5);
Set the amplification factors for the C/A-code, L1CD, and M-code signals, in that order.
ampfactors = [sqrt(0.4) sqrt(0.1) sqrt(0.4)];
Perform interplex modulation of the three GPS signals.
[GPSL1BBWaveform,efficiency] = interplexmod([caCodeSig l1cdSig mCodeSig],ampfactors);
Visualize the complex GPS baseband waveform.
fs = 40*1.023e6; % Sample rate bbscope = spectrumAnalyzer(SampleRate=fs, ... Title="Power spectrum of GPS signals"); bbscope(GPSL1BBWaveform)
Input Arguments
signal
— Input signals
m-by-n matrix
Input signals, specified as a m-by-n matrix. m indicates the length of the input signals and n indicates the number of signals to be interplexed. n must be in the range [1, 5].
Data Types: double
Complex Number Support: Yes
ampfactor
— Amplification factor
scalar | vector
Amplification factor, specified as one of these options.
Scalar — Use this option to assign the same value to each input signal.
Vector — Use this option to assign an individual value to each input signal. The length of the vector must be equal to the number of columns in
signal
.
Amplification factor defines the power distribution between the signals.
interplexmod
function internally derives modulation indices
corresponding to each signal using their amplification factors. These modulation indices
are then used to compute modsignal
.
For more information, see Interplex Modulation Workflow.
Data Types: double
Output Arguments
modsignal
— Interplex modulated output signal
column vector
Interplex modulated output signal, returned as a column vector. The length of the
column vector is equal to the number of rows in signal
.
Data Types: double
Complex Number Support: Yes
efficiency
— Power efficiency of interplexing process
scalar in the range [0, 1]
Power efficiency of the interplexing process, returned as a scalar in the range [0, 1].
Efficiency is computed as total signal power divided by the total transmitted power.
Data Types: double
More About
Interplex Modulation Workflow
This block diagram helps to understand how multiple input signals are modulated by the
interplexmod
function.
Here, thetaN represents the modulation index and is calculated internally using this formula:
where a represents the amplification factor.
Interplex Modulation Equation
The generic interplex equation is given by this formula.
where:
P is total average power, which is equal to
1
in this function implementation.ωc is the carrier frequency.
θ(t) is the phase modulation and is calculated as:
where:
θn is the modulation index.
sn is square wave of amplitude
1
.t is the instantaneous time.
Considering the above equation, this is the equivalent baseband interplexed signal equation.
References
[1] Butman, S. and Timor, U. Interplex - An efficient Multichannel PSK/PM Telemetry System. IEEE Transactions on Communications, 20(3), pp.415-419.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2024a
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)