\r
#region private or protected fields\r
\r
- private Function function;\r
private static Function[] library;\r
+ private Function function;\r
private double parameter;\r
private double powerCorrectionFactor;\r
private double amplitudeCorrectionFactor;\r
}\r
\r
public WindowFunction(FunctionType type, Range range)\r
+ : this(type, 0.0, range)\r
{\r
- Range = range;\r
switch (type)\r
{\r
- case FunctionType.UserDefined:\r
- function = null;\r
- break;\r
case FunctionType.Gaussian:\r
- function = Gaussian;\r
parameter = 0.4;\r
break;\r
case FunctionType.Kaiser:\r
- function = Kaiser;\r
parameter = 2.0;\r
break;\r
case FunctionType.Lanczos:\r
- function = Lanczos;\r
parameter = 1.0;\r
break;\r
default:\r
- function = library[(int)type];\r
break;\r
}\r
- powerCorrectionFactor = CalculatePowerCorrectionFactor();\r
- amplitudeCorrectionFactor = CalculateAmplitudeCorrectionFactor();\r
+ }\r
+\r
+ public WindowFunction(FunctionType type, double parameter)\r
+ : this(type, parameter, null)\r
+ {\r
+ }\r
+\r
+ public WindowFunction(FunctionType type, double parameter, Range range)\r
+ {\r
+ Type = type;\r
+ Range = range;\r
+ this.parameter = parameter;\r
+ switch (type)\r
+ {\r
+ case FunctionType.UserDefined:\r
+ Window = null;\r
+ break;\r
+ case FunctionType.Gaussian:\r
+ Window = Gaussian;\r
+ break;\r
+ case FunctionType.Kaiser:\r
+ Window = Kaiser;\r
+ break;\r
+ case FunctionType.Lanczos:\r
+ Window = Lanczos;\r
+ break;\r
+ default:\r
+ Window = library[(int)type];\r
+ break;\r
+ }\r
}\r
\r
public WindowFunction(Function function)\r
public WindowFunction(Function function, Range range)\r
: this(FunctionType.UserDefined, range)\r
{\r
- this.function = function;\r
+ Window = function;\r
}\r
\r
#endregion\r
set;\r
}\r
\r
+ public Function Window\r
+ {\r
+ get\r
+ {\r
+ return function;\r
+ }\r
+ private set\r
+ {\r
+ function = value;\r
+ if (function != null)\r
+ {\r
+ powerCorrectionFactor = CalculatePowerCorrectionFactor();\r
+ amplitudeCorrectionFactor = CalculateAmplitudeCorrectionFactor();\r
+ }\r
+ }\r
+ }\r
+\r
public double PowerCorrectionFactor\r
{\r
get\r