Signal Processing

The Signal Processing package features tools for frequency domain analysis, windowing, signal generation and analysis, and more. In Maple 18, the Signal Processing toolkit has been expanded to include tools for visualizing the frequency contents of signals and expanded windowing functionality. 

Spectrogram, Power Spectrum, and Signal Plots

Updates include a new function that plots the Spectrogram of a signal, as well as plots for the Power Spectrum and the Signal Plot. By using the new ColorScheme option for Maple plots, you can control the color spread assigned to specific fractions of the given range.

> with(SignalProcessing); -1
 

 Example 

This is a spectrogram of a male voice saying "MapleSim", recorded at 11 KHz. 

> maplesim := cat(kernelopts(datadir), kernelopts(dirsep),
maplesim := cat(kernelopts(datadir), kernelopts(dirsep),
maplesim := cat(kernelopts(datadir), kernelopts(dirsep),
maplesim := cat(kernelopts(datadir), kernelopts(dirsep),

Plot_2d 

 

 Example 

This is a spectrogram of a violin note played with vibrato, together with the power spectrum and signal plot. Note that the oscillations in frequency are typical of vibrato, and are visible above 7 kHz. 

> filename := cat(kernelopts(datadir), kernelopts(dirsep),
filename := cat(kernelopts(datadir), kernelopts(dirsep),
 
> Spectrogram(vibrato, colorscheme = [
Spectrogram(vibrato, colorscheme = [
 

Plot_2d
Plot_2d
Plot_2d

 

 

New Windowing Functions

Maple 18 offers more windowing functions, including Blackmann-Nuttall, Bohman windows and more. Windowing techniques can also be applied to individual segments of data in order to generate the corresponding spectrogram

 Example 

> freq := 5; -1
 
> N := `^`(2, 8); -1
 
> samplingRate := 50; -1
 
> data := Vector(N, proc (i) options operator, arrow; `+`(sin(`+`(`/`(`*`(2, `*`(evalf(Pi), `*`(freq, `*`(i)))), `*`(samplingRate)))), `*`(`/`(1, 1000000000000), `*`(rand()))) end proc, datatype = float...
 
> Spectrogram(dataWindow, samplerate = samplingRate, includepowerspectrum, includesignal, fftsize = 128, colorscheme = [
Spectrogram(dataWindow, samplerate = samplingRate, includepowerspectrum, includesignal, fftsize = 128, colorscheme = [
 
Plot_2d
Plot_2d
Plot_2d


 

View a Recorded Webinar
Signal Processing with Maple and MapleSim
• Signal Processing in a Rapid Solution Development Environment