Performing blind source separation
Blind source separation refers to the process of separating signals from a mixture. Let's say a bunch of different signal generators generate signals and a common receiver receives all of these signals. Now, our job is to separate these signals from this mixture using the properties of these signals. We will use Independent Components Analysis (ICA) to achieve this. You can learn more about it at http://www.mit.edu/~gari/teaching/6.555/LECTURE_NOTES/ch15_bss.pdf. Let's see how to do it.
How to do it…
- Create a new Python file, and import the following packages:
import numpy as np import matplotlib.pyplot as plt from scipy import signal from sklearn.decomposition import PCA, FastICA
- We will use data from the
mixture_of_signals.txt
file that's already provided to you. Let's load the data:# Load data input_file = 'mixture_of_signals.txt' X = np.loadtxt(input_file)
- Create the ICA object:
# Compute ICA ica = FastICA(n_components...