9951 explained code solutions for 126 technologies


python-scipyHow can I use Python and SciPy to process signals?


Python and SciPy can be used to process signals in a number of ways. For example, the SciPy signal processing module can be used to filter, analyze, and manipulate digital signals. Here is an example of how to use SciPy to filter a signal:

import numpy as np
from scipy import signal

# Generate a test signal, a 2 Vrms sine wave at 1234 Hz
fs = 48000
t = np.arange(0, 1, 1/fs)
x = 2*np.sin(2*np.pi*1234*t)

# Create a FIR filter and apply it to x
b = signal.firwin(80, 1000, fs=fs, pass_zero=False)
filtered_x = signal.lfilter(b, 1, x)

The code above creates a test signal x with a frequency of 1234 Hz, then creates a FIR filter b with a cutoff frequency of 1000 Hz, and finally applies the filter to the signal using the lfilter function.

Code explanation

  • np.arange(0, 1, 1/fs): creates an array of values between 0 and 1 at a sampling rate of fs
  • np.sin(2*np.pi*1234*t): creates a sine wave with a frequency of 1234 Hz
  • signal.firwin(80, 1000, fs=fs, pass_zero=False): creates a FIR filter with a cutoff frequency of 1000 Hz at a sampling rate of fs
  • signal.lfilter(b, 1, x): applies the filter b to the signal x

For more information on signal processing with SciPy, see here.

Edit this code on GitHub