From e14342e827e2b42e43c006df90c7ad99e5124b3c Mon Sep 17 00:00:00 2001 From: wukong Date: Sun, 4 Nov 2018 10:59:44 -0800 Subject: added gaussian.awk based on hamming script; added pwr(x,p) function to sterling_approx; minor clean up all around; --- hamming.awk | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'hamming.awk') diff --git a/hamming.awk b/hamming.awk index 95f1cde..fd6d89c 100644 --- a/hamming.awk +++ b/hamming.awk @@ -6,25 +6,34 @@ # 'a0' and 'a1' parameters of the raised cosine. BEGIN { + + ### R.W. Hamming, "Digital Filters" + # H = "0.23 0.54 0.23" + N = ARGV[1] - pi = 4*(4*atan2(1,5) - atan2(1,239)) + # window interval goes from -M to M + M = 0.5*(N - 1) + pi = 4*atan2(1,1) - #a0 = (25.0/46.0) - #a1 = (21.0/46.0) + a0 = (25.0/46.0) + a1 = (21.0/46.0) ### optimal values for equal-ripple - a0 = 0.53836 - a1 = 0.46164 + #a0 = 0.53836 + #a1 = 0.46164 - ### R.W. Hamming, "Digital Filters" - # H = "0.23 0.54 0.23" + ### VonHann + #a0 = 0.5 + #a1 = 0.5 - for (n=0; n 1) { - w[n] = a0 - a1*cos((2*pi*n)/(N - 1)) - sum_w += w[n] + for (n=-M; n<=M; n++) { + if (N > 1 && M > 0) { + w[n] = a0 + a1*cos((pi*n)/M) + print n, w[n]/M + } + else { + print n, 1.0 } - print 2.0*(w[n])/(N + 1) } } -- cgit v1.2.3