1import os.path 2import numpy as np 3import itertools 4import Tools 5import scipy.signal.windows as win 6import matplotlib.pyplot as plt 7 8def genwelch(n): 9 ik = 2*np.array(range(n)) / n 10 w = ik -1; 11 w = 1 - w**2 12 if len(w)!=n: 13 print("Error with window len in Welch") 14 exit(1) 15 return(w) 16 17 18def genbartlett(n): 19 w = win.bartlett(n,sym=False) 20 return(w) 21 22def genhamming(n): 23 w = win.hamming(n,sym=False) 24 return(w) 25 26def genhanning(n): 27 w = win.hann(n,sym=False) 28 return(w) 29 30def gennuttall3(n): 31 w = win.general_cosine(n, 32 [0.375, 0.5 , 0.125 ],sym=False) 33 return(w) 34 35def gennuttall4(n): 36 w = win.general_cosine(n, 37 [0.3125, 0.46875,0.1875 , 0.03125],sym=False) 38 return(w) 39 40def gennuttall3a(n): 41 w = win.general_cosine(n, 42 [0.40897, 0.5 ,0.09103],sym=False) 43 return(w) 44 45def gennuttall3b(n): 46 w = win.general_cosine(n, 47 [0.4243801, 0.4973406 , 0.0782793 ],sym=False) 48 return(w) 49 50def gennuttall4a(n): 51 w = win.general_cosine(n, 52 [0.338946, 0.481973,0.161054 , 0.018027 ],sym=False) 53 return(w) 54 55def genblackman_harris_92db(n): 56 w = win.blackmanharris(n,sym=False) 57 return(w) 58 59def gennuttall4b(n): 60 w = win.general_cosine(n, 61 [0.355768, 0.487396 , 62 0.144232 , 0.012604 ],sym=False) 63 return(w) 64 65def gennuttall4c(n): 66 w = win.nuttall(n,sym=False) 67 return(w) 68 69def genhft90d(n): 70 w = win.general_cosine(n, 71 [1 ,1.942604 , 72 1.340318 , 0.440811 , 0.043097 ],sym=False) 73 return(w) 74 75def genhft95(n): 76 w = win.general_cosine(n, 77 [1, 1.9383379 , 78 1.3045202 ,0.4028270 ,0.0350665 ] 79 ,sym=False) 80 return(w) 81 82def genhft116d(n): 83 w = win.general_cosine(n, 84 [1, 1.9575375 , 85 1.4780705 ,0.6367431 , 86 0.1228389 ,0.0066288 ] 87 ,sym=False) 88 return(w) 89 90def genhft144d(n): 91 w = win.general_cosine(n, 92 [1 ,1.96760033 , 93 1.57983607 , 0.81123644 , 94 0.22583558 ,0.02773848 , 0.00090360 ] 95 ,sym=False) 96 return(w) 97 98def genhft169d(n): 99 w = win.general_cosine(n, 100 [1, 1.97441843 , 101 1.65409889 , 0.95788187 , 102 0.33673420 , 0.06364622 , 103 0.00521942 ,0.00010599 ] 104 ,sym=False) 105 return(w) 106 107def genhft196d(n): 108 w = win.general_cosine(n, 109 [1, 1.979280420 , 110 1.710288951 , 1.081629853 , 111 0.448734314 , 0.112376628 , 112 0.015122992 ,0.000871252 , 0.000011896 ] 113 ,sym=False) 114 return(w) 115 116def genhft223d(n): 117 w = win.general_cosine(n, 118 [1, 1.98298997309, 119 1.75556083063 , 1.19037717712 , 120 0.56155440797 , 0.17296769663 , 121 0.03233247087 ,0.00324954578 , 122 0.00013801040 ,0.00000132725 ] 123 ,sym=False) 124 return(w) 125 126def genhft248d(n): 127 w = win.general_cosine(n, 128 [1, 1.985844164102 , 129 1.791176438506 , 1.282075284005 , 130 0.667777530266 , 0.240160796576 , 131 0.056656381764 ,0.008134974479 , 132 0.000624544650 ,0.000019808998 , 133 0.000000132974 ] 134 ,sym=False) 135 return(w) 136 137 138def writeTests(config,format): 139 NBSAMPLES=128 140 141 data1=np.random.randn(NBSAMPLES) 142 data1 = Tools.normalize(data1) 143 data1 = genwelch(NBSAMPLES) 144 config.writeReference(1, data1,"RefWelch_") 145 146 data1 = genbartlett(NBSAMPLES) 147 config.writeReference(2, data1,"RefBartlett_") 148 149 data1 = genhamming(NBSAMPLES) 150 config.writeReference(3, data1,"RefHamming_") 151 152 data1 = genhanning(NBSAMPLES) 153 config.writeReference(4, data1,"RefHanning_") 154 155 data1 = gennuttall3(NBSAMPLES) 156 config.writeReference(5, data1,"RefNuttall3_") 157 158 data1 = gennuttall4(NBSAMPLES) 159 config.writeReference(6, data1,"RefNuttall4_") 160 161 data1 = gennuttall3a(NBSAMPLES) 162 config.writeReference(7, data1,"RefNuttall3a_") 163 164 data1 = gennuttall3b(NBSAMPLES) 165 config.writeReference(8, data1,"RefNuttall3b_") 166 167 data1 = gennuttall4a(NBSAMPLES) 168 config.writeReference(9, data1,"RefNuttall4a_") 169 170 data1 = genblackman_harris_92db(NBSAMPLES) 171 config.writeReference(10, data1,"RefBlackman_harris_92db_") 172 173 data1 = gennuttall4b(NBSAMPLES) 174 config.writeReference(11, data1,"RefNuttall4b_") 175 176 data1 = gennuttall4c(NBSAMPLES) 177 config.writeReference(12, data1,"RefNuttall4c_") 178 179 data1 = genhft90d(NBSAMPLES) 180 config.writeReference(13, data1,"RefHft90d_") 181 182 data1 = genhft95(NBSAMPLES) 183 config.writeReference(14, data1,"RefHft95_") 184 185 data1 = genhft116d(NBSAMPLES) 186 config.writeReference(15, data1,"RefHft116d_") 187 188 data1 = genhft144d(NBSAMPLES) 189 config.writeReference(16, data1,"RefHft144d_") 190 191 data1 = genhft169d(NBSAMPLES) 192 config.writeReference(17, data1,"RefHft169d_") 193 194 data1 = genhft196d(NBSAMPLES) 195 config.writeReference(18, data1,"RefHft196d_") 196 197 data1 = genhft223d(NBSAMPLES) 198 config.writeReference(19, data1,"RefHft223d_") 199 200 data1 = genhft248d(NBSAMPLES) 201 config.writeReference(20, data1,"RefHft248d_") 202 203 204def generatePatterns(): 205 PATTERNDIR = os.path.join("Patterns","DSP","Window","Window") 206 PARAMDIR = os.path.join("Parameters","DSP","Window","Window") 207 208 configf64=Tools.Config(PATTERNDIR,PARAMDIR,"f64") 209 configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32") 210 211 writeTests(configf64,Tools.F64) 212 writeTests(configf32,Tools.F32) 213 214 215 216if __name__ == '__main__': 217 generatePatterns() 218