I am a signal processing researcher specializing in cyclostationary signal processing (CSP).
I am hoping to use this blog to help students and researchers learn the basics of CSP, and also to help me learn about new applications of CSP techniques. Since this is a blog, I’ll also post rants, compliments, pet peeves, tips-n-tricks, paper reviews, data sets, etc.
You can leave comments on the posts or contact me at cmspooner @ ieee . org.
Please see this post for information about how best to obtain my assistance with your CSP work.
For beginners, start here.
10 thoughts on “About”
Greetings. I have an interest in using cyclostationary spectral analysis to extract signal features for a task that I am researching. Would it be possible to share you matlab code that computes the cyclostationary spectral correlation? Thank you.
I generally don’t give out code; this is a self-help blog. See this post for more information. Thanks!
This is Andy, Grace’s husband. I’m working at a Bluetooth Low Energy (BLE) chip company. This morning someone here at work was asking a Signal Processing related question and I went online and googled cyclostationary and saw this blog and recognized your face. Anyway, the question was if there was a way to code a BLE signal so that it would be better detected and decoded in a very noisy ISM band environment (with lots of Wifi and BT and all other 2.4GHz transmitters running). Can CSP be exploited in this situation to boost detection and decoding? Or am I asking a dumb question?
Hey Andy! Thanks for stopping by the CSP Blog and leaving a comment.
Generally CSP is used to do signal-presence detection–is the signal present or not, in spite of the simultaneous presence of noise and interference. I get the sense that you are talking about detection in the demodulation sense. Can we use the theory of cyclostationary signals to allow the creation of a signal and its demodulator that, together, are superior to a signal and demodulator that did not use cyclostationarity?
For the signal-presence detection problem, there are signal-design decisions that can enhance the ability of various CSP detectors to detect the signal. An example is when using pulse-shaping filters in digital QAM/PSK signaling. Keeping the power constant, if you use a larger roll-off in your square-root raised-cosine transmission filter, you will have stronger cyclic features to use in CS-exploiting detectors like the single-cycle detector or the SSCA. You can also spread the signal as in direct-sequence spread-spectrum signaling, and this creates a large number of features with different strengths relative to the signal power, increasing the chance that a CS detector will find some of them. (The different features will be affected differently by interference.)
For the demodulation/decoding problem, there is the possibility of using frequency-shift (FRESH) filters (I haven’t finished my CSP Blog post on FRESH filters; see The Literature [R6] and My Papers [45,46]), which Grace knows about. There are a lot more papers out there on the topic of communication-signal/system design with FRESH filtering as an integral part of the system.
You would have to commit to using a demodulation scheme that employed a linear periodically time-varying filter (another name for FRESH filtering) instead of more standard time-invariant components, and you’d have to try to jointly design the signal and the FRESH filter to try to maximize performance in the expected interference environment (which is pretty terrible in the ISM band). But FRESH filters are tricky to adapt. The easiest thing to do is to periodically send a known training sequence, but that is a tough sell when you’re trying to maximize user throughput and want high user bandwidths. FRESH filters can help when the main problem is cochannel interference. For just strong noise, spread spectrum will be helpful, but again, you will have to sacrifice information rate.
Anyway, that’s my take as a signal processor rather than a real communications engineer.
Thank you so much for taking the time to respond to my questions so quickly! It was very helpful. I already forwarded it to the person who asked (the CEO himself). It will take some time for people here to think about it and to see what can be implementable since some of the controller layer is hardware and cannot be changed. Also we are not sure how much filtering constraint we have to be still considered Bluetooth compliant. We’re not very constrained by throughput since most of our customers’ applications will most likely be throughput critical. Your training sequence idea may be more doable. Thank you again for your valuable input.
Greetings. I have an interest in understanding the cyclostationary spectral alysis. Now a problem is bothering me：Why many papers mention that the coherence coefficient is equal to 1 when the signal multiplication should be complex. For example: in JOURNAL OF LIGHTWAVE TECHNOLOGY, VOL. 39, NO. 9, MAY 1, 2021. why s_x_alpha(f)=1 since E_T(t,f+alpha/2)*E_T*(t,f-alpha/2) should be a complex signal.
Hey Douglas! Thanks for stopping by the CSP Blog and leaving a comment.
I don’t have access to the Journal of Lightwave Technology. If you’d like, you can send me a copy of the paper in question via email.
The coherence is a complex-valued function that resides on the closed unit disk in the complex plane. As such, it has a maximum magnitude of 1. We typically don’t have much use for the phase of the coherence, and focus on the magnitude. This is a number on the closed interval [0, 1]. When considering many kinds of communication signals without added noise, the coherence magnitude is actually equal to one for one or more cycle frequencies and many values of spectral frequency (see The Literature [R1]). Once noise is added, the values of the coherence magnitude are less than one, except for the non-conjugate coherence for , which is always equal to 1.
More generally, if I have a complex variable or function, it is perfectly acceptable for that variable or function to take on real values. The real numbers are a subset of the complex numbers. Every real number is just the complex number , where . So even the complex-valued coherence can be equal to 1.
I sent you an email asking if you could send me a copy of the Lightwave Technology paper in question (sent on 3/25/22). Did you receive that email? Can you send the paper?
Sorry, I forgot to check it. I’ll send it to you later.