SignalProcessing
ComplexToReal
split a complex rtable into rtables of the real and imaginary parts
RealToComplex
join two real rtables of real and imaginary parts into one complex rtable
Calling Sequence
Parameters
Description
Examples
Compatibility
ComplexToReal( Data )
ComplexToReal( Data, containers = [ ContainerReal, ContainerImaginary ] )
RealToComplex( DataReal, DataImaginary )
RealToComplex( DataReal, DataImaginary, container = Container )
Data
-
rtable or list with entries of type complexcons.
ContainerReal
(optional) rtable of datatype float[8] to store the real part of Data.
ContainerImaginary
(optional) rtable of datatype float[8] to store the imaginary part of Data.
DataReal
rtable or list with entries of type realcons.
DataImaginary
Container
(optional) rtable of datatype complex[8] to store the combined complex numbers represented by DataReal and DataImaginary.
The ComplexToReal command takes an rtable or list of complex entries, and returns rtables with the real and imaginary parts.
The RealToComplex command takes two lists/rtables of real entries, representing the real and imaginary parts, and returns an rtable with the combined complex entries.
Any passed rtables must have the same order (C_order or Fortran_order), have no indexing function, and use rectangular storage.
Any passed rtables must have the same number of elements, but need not have the same dimensions. Internally, one-dimensional aliases of the rtables are used.
When no container is passed for storage, the output of ComplexToReal or RealToComplex is an rtable of the same subtype and dimensions as the first input rtable.
The input container Data is converted to an rtable of datatype complex[8], and the input containers DataReal and DataImaginary are converted to rtables of datatype float[8]. For this reason, it is more efficient to pass containers already having the appropriate datatypes.
The ComplexToReal and RealToComplex commands are not thread safe.
with⁡SignalProcessing:
Example 1
A≔Vector⁡1+2⁢I,3+4⁢I,datatype=complex8
A≔1.+2.⁢I3.+4.⁢I
ComplexToReal⁡A
1.3.,2.4.
Example 2
Containers can be passed to store the real and imaginary parts:
A≔Matrix⁡1+5⁢I,2+6⁢I,3+7⁢I,4+8⁢I,datatype=complex8
A≔1.+5.⁢I2.+6.⁢I3.+7.⁢I4.+8.⁢I
B≔Matrix⁡2,2,datatype=float8:
C≔Matrix⁡2,2,datatype=float8:
ComplexToReal⁡A,containers=B,C:
B=B
B=1.2.3.4.
C=C
C=5.6.7.8.
Example 3
Different types of rtables can be passed, provided they are compatible:
A≔Vectorrow⁡−3,5,datatype=float8
A≔−3.5.
B≔Vectorcolumn⁡4,−7,datatype=float8
B≔4.−7.
C≔Array⁡1..2,datatype=complex8:
RealToComplex⁡A,B,container=C:
C=−3.+4.⁢I5.−7.⁢I
The SignalProcessing[ComplexToReal] and SignalProcessing[RealToComplex] commands were introduced in Maple 2021.
For more information on Maple 2021 changes, see Updates in Maple 2021.
See Also
SignalProcessing[Conjugate]
SignalProcessing[RealPart]
Download Help Document