# how to extract a radio signal features with python?

I have a dataset of radio signals that i want to classify. So, I decided to extract features. After some googling, I have noticed that I have to calculate moments, cumulants, Kutosis and skewness to use them as features.

for the moments I found that there is a function called scipy.stats.moment/. But then, I found another code :

def moment(sample, p, q):
m = np.mean((sample**(p-q)) * (np.conjugate(sample)**q))
return m


what is the difference between the 2 functions? and do I calculate the cumulants basing on the moments?

for the skewness and Kurtosis what do they really represents? Are there any other features that could help?

• I would assume scipy handles real-valued data, which is a special case of complex data - and your function is supposed to provide moments for a complex variable/signal.
– M529
Aug 20 '19 at 14:21

Some of the more cutting edge signal classification techniques utilize deep neural networks (DNNs):

https://arxiv.org/pdf/1712.04578.pdf

This particular paper utilizes a convolutional neural network (CNN) and a residual neural network. The convolutional "front-end" extracts its own nonlinear features prior to connection to the densely connected layers.

DNNs are typically very computationally expensive, so your approach to feature extraction approach might meet your requirements.

• Actually I just read this paper. and it is the reason for this question. also I am testing PCA. But, I need theoretical background about how to calculate these features and what is there meaning. Aug 21 '19 at 8:40

You can use various library available to extract features such as:

1. Librosa
2. audiolazy
3. psafe
4. pyAudioProcessing
5. pyAudioAnalysis