using LUT generate sine, square, triangle wave with variable freq

Dependencies:   mbed-dsp mbed

my_LUT.h

Committer:
cpm219
Date:
2016-11-08
Revision:
0:4a2e0ba6c332

File content as of revision 0:4a2e0ba6c332:

/*
my_LUT.h
Curtis Mattull
10/21/16

This file contains lookup tables for sine, square, and triangle waveforms

*/

const float LUT[3][512] ={
    {
    0,          0.012270753, 0.024539658, 0.036804868,    0.049064537, 0.061316817, 0.073559864, 0.085791835, 
    0.098010887, 0.110215182, 0.12240288, 0.134572148,    0.146721152, 0.158848063, 0.170951055, 0.183028306,
    0.195077997, 0.207098314, 0.219087446, 0.231043589,    0.242964943,0.254849711, 0.266696105, 0.27850234,
    0.290266639, 0.301987231, 0.313662351, 0.32529024,    0.336869148, 0.348397331, 0.359873053, 0.371294587,
    0.382660213, 0.393968218, 0.405216901, 0.416404568,    0.427529534, 0.438590123, 0.449584671, 0.460511522,
    0.47136903, 0.482155561, 0.492869491, 0.503509205,    0.514073103, 0.524559593, 0.534967096, 0.545294046,
    0.555538887, 0.565700076, 0.575776084, 0.585765394,    0.5956665, 0.605477913, 0.615198155, 0.624825762,
    0.634359285, 0.643797287, 0.653138349, 0.662381063,    0.671524038, 0.680565896, 0.689505277, 0.698340834,
    0.707071237, 0.715695172, 0.724211339, 0.732618456,    0.740915258, 0.749100495, 0.757172935, 0.765131362,
    0.772974578, 0.780701402, 0.788310669, 0.795801236,    0.803171973, 0.81042177, 0.817549537, 0.8245542,
    0.831434703, 0.838190012, 0.844819108, 0.851320994,    0.857694691, 0.863939239, 0.870053697, 0.876037145,
    0.881888682, 0.887607426, 0.893192518, 0.898643115,    0.903958397, 0.909137564, 0.914179835, 0.919084452,
    0.923850676, 0.928477789, 0.932965095, 0.937311918,    0.941517603, 0.945581517, 0.949503048, 0.953281606,
    0.956916622, 0.960407548, 0.963753858, 0.966955049,    0.970010639, 0.972920168, 0.975683197, 0.978299311,
    0.980768116, 0.983089239, 0.985262331, 0.987287066,    0.989163138, 0.990890264, 0.992468186, 0.993896664,
    0.995175484, 0.996304454, 0.997283403, 0.998112184,    0.998790673, 0.999318766, 0.999696385, 0.999923473,
    0.999999995, 0.99992594, 0.999701319, 0.999326166,    0.998800538, 0.998124513, 0.997298193, 0.996321704,
    0.995195191, 0.993918824, 0.992492796, 0.990917322,    0.989192638, 0.987319004, 0.985296703, 0.983126039,
    0.980807338, 0.978340951, 0.975727248, 0.972966622,    0.97005949, 0.96700629, 0.96380748, 0.960463544,
    0.956974983, 0.953342324, 0.949566114, 0.945646921,    0.941585335, 0.937381967, 0.933037452, 0.928552443,
    0.923927615, 0.919163664, 0.914261309, 0.909221287,    0.904044357, 0.898731299, 0.893282912, 0.887700018,
    0.881983456, 0.876134088, 0.870152794, 0.864040475,    0.857798052, 0.851426463, 0.84492667, 0.83829965,
    0.831546401, 0.82466794, 0.817665304, 0.810539545,    0.803291738, 0.795922974, 0.788434362, 0.78082703,
    0.773102124, 0.765260805, 0.757304257, 0.749233675,    0.741050276, 0.732755292, 0.724349972, 0.715835581,
    0.707213402, 0.698484733, 0.689650888, 0.680713198,    0.671673007, 0.662531679, 0.653290588, 0.643951126,
    0.634514701, 0.624982731, 0.615356654, 0.605637919,    0.595827988, 0.585928339, 0.575940463, 0.565865863,
    0.555706057, 0.545462574, 0.535136957, 0.524730761,    0.514245553, 0.503682911, 0.493044425, 0.482331699,
    0.471546344, 0.460689986, 0.449764258, 0.438770806,    0.427711285, 0.416587361, 0.405400708, 0.394153011,
    0.382845964, 0.371481269, 0.360060637, 0.348585789,    0.337058451, 0.32548036, 0.31385326, 0.3021789,
    0.290459039, 0.278695441, 0.266889879, 0.255044129,    0.243159975, 0.231239207, 0.219283619, 0.207295013,
    0.195275192, 0.183225968, 0.171149154, 0.159046569,    0.146920035, 0.134771378, 0.122602428, 0.110415017,
    0.098210979, 0.085992154, 0.07376038, 0.061517499,    0.049265355, 0.037005793, 0.024740659, 0.012471799,
    0.000201062, -0.012069706, -0.024338656, -0.036603942,    -0.048863716, -0.061116132, -0.073359345, -0.085591512,
    -0.097810792, -0.110015343, -0.122203328, -0.134372912,    -0.146522263, -0.158649551, -0.170752949, -0.182830637,
    -0.194880794, -0.206901607, -0.218891265, -0.230847963,    -0.242769901, -0.254655283, -0.26650232, -0.278309227,
    -0.290074228, -0.30179555, -0.313471429, -0.325100106,    -0.336679831, -0.348208859, -0.359685455, -0.371107891,
    -0.382474446, -0.393783409, -0.405033078, -0.416221758,    -0.427347765, -0.438409422, -0.449405066, -0.460333039,
    -0.471191697, -0.481979404, -0.492694536, -0.50333548,    -0.513900632, -0.524388404, -0.534797214, -0.545125496,
    -0.555371695, -0.565534267, -0.575611683, -0.585602425,    -0.595504989, -0.605317883, -0.615039631, -0.624668768,
    -0.634203843, -0.643643423, -0.652986084, -0.662230421,    -0.671375041, -0.680418567, -0.689359638, -0.698196907,
    -0.706929044, -0.715554733, -0.724072676, -0.732481591,    -0.74078021, -0.748967286, -0.757041583, -0.765001888,
    -0.772847001, -0.780575741, -0.788186945, -0.795679465,    -0.803052174, -0.810303962, -0.817433737, -0.824440425,
    -0.831322972, -0.83808034, -0.844711513, -0.851215491,    -0.857591296, -0.863837967, -0.869954564, -0.875940166,
    -0.881793872, -0.887514799, -0.893102087, -0.898554895,    -0.903872401, -0.909053804, -0.914098325, -0.919005203,
    -0.9237737, -0.928403099, -0.932892701, -0.937241831,    -0.941449833, -0.945516075,  -0.949439944, -0.953220849, 
    -0.956858221, -0.960351512, -0.963700197, -0.96690377,  -0.969961749, -0.972873675,    -0.975639108, -0.978257632,
    -0.980728853, -0.983052399, -0.98522792, -0.987255088,  -0.989133598, -0.990863167, -0.992443535, -0.993874464,
    -0.995155738, -0.996287164, -0.997268573, -0.998099816, -0.998780767, -0.999311326, -0.999691411, -0.999920965,
    -0.999999955, -0.999928367, -0.999706213, -0.999333526, -0.998810362, -0.998136801, -0.997312943, -0.996338913,
    -0.995214857, -0.993940944, -0.992517367, -0.990944339, -0.989222098, -0.987350903, -0.985331035, -0.983162799,
    -0.980846521, -0.978382551, -0.975771258, -0.973013037, -0.970108302, -0.967057491, -0.963861064, -0.960519501,
    -0.957033306, -0.953403004, -0.949629141, -0.945712286, -0.941653028, -0.937451979, -0.933109771, -0.928627058,
    -0.924004516, -0.919242839, -0.914342746, -0.909304973, -0.90413028, -0.898819446,  -0.89337327, -0.887792573,
    -0.882078195, -0.876230996, -0.870251856, -0.864141677, -0.857901377, -0.851531898, -0.845034197, -0.838409254,
    -0.831658065, -0.824781648, -0.817781037, -0.810657288, -0.803411472, -0.796044681, -0.788558023, -0.780952627,
    -0.773229638, -0.765390218, -0.757435547, -0.749366824, -0.741185264, -0.732892098, -0.724488576, -0.715975962,
    -0.707355539, -0.698628604, -0.689796472, -0.680860472, -0.67182195, -0.662682267,  -0.6534428, -0.644104939,
    -0.634670091, -0.625139676, -0.615515129, -0.605797899, -0.595989451, -0.58609126,  -0.576104817, -0.566031626,
    -0.555873204, -0.54563108,  -0.535306797, -0.524901908, -0.514417982, -0.503856595, -0.49321934, -0.482507817,
    -0.47172364, -0.460868431,  -0.449943827, -0.438951471, -0.42789302, -0.416770137,  -0.405584498, -0.394337788,
    -0.3830317, -0.371667935,   -0.360248206, -0.348774232, -0.337247741, -0.325670468, -0.314044156, -0.302370556,
    -0.290651427, -0.278888531, -0.267083642, -0.255238536, -0.243354997, -0.231434815, -0.219479783, -0.207491703,
    -0.195472379, -0.183423622, -0.171347246, -0.159245068, -0.147118912, -0.134970603, -0.12280197, -0.110614847,
    -0.098411067, -0.086192469, -0.073960892, -0.061718179, -0.049466172, -0.037206717, -0.024941659, -0.012672846 },
    {
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,      1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,
    
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1 },
    {
    
    0,          0.007813,    0.015626,    0.023439,    0.031252,    0.039065,    0.046878,    0.054691,
    0.062504,    0.070317,    0.07813,    0.085943,    0.093756,    0.101569,    0.109382,    0.117195,
    0.125008,    0.132821,    0.140634,    0.148447,    0.15626,    0.164073,    0.171886,    0.179699,
    0.187512,    0.195325,    0.203138,    0.210951,    0.218764,    0.226577,    0.23439,    0.242203,
    0.250016,    0.257829,    0.265642,    0.273455,    0.281268,    0.289081,    0.296894,    0.304707,
    0.31252,    0.320333,    0.328146,    0.335959,    0.343772,    0.351585,    0.359398,    0.367211,
    0.375024,    0.382837,    0.39065,    0.398463,    0.406276,    0.414089,    0.421902,    0.429715,
    0.437528,    0.445341,    0.453154,    0.460967,    0.46878,    0.476593,    0.484406,    0.492219,
    0.500032,    0.507845,    0.515658,    0.523471,    0.531284,    0.539097,    0.54691,    0.554723,
    0.562536,    0.570349,    0.578162,    0.585975,    0.593788,    0.601601,    0.609414,    0.617227,
    0.62504,    0.632853,    0.640666,    0.648479,    0.656292,    0.664105,    0.671918,    0.679731,
    0.687544,    0.695357,    0.70317,    0.710983,    0.718796,    0.726609,    0.734422,    0.742235,
    0.750048,    0.757861,    0.765674,    0.773487,    0.7813,    0.789113,    0.796926,    0.804739,
    0.812552,    0.820365,    0.828178,    0.835991,    0.843804,    0.851617,    0.85943,    0.867243,
    0.875056,    0.882869,    0.890682,    0.898495,    0.906308,    0.914121,    0.921934,    0.929747,
    0.93756,    0.945373,    0.953186,    0.960999,    0.968812,    0.976625,    0.984438,    0.992251,
    1,          0.992187,    0.984374,    0.976561,    0.968748,    0.960935,    0.953122,    0.945309,
    0.937496,    0.929683,    0.92187,    0.914057,    0.906244,    0.898431,    0.890618,    0.882805,
    0.874992,    0.867179,    0.859366,    0.851553,    0.84374,    0.835927,    0.828114,    0.820301,
    0.812488,    0.804675,    0.796862,    0.789049,    0.781236,    0.773423,    0.76561,    0.757797,
    0.749984,    0.742171,    0.734358,    0.726545,    0.718732,    0.710919,    0.703106,    0.695293,
    0.68748,    0.679667,    0.671854,    0.664041,    0.656228,    0.648415,    0.640602,    0.632789,
    0.624976,    0.617163,    0.60935,    0.601537,    0.593724,    0.585911,    0.578098,    0.570285,
    0.562472,    0.554659,    0.546846,    0.539033,    0.53122,    0.523407,    0.515594,    0.507781,
    0.499968,    0.492155,    0.484342,    0.476529,    0.468716,    0.460903,    0.45309,    0.445277,
    0.437464,    0.429651,    0.421838,    0.414025,    0.406212,    0.398399,    0.390586,    0.382773,
    0.37496,    0.367147,    0.359334,    0.351521,    0.343708,    0.335895,    0.328082,    0.320269,
    0.312456,    0.304643,    0.29683,    0.289017,    0.281204,    0.273391,    0.265578,    0.257765,
    0.249952,    0.242139,    0.234326,    0.226513,    0.2187,    0.210887,    0.203074,    0.195261,
    0.187448,    0.179635,    0.171822,    0.164009,    0.156196,    0.148383,    0.14057,    0.132757,
    0.124944,    0.117131,    0.109318,    0.101505,    0.093692,    0.085879,    0.078066,    0.070253,
    0.06244,    0.054627,    0.046814,    0.039001,    0.031188,    0.023375,    0.015562,    0.007749,
    0,          -0.007877,    -0.01569,    -0.023503,    -0.031316,    -0.039129,    -0.046942,    -0.054755,
    -0.062568,    -0.070381,    -0.078194,    -0.086007,    -0.09382,    -0.101633,    -0.109446,    -0.117259,
    -0.125072,    -0.132885,    -0.140698,    -0.148511,    -0.156324,    -0.164137,    -0.17195,    -0.179763,
    -0.187576,    -0.195389,    -0.203202,    -0.211015,    -0.218828,    -0.226641,    -0.234454,    -0.242267,
    -0.25008,    -0.257893,    -0.265706,    -0.273519,    -0.281332,    -0.289145,    -0.296958,    -0.304771,
    -0.312584,    -0.320397,    -0.32821,    -0.336023,    -0.343836,    -0.351649,    -0.359462,    -0.367275,
    -0.375088,    -0.382901,    -0.390714,    -0.398527,    -0.40634,    -0.414153,    -0.421966,    -0.429779,
    -0.437592,    -0.445405,    -0.453218,    -0.461031,    -0.468844,    -0.476657,    -0.48447,    -0.492283,
    -0.500096,    -0.507909,    -0.515722,    -0.523535,    -0.531348,    -0.539161,    -0.546974,    -0.554787,
    -0.5626,    -0.570413,    -0.578226,    -0.586039,    -0.593852,    -0.601665,    -0.609478,    -0.617291,
    -0.625104,    -0.632917,    -0.64073,    -0.648543,    -0.656356,    -0.664169,    -0.671982,    -0.679795,
    -0.687608,    -0.695421,    -0.703234,    -0.711047,    -0.71886,    -0.726673,    -0.734486,    -0.742299,
    -0.750112,    -0.757925,    -0.765738,    -0.773551,    -0.781364,    -0.789177,    -0.79699,    -0.804803,
    -0.812616,    -0.820429,    -0.828242,    -0.836055,    -0.843868,    -0.851681,    -0.859494,    -0.867307,
    -0.87512,    -0.882933,    -0.890746,    -0.898559,    -0.906372,    -0.914185,    -0.921998,    -0.929811,
    -0.937624,    -0.945437,    -0.95325,    -0.961063,    -0.968876,    -0.976689,    -0.984502,    -0.992315,
    -1,         -0.992187,    -0.984374,    -0.976561,    -0.968748,    -0.960935,    -0.953122,    -0.945309,
    -0.937496,    -0.929683,    -0.92187,    -0.914057,    -0.906244,    -0.898431,    -0.890618,    -0.882805,
    -0.874992,    -0.867179,    -0.859366,    -0.851553,    -0.84374,    -0.835927,    -0.828114,    -0.820301,
    -0.812488,    -0.804675,    -0.796862,    -0.789049,    -0.781236,    -0.773423,    -0.76561,    -0.757797,
    -0.749984,    -0.742171,    -0.734358,    -0.726545,    -0.718732,    -0.710919,    -0.703106,    -0.695293,
    -0.68748,    -0.679667,    -0.671854,    -0.664041,    -0.656228,    -0.648415,    -0.640602,    -0.632789,
    -0.624976,    -0.617163,    -0.60935,    -0.601537,    -0.593724,    -0.585911,    -0.578098,    -0.570285,
    -0.562472,    -0.554659,    -0.546846,    -0.539033,    -0.53122,    -0.523407,    -0.515594,    -0.507781,
    -0.499968,    -0.492155,    -0.484342,    -0.476529,    -0.468716,    -0.460903,    -0.45309,    -0.445277,
    -0.437464,    -0.429651,    -0.421838,    -0.414025,    -0.406212,    -0.398399,    -0.390586,    -0.382773,
    -0.37496,    -0.367147,    -0.359334,    -0.351521,    -0.343708,    -0.335895,    -0.328082,    -0.320269,
    -0.312456,    -0.304643,    -0.29683,    -0.289017,    -0.281204,    -0.273391,    -0.265578,    -0.257765,
    -0.249952,    -0.242139,    -0.234326,    -0.226513,    -0.2187,    -0.210887,    -0.203074,    -0.195261,
    -0.187448,    -0.179635,    -0.171822,    -0.164009,    -0.156196,    -0.148383,    -0.14057,    -0.132757,
    -0.124944,    -0.117131,    -0.109318,    -0.101505,    -0.093692,    -0.085879,    -0.078066,    -0.070253,
    -0.06244,    -0.054627,    -0.046814,    -0.039001,    -0.031188,    -0.023375,    -0.015562,    -0.007749 }};