Mercurial > forge
changeset 3602:b1359cfbea62 octave-forge
Initial Commit Into CVS.
author | sis-sou |
---|---|
date | Mon, 09 Jul 2007 17:46:13 +0000 |
parents | 99c9e6db1e38 |
children | 1bcbc128694a |
files | main/signal/inst/bohmanwin.m |
diffstat | 1 files changed, 35 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main/signal/inst/bohmanwin.m Mon Jul 09 17:46:13 2007 +0000 @@ -0,0 +1,35 @@ +## Copyright (C) 2007 Sissou <sylvain.pelissier@gmail.com> +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +## -*- texinfo -*- +## @deftypefn {Function File} {[@var{w}] =} bohmanwin(@var{L}) +## Compute the Bohman window of lenght L. +## @seealso{rectwin, bartlett} +## @end deftypefn + +function [w] = bohmanwin(L) + if (nargin < 1); usage('bohmanwin(x)'); end + if(! isscalar(L)) + error("L must be a number"); + endif + + N = L-1; + n = -ceil(N/2):N/2; + + w = (1-2.*abs(n)./N).*cos(2.*pi.*abs(n)./N) + (1./pi).*sin(2.*pi.*abs(n)./N); + w(1) = 0; + w(length(w))=0; +endfunction; \ No newline at end of file