summaryrefslogtreecommitdiff
path: root/macros/taylorwin.sci~
diff options
context:
space:
mode:
authorttt2018-05-04 14:17:52 +0530
committerttt2018-05-04 14:17:52 +0530
commite0ee212228386544ca248f0893d001107775ec4b (patch)
treec8648ca62b221da49af8eae94c2a6e2976c72f6e /macros/taylorwin.sci~
parent9d4f22fb6e70ffdbeda496faf516a0c10f0b6133 (diff)
downloadFOSSEE-Signal-Processing-Toolbox-e0ee212228386544ca248f0893d001107775ec4b.tar.gz
FOSSEE-Signal-Processing-Toolbox-e0ee212228386544ca248f0893d001107775ec4b.tar.bz2
FOSSEE-Signal-Processing-Toolbox-e0ee212228386544ca248f0893d001107775ec4b.zip
deleted *~ files
Diffstat (limited to 'macros/taylorwin.sci~')
-rw-r--r--macros/taylorwin.sci~83
1 files changed, 0 insertions, 83 deletions
diff --git a/macros/taylorwin.sci~ b/macros/taylorwin.sci~
deleted file mode 100644
index 85ab015..0000000
--- a/macros/taylorwin.sci~
+++ /dev/null
@@ -1,83 +0,0 @@
-//Taylor Window
-TAYLORWIN(N) returns an N-point Taylor window in a column vector.
-//
-// TAYLORWIN(N,NBAR) returns an N-point Taylor window with NBAR nearly
-// constant-level sidelobes adjacent to the mainlobe. NBAR must be an
-// integer greater than or equal to one.
-//
-// TAYLORWIN(N,NBAR,SLL) returns an N-point Taylor window with SLL maximum
-// sidelobe level in dB relative to the mainlobe peak. SLL must be a
-// negative value, e.g., -30 dB.
-//
-//NBAR should satisfy NBAR >= 2*A^2+0.5, where A is equal to
-//acosh(10^(-SLL/20))/pi, otherwise the sidelobe level specified is not
-//guaranteed. If NBAR is not specified it defaults to 4. SLL defaults to
-//-30 dB if not specified.
-
-//Author: Parthasarathi Panda
-//parthasarathipanda314@gmail.com
-//the function is for application on vectors only
-//Modified function to reject negative window length and no of constant level sidelobes with appropriate error messages
-function [w]=taylorwin(n,nbar,sll)
- [nargout,nargin]=argn();
- if nargin<1 then
- error("Not enough input arguments")
- end
- if nargin==1 then
- nbar=4;
- sll=-30;
- elseif nargin==2
- sll=-30;
- end
- if type(n)~=1 | type(nbar)~=1 | type(sll)~=1 then
- error('check the data type of input'); //to check if the inputs are real/complex arrays
- end
-
- if size(n)~=[1,1] then
- error('check the data type of input'); //to check that n is single dimensional
- end
- if floor(n)~=n | imag(n)~=0 then
- error('check that n is an integer');//to check if n is an integer
- end
-
- if size(nbar)~=[1,1] then
- error('check the data type of input'); //to check that nbar is single dimensional
- end
- if floor(nbar)~=nbar | imag(nbar)~=0 then
- error('check that nbar is an integer');//to check if nbar is an integer
- end
-
- if size(sll)~=[1,1] then
- error('check the data type of input'); //to check that sll is single dimensional
- end
- if sll>0 | imag(sll)~=0 then
- error('The sidelobe level SLL must be a negative number.');//to check if sll is a negative no.
- end
- //check if window length is positive
- if(n<0) then
- error("The window length must be a positive integer");
- end
- //check if no of constant level sidelobes is positive
- if (nbar<=0) then
- error("The number of nearly constant-level sidelobes NBAR must be a positive integer greater than 0.");
- end
- B=10^(-sll/20);
- A=log(B+sqrt(B*B-1))/%pi;
- sig=nbar*nbar/(A*A+(nbar-0.5)*(nbar-0.5));
- //computing Fm (the coefficients for the cosines
- m=ones(nbar-1,1)*[1:nbar-1];
- i=([1:nbar-1])'*ones(1,nbar-1);
- M=((1-((m.*m/sig)./(A*A+(i-0.5).*(i-0.5)))));//./(1-(m.*m)./(i.*i)));
- m=[1:nbar-1];
- F=prod(M,1).*((-1)^(m+1));
- for m=1:nbar-1
- j=[[1:m-1],[m+1:nbar-1]];
- F(m)=F(m)/prod((1-(m.*m)./(j.*j)));
- end
- //computing the window
- nv=ones(nbar-1,1)*([0:n-1]);
- m=([1:nbar-1])'*ones(1,n);
- M=cos(2*%pi*m.*(nv-(n-1)/2)/n);
- w=ones(1,n)+F*M;
- w=w';
-endfunction