Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Mathematics Library User's Guide
    • General Classes
    • Mathematical Functions
    • Complex Numbers
    • Arbitrary Precision Arithmetic
    • Automatic Differentiation
    • Curves and Interpolation
    • Curve Fitting
    • Solving Equations
    • Optimization
    • Calculus
    • Fast Fourier Transforms
    • Random Numbers
    • Generic Arithmetic
    • Appendices
  • Fast Fourier Transforms
    • One-Dimensional Fast Fourier Transforms
    • Window Functions
    • Two-Dimensional Fast Fourier Transforms
  • Window Functions

Window Functions

Extreme Optimization Numerical Libraries for .NET Professional

Window functions find many uses in signal processing, including spectral analysis and filter design. Window functions are usually applied to a signal before its Fourier transform is computed. The WindowFunction class represents window functions. The WindowFunctions class provides static methods that can be used to construct the most commonly used window functions.

Creating window functions

Window functions are created by calling a method on the WindowFunctions. All methods take the length of the window as the first parameter. All window functions are normalized so the largest value is 1. (For windows with an even number of samples, this value may not appear.) Some methods have an overload that takes an additional parameter of type WindowSampling.

Method

Description

Symmetric

The window is symmetrical about its center point.

Periodic

The window can be applied to a signal with implicit periodicity.

The following window functions are available:

Method

Description

Bartlett

A Bartlett window.

Blackman

A Blackman window with an optional parameter (default value is 0.16>).

BlackmanHarris

A Blackman-Harris window.

Chebyshev

A Chebyshev window with the specified sidelobe attenuation in dB.

Cosine

A cosine window.

FlatTop

A flat top window.

Gaussian

A Gaussian window with the specified standard deviation (must be less than 0.5).

Hamming

A Hamming window.

Hanning

A Hann or Hanning window.

ModifiedBartlettHann

A modified Bartlett-Hann window.

Nuttall

A Blackman-Nuttal window.

Rectangular

A rectangular window.

Triangular

A triangular window.

Tukey

A Tukey window with specified ratio of the tapered section to the constant section.

Using window functions

Window functions are applied by multiplying the components of a signal with the corresponding weight in the window function. The WindowFunction type has a multiplication operator and corresponding static Multiply method that performs this operation on a real signal, represented by a VectorT, or a complex signal, represented by a VectorT of ComplexT. The original signal is unmodified.

The resulting signal vector always has the same length as the original signal. If a window is shorter than the signal, then the trailing part of the result is padded with zeros.

Individual weights of the window can be accessed using the Item indexer property. All weights can also be obtained in an array or a VectorT by calling the ToArray or ToVector method, respectively.

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.