org-arl / SignalAnalysis.jl

Signal analysis toolbox for Julia
MIT License
41 stars 10 forks source link

Real baseband data should be treated as complex #37

Closed mchitre closed 11 months ago

mchitre commented 1 year ago

Example:

s = rand([-1,1], 10)
upconvert(s, ...)

fails (silently gives wrong result), but

s = complex.(rand([-1,1], 10), 0)
upconvert(s, ...)

works

mchitre commented 11 months ago

The problem is that a real input to upconvert() is treated as a passband signal and converted to analytic by removing the negative frequency component. This destroys the signal.

Since upconvert() expects a baseband signal, we should assume that a real signal is a baseband signal with 0 as imaginary component.