12位符号数转归一化float的实现

28 篇文章 11 订阅
2 篇文章 0 订阅

AD9361输出基带的12位数,表示范围是【-2048,2047】,我们现在要转成【-1,1】范围的浮点数。最简答的实现方式就是用查表的方法。我们先用以下代码做一个表格数组:



int main (){
int i , j = 0;
float f ;
for(i=-2048;i<=2047;++i) 
{
f = (float )i/2048 ;
printf("%f," , f);j++;
if (j==16) { j=0;printf("\n");}
}	
}

从上面代码看我们也可以用如下函数实现12位符号数到【-1,1】的转换:

float s12_2_float (short s12){return (float) s12/ 2048 ;}

继续说表格的实现方式:建立数组表格如下:

float u12_float_table[] = {
-1.000000,-0.999512,-0.999023,-0.998535,-0.998047,-0.997559,-0.997070,-0.996582,-0.996094,-0.995605,-0.995117,-0.994629,-0.994141,-0.993652,-0.993164,-0.992676,
-0.992188,-0.991699,-0.991211,-0.990723,-0.990234,-0.989746,-0.989258,-0.988770,-0.988281,-0.987793,-0.987305,-0.986816,-0.986328,-0.985840,-0.985352,-0.984863,
-0.984375,-0.983887,-0.983398,-0.982910,-0.982422,-0.981934,-0.981445,-0.980957,-0.980469,-0.979980,-0.979492,-0.979004,-0.978516,-0.978027,-0.977539,-0.977051,
-0.976563,-0.976074,-0.975586,-0.975098,-0.974609,-0.974121,-0.973633,-0.973145,-0.972656,-0.972168,-0.971680,-0.971191,-0.970703,-0.970215,-0.969727,-0.969238,
-0.968750,-0.968262,-0.967773,-0.967285,-0.966797,-0.966309,-0.965820,-0.965332,-0.964844,-0.964355,-0.963867,-0.963379,-0.962891,-0.962402,-0.961914,-0.961426,
-0.960938,-0.960449,-0.959961,-0.959473,-0.958984,-0.958496,-0.958008,-0.957520,-0.957031,-0.956543,-0.956055,-0.955566,-0.955078,-0.954590,-0.954102,-0.953613,
-0.953125,-0.952637,-0.952148,-0.951660,-0.951172,-0.950684,-0.950195,-0.949707,-0.949219,-0.948730,-0.948242,-0.947754,-0.947266,-0.946777,-0.946289,-0.945801,
-0.945313,-0.944824,-0.944336,-0.943848,-0.943359,-0.942871,-0.942383,-0.941895,-0.941406,-0.940918,-0.940430,-0.939941,-0.939453,-0.938965,-0.938477,-0.937988,
-0.937500,-0.937012,-0.936523,-0.936035,-0.935547,-0.935059,-0.934570,-0.934082,-0.933594,-0.933105,-0.932617,-0.932129,-0.931641,-0.931152,-0.930664,-0.930176,
-0.929688,-0.929199,-0.928711,-0.928223,-0.927734,-0.927246,-0.926758,-0.926270,-0.925781,-0.925293,-0.924805,-0.924316,-0.923828,-0.923340,-0.922852,-0.922363,
-0.921875,-0.921387,-0.920898,-0.920410,-0.919922,-0.919434,-0.918945,-0.918457,-0.917969,-0.917480,-0.916992,-0.916504,-0.916016,-0.915527,-0.915039,-0.914551,
-0.914063,-0.913574,-0.913086,-0.912598,-0.912109,-0.911621,-0.911133,-0.910645,-0.910156,-0.909668,-0.909180,-0.908691,-0.908203,-0.907715,-0.907227,-0.906738,
-0.906250,-0.905762,-0.905273,-0.904785,-0.904297,-0.903809,-0.903320,-0.902832,-0.902344,-0.901855,-0.901367,-0.900879,-0.900391,-0.899902,-0.899414,-0.898926,
-0.898438,-0.897949,-0.897461,-0.896973,-0.896484,-0.895996,-0.895508,-0.895020,-0.894531,-0.894043,-0.893555,-0.893066,-0.892578,-0.892090,-0.891602,-0.891113,
-0.890625,-0.890137,-0.889648,-0.889160,-0.888672,-0.888184,-0.887695,-0.887207,-0.886719,-0.886230,-0.885742,-0.885254,-0.884766,-0.884277,-0.883789,-0.883301,
-0.882813,-0.882324,-0.881836,-0.881348,-0.880859,-0.880371,-0.879883,-0.879395,-0.878906,-0.878418,-0.877930,-0.877441,-0.876953,-0.876465,-0.875977,-0.875488,
-0.875000,-0.874512,-0.874023,-0.873535,-0.873047,-0.872559,-0.872070,-0.871582,-0.871094,-0.870605,-0.870117,-0.869629,-0.869141,-0.868652,-0.868164,-0.867676,
-0.867188,-0.866699,-0.866211,-0.865723,-0.865234,-0.864746,-0.864258,-0.863770,-0.863281,-0.862793,-0.862305,-0.861816,-0.861328,-0.860840,-0.860352,-0.859863,
-0.859375,-0.858887,-0.858398,-0.857910,-0.857422,-0.856934,-0.856445,-0.855957,-0.855469,-0.854980,-0.854492,-0.854004,-0.853516,-0.853027,-0.852539,-0.852051,
-0.851563,-0.851074,-0.850586,-0.850098,-0.849609,-0.849121,-0.848633,-0.848145,-0.847656,-0.847168,-0.846680,-0.846191,-0.845703,-0.845215,-0.844727,-0.844238,
-0.843750,-0.843262,-0.842773,-0.842285,-0.841797,-0.841309,-0.840820,-0.840332,-0.839844,-0.839355,-0.838867,-0.838379,-0.837891,-0.837402,-0.836914,-0.836426,
-0.835938,-0.835449,-0.834961,-0.834473,-0.833984,-0.833496,-0.833008,-0.832520,-0.832031,-0.831543,-0.831055,-0.830566,-0.830078,-0.829590,-0.829102,-0.828613,
-0.828125,-0.827637,-0.827148,-0.826660,-0.826172,-0.825684,-0.825195,-0.824707,-0.824219,-0.823730,-0.823242,-0.822754,-0.822266,-0.821777,-0.821289,-0.820801,
-0.820313,-0.819824,-0.819336,-0.818848,-0.818359,-0.817871,-0.817383,-0.816895,-0.816406,-0.815918,-0.815430,-0.814941,-0.814453,-0.813965,-0.813477,-0.812988,
-0.812500,-0.812012,-0.811523,-0.811035,-0.810547,-0.810059,-0.809570,-0.809082,-0.808594,-0.808105,-0.807617,-0.807129,-0.806641,-0.806152,-0.805664,-0.805176,
-0.804688,-0.804199,-0.803711,-0.803223,-0.802734,-0.802246,-0.801758,-0.801270,-0.800781,-0.800293,-0.799805,-0.799316,-0.798828,-0.798340,-0.797852,-0.797363,
-0.796875,-0.796387,-0.795898,-0.795410,-0.794922,-0.794434,-0.793945,-0.793457,-0.792969,-0.792480,-0.791992,-0.791504,-0.791016,-0.790527,-0.790039,-0.789551,
-0.789063,-0.788574,-0.788086,-0.787598,-0.787109,-0.786621,-0.786133,-0.785645,-0.785156,-0.784668,-0.784180,-0.783691,-0.783203,-0.782715,-0.782227,-0.781738,
-0.781250,-0.780762,-0.780273,-0.779785,-0.779297,-0.778809,-0.778320,-0.777832,-0.777344,-0.776855,-0.776367,-0.775879,-0.775391,-0.774902,-0.774414,-0.773926,
-0.773438,-0.772949,-0.772461,-0.771973,-0.771484,-0.770996,-0.770508,-0.770020,-0.769531,-0.769043,-0.768555,-0.768066,-0.767578,-0.767090,-0.766602,-0.766113,
-0.765625,-0.765137,-0.764648,-0.764160,-0.763672,-0.763184,-0.762695,-0.762207,-0.761719,-0.761230,-0.760742,-0.760254,-0.759766,-0.759277,-0.758789,-0.758301,
-0.757813,-0.757324,-0.756836,-0.756348,-0.755859,-0.755371,-0.754883,-0.754395,-0.753906,-0.753418,-0.752930,-0.752441,-0.751953,-0.751465,-0.750977,-0.750488,
-0.750000,-0.749512,-0.749023,-0.748535,-0.748047,-0.747559,-0.747070,-0.746582,-0.746094,-0.745605,-0.745117,-0.744629,-0.744141,-0.743652,-0.743164,-0.742676,
-0.742188,-0.741699,-0.741211,-0.740723,-0.740234,-0.739746,-0.739258,-0.738770,-0.738281,-0.737793,-0.737305,-0.736816,-0.736328,-0.735840,-0.735352,-0.734863,
-0.734375,-0.733887,-0.733398,-0.732910,-0.732422,-0.731934,-0.731445,-0.730957,-0.730469,-0.729980,-0.729492,-0.729004,-0.728516,-0.728027,-0.727539,-0.727051,
-0.726563,-0.726074,-0.725586,-0.725098,-0.724609,-0.724121,-0.723633,-0.723145,-0.722656,-0.722168,-0.721680,-0.721191,-0.720703,-0.720215,-0.719727,-0.719238,
-0.718750,-0.718262,-0.717773,-0.717285,-0.716797,-0.716309,-0.715820,-0.715332,-0.714844,-0.714355,-0.713867,-0.713379,-0.712891,-0.712402,-0.711914,-0.711426,
-0.710938,-0.710449,-0.709961,-0.709473,-0.708984,-0.708496,-0.708008,-0.707520,-0.707031,-0.706543,-0.706055,-0.705566,-0.705078,-0.704590,-0.704102,-0.703613,
-0.703125,-0.702637,-0.702148,-0.701660,-0.701172,-0.700684,-0.700195,-0.699707,-0.699219,-0.698730,-0.698242,-0.697754,-0.697266,-0.696777,-0.696289,-0.695801,
-0.695313,-0.694824,-0.694336,-0.693848,-0.693359,-0.692871,-0.692383,-0.691895,-0.691406,-0.690918,-0.690430,-0.689941,-0.689453,-0.688965,-0.688477,-0.687988,
-0.687500,-0.687012,-0.686523,-0.686035,-0.685547,-0.685059,-0.684570,-0.684082,-0.683594,-0.683105,-0.682617,-0.682129,-0.681641,-0.681152,-0.680664,-0.680176,
-0.679688,-0.679199,-0.678711,-0.678223,-0.677734,-0.677246,-0.676758,-0.676270,-0.675781,-0.675293,-0.674805,-0.674316,-0.673828,-0.673340,-0.672852,-0.672363,
-0.671875,-0.671387,-0.670898,-0.670410,-0.669922,-0.669434,-0.668945,-0.668457,-0.667969,-0.667480,-0.666992,-0.666504,-0.666016,-0.665527,-0.665039,-0.664551,
-0.664063,-0.663574,-0.663086,-0.662598,-0.662109,-0.661621,-0.661133,-0.660645,-0.660156,-0.659668,-0.659180,-0.658691,-0.658203,-0.657715,-0.657227,-0.656738,
-0.656250,-0.655762,-0.655273,-0.654785,-0.654297,-0.653809,-0.653320,-0.652832,-0.652344,-0.651855,-0.651367,-0.650879,-0.650391,-0.649902,-0.649414,-0.648926,
-0.648438,-0.647949,-0.647461,-0.646973,-0.646484,-0.645996,-0.645508,-0.645020,-0.644531,-0.644043,-0.643555,-0.643066,-0.642578,-0.642090,-0.641602,-0.641113,
-0.640625,-0.640137,-0.639648,-0.639160,-0.638672,-0.638184,-0.637695,-0.637207,-0.636719,-0.636230,-0.635742,-0.635254,-0.634766,-0.634277,-0.633789,-0.633301,
-0.632813,-0.632324,-0.631836,-0.631348,-0.630859,-0.630371,-0.629883,-0.629395,-0.628906,-0.628418,-0.627930,-0.627441,-0.626953,-0.626465,-0.625977,-0.625488,
-0.625000,-0.624512,-0.624023,-0.623535,-0.623047,-0.622559,-0.622070,-0.621582,-0.621094,-0.620605,-0.620117,-0.619629,-0.619141,-0.618652,-0.618164,-0.617676,
-0.617188,-0.616699,-0.616211,-0.615723,-0.615234,-0.614746,-0.614258,-0.613770,-0.613281,-0.612793,-0.612305,-0.611816,-0.611328,-0.610840,-0.610352,-0.609863,
-0.609375,-0.608887,-0.608398,-0.607910,-0.607422,-0.606934,-0.606445,-0.605957,-0.605469,-0.604980,-0.604492,-0.604004,-0.603516,-0.603027,-0.602539,-0.602051,
-0.601563,-0.601074,-0.600586,-0.600098,-0.599609,-0.599121,-0.598633,-0.598145,-0.597656,-0.597168,-0.596680,-0.596191,-0.595703,-0.595215,-0.594727,-0.594238,
-0.593750,-0.593262,-0.592773,-0.592285,-0.591797,-0.591309,-0.590820,-0.590332,-0.589844,-0.589355,-0.588867,-0.588379,-0.587891,-0.587402,-0.586914,-0.586426,
-0.585938,-0.585449,-0.584961,-0.584473,-0.583984,-0.583496,-0.583008,-0.582520,-0.582031,-0.581543,-0.581055,-0.580566,-0.580078,-0.579590,-0.579102,-0.578613,
-0.578125,-0.577637,-0.577148,-0.576660,-0.576172,-0.575684,-0.575195,-0.574707,-0.574219,-0.573730,-0.573242,-0.572754,-0.572266,-0.571777,-0.571289,-0.570801,
-0.570313,-0.569824,-0.569336,-0.568848,-0.568359,-0.567871,-0.567383,-0.566895,-0.566406,-0.565918,-0.565430,-0.564941,-0.564453,-0.563965,-0.563477,-0.562988,
-0.562500,-0.562012,-0.561523,-0.561035,-0.560547,-0.560059,-0.559570,-0.559082,-0.558594,-0.558105,-0.557617,-0.557129,-0.556641,-0.556152,-0.555664,-0.555176,
-0.554688,-0.554199,-0.553711,-0.553223,-0.552734,-0.552246,-0.551758,-0.551270,-0.550781,-0.550293,-0.549805,-0.549316,-0.548828,-0.548340,-0.547852,-0.547363,
-0.546875,-0.546387,-0.545898,-0.545410,-0.544922,-0.544434,-0.543945,-0.543457,-0.542969,-0.542480,-0.541992,-0.541504,-0.541016,-0.540527,-0.540039,-0.539551,
-0.539063,-0.538574,-0.538086,-0.537598,-0.537109,-0.536621,-0.536133,-0.535645,-0.535156,-0.534668,-0.534180,-0.533691,-0.533203,-0.532715,-0.532227,-0.531738,
-0.531250,-0.530762,-0.530273,-0.529785,-0.529297,-0.528809,-0.528320,-0.527832,-0.527344,-0.526855,-0.526367,-0.525879,-0.525391,-0.524902,-0.524414,-0.523926,
-0.523438,-0.522949,-0.522461,-0.521973,-0.521484,-0.520996,-0.520508,-0.520020,-0.519531,-0.519043,-0.518555,-0.518066,-0.517578,-0.517090,-0.516602,-0.516113,
-0.515625,-0.515137,-0.514648,-0.514160,-0.513672,-0.513184,-0.512695,-0.512207,-0.511719,-0.511230,-0.510742,-0.510254,-0.509766,-0.509277,-0.508789,-0.508301,
-0.507813,-0.507324,-0.506836,-0.506348,-0.505859,-0.505371,-0.504883,-0.504395,-0.503906,-0.503418,-0.502930,-0.502441,-0.501953,-0.501465,-0.500977,-0.500488,
-0.500000,-0.499512,-0.499023,-0.498535,-0.498047,-0.497559,-0.497070,-0.496582,-0.496094,-0.495605,-0.495117,-0.494629,-0.494141,-0.493652,-0.493164,-0.492676,
-0.492188,-0.491699,-0.491211,-0.490723,-0.490234,-0.489746,-0.489258,-0.488770,-0.488281,-0.487793,-0.487305,-0.486816,-0.486328,-0.485840,-0.485352,-0.484863,
-0.484375,-0.483887,-0.483398,-0.482910,-0.482422,-0.481934,-0.481445,-0.480957,-0.480469,-0.479980,-0.479492,-0.479004,-0.478516,-0.478027,-0.477539,-0.477051,
-0.476563,-0.476074,-0.475586,-0.475098,-0.474609,-0.474121,-0.473633,-0.473145,-0.472656,-0.472168,-0.471680,-0.471191,-0.470703,-0.470215,-0.469727,-0.469238,
-0.468750,-0.468262,-0.467773,-0.467285,-0.466797,-0.466309,-0.465820,-0.465332,-0.464844,-0.464355,-0.463867,-0.463379,-0.462891,-0.462402,-0.461914,-0.461426,
-0.460938,-0.460449,-0.459961,-0.459473,-0.458984,-0.458496,-0.458008,-0.457520,-0.457031,-0.456543,-0.456055,-0.455566,-0.455078,-0.454590,-0.454102,-0.453613,
-0.453125,-0.452637,-0.452148,-0.451660,-0.451172,-0.450684,-0.450195,-0.449707,-0.449219,-0.448730,-0.448242,-0.447754,-0.447266,-0.446777,-0.446289,-0.445801,
-0.445313,-0.444824,-0.444336,-0.443848,-0.443359,-0.442871,-0.442383,-0.441895,-0.441406,-0.440918,-0.440430,-0.439941,-0.439453,-0.438965,-0.438477,-0.437988,
-0.437500,-0.437012,-0.436523,-0.436035,-0.435547,-0.435059,-0.434570,-0.434082,-0.433594,-0.433105,-0.432617,-0.432129,-0.431641,-0.431152,-0.430664,-0.430176,
-0.429688,-0.429199,-0.428711,-0.428223,-0.427734,-0.427246,-0.426758,-0.426270,-0.425781,-0.425293,-0.424805,-0.424316,-0.423828,-0.423340,-0.422852,-0.422363,
-0.421875,-0.421387,-0.420898,-0.420410,-0.419922,-0.419434,-0.418945,-0.418457,-0.417969,-0.417480,-0.416992,-0.416504,-0.416016,-0.415527,-0.415039,-0.414551,
-0.414063,-0.413574,-0.413086,-0.412598,-0.412109,-0.411621,-0.411133,-0.410645,-0.410156,-0.409668,-0.409180,-0.408691,-0.408203,-0.407715,-0.407227,-0.406738,
-0.406250,-0.405762,-0.405273,-0.404785,-0.404297,-0.403809,-0.403320,-0.402832,-0.402344,-0.401855,-0.401367,-0.400879,-0.400391,-0.399902,-0.399414,-0.398926,
-0.398438,-0.397949,-0.397461,-0.396973,-0.396484,-0.395996,-0.395508,-0.395020,-0.394531,-0.394043,-0.393555,-0.393066,-0.392578,-0.392090,-0.391602,-0.391113,
-0.390625,-0.390137,-0.389648,-0.389160,-0.388672,-0.388184,-0.387695,-0.387207,-0.386719,-0.386230,-0.385742,-0.385254,-0.384766,-0.384277,-0.383789,-0.383301,
-0.382813,-0.382324,-0.381836,-0.381348,-0.380859,-0.380371,-0.379883,-0.379395,-0.378906,-0.378418,-0.377930,-0.377441,-0.376953,-0.376465,-0.375977,-0.375488,
-0.375000,-0.374512,-0.374023,-0.373535,-0.373047,-0.372559,-0.372070,-0.371582,-0.371094,-0.370605,-0.370117,-0.369629,-0.369141,-0.368652,-0.368164,-0.367676,
-0.367188,-0.366699,-0.366211,-0.365723,-0.365234,-0.364746,-0.364258,-0.363770,-0.363281,-0.362793,-0.362305,-0.361816,-0.361328,-0.360840,-0.360352,-0.359863,
-0.359375,-0.358887,-0.358398,-0.357910,-0.357422,-0.356934,-0.356445,-0.355957,-0.355469,-0.354980,-0.354492,-0.354004,-0.353516,-0.353027,-0.352539,-0.352051,
-0.351563,-0.351074,-0.350586,-0.350098,-0.349609,-0.349121,-0.348633,-0.348145,-0.347656,-0.347168,-0.346680,-0.346191,-0.345703,-0.345215,-0.344727,-0.344238,
-0.343750,-0.343262,-0.342773,-0.342285,-0.341797,-0.341309,-0.340820,-0.340332,-0.339844,-0.339355,-0.338867,-0.338379,-0.337891,-0.337402,-0.336914,-0.336426,
-0.335938,-0.335449,-0.334961,-0.334473,-0.333984,-0.333496,-0.333008,-0.332520,-0.332031,-0.331543,-0.331055,-0.330566,-0.330078,-0.329590,-0.329102,-0.328613,
-0.328125,-0.327637,-0.327148,-0.326660,-0.326172,-0.325684,-0.325195,-0.324707,-0.324219,-0.323730,-0.323242,-0.322754,-0.322266,-0.321777,-0.321289,-0.320801,
-0.320313,-0.319824,-0.319336,-0.318848,-0.318359,-0.317871,-0.317383,-0.316895,-0.316406,-0.315918,-0.315430,-0.314941,-0.314453,-0.313965,-0.313477,-0.312988,
-0.312500,-0.312012,-0.311523,-0.311035,-0.310547,-0.310059,-0.309570,-0.309082,-0.308594,-0.308105,-0.307617,-0.307129,-0.306641,-0.306152,-0.305664,-0.305176,
-0.304688,-0.304199,-0.303711,-0.303223,-0.302734,-0.302246,-0.301758,-0.301270,-0.300781,-0.300293,-0.299805,-0.299316,-0.298828,-0.298340,-0.297852,-0.297363,
-0.296875,-0.296387,-0.295898,-0.295410,-0.294922,-0.294434,-0.293945,-0.293457,-0.292969,-0.292480,-0.291992,-0.291504,-0.291016,-0.290527,-0.290039,-0.289551,
-0.289063,-0.288574,-0.288086,-0.287598,-0.287109,-0.286621,-0.286133,-0.285645,-0.285156,-0.284668,-0.284180,-0.283691,-0.283203,-0.282715,-0.282227,-0.281738,
-0.281250,-0.280762,-0.280273,-0.279785,-0.279297,-0.278809,-0.278320,-0.277832,-0.277344,-0.276855,-0.276367,-0.275879,-0.275391,-0.274902,-0.274414,-0.273926,
-0.273438,-0.272949,-0.272461,-0.271973,-0.271484,-0.270996,-0.270508,-0.270020,-0.269531,-0.269043,-0.268555,-0.268066,-0.267578,-0.267090,-0.266602,-0.266113,
-0.265625,-0.265137,-0.264648,-0.264160,-0.263672,-0.263184,-0.262695,-0.262207,-0.261719,-0.261230,-0.260742,-0.260254,-0.259766,-0.259277,-0.258789,-0.258301,
-0.257813,-0.257324,-0.256836,-0.256348,-0.255859,-0.255371,-0.254883,-0.254395,-0.253906,-0.253418,-0.252930,-0.252441,-0.251953,-0.251465,-0.250977,-0.250488,
-0.250000,-0.249512,-0.249023,-0.248535,-0.248047,-0.247559,-0.247070,-0.246582,-0.246094,-0.245605,-0.245117,-0.244629,-0.244141,-0.243652,-0.243164,-0.242676,
-0.242188,-0.241699,-0.241211,-0.240723,-0.240234,-0.239746,-0.239258,-0.238770,-0.238281,-0.237793,-0.237305,-0.236816,-0.236328,-0.235840,-0.235352,-0.234863,
-0.234375,-0.233887,-0.233398,-0.232910,-0.232422,-0.231934,-0.231445,-0.230957,-0.230469,-0.229980,-0.229492,-0.229004,-0.228516,-0.228027,-0.227539,-0.227051,
-0.226563,-0.226074,-0.225586,-0.225098,-0.224609,-0.224121,-0.223633,-0.223145,-0.222656,-0.222168,-0.221680,-0.221191,-0.220703,-0.220215,-0.219727,-0.219238,
-0.218750,-0.218262,-0.217773,-0.217285,-0.216797,-0.216309,-0.215820,-0.215332,-0.214844,-0.214355,-0.213867,-0.213379,-0.212891,-0.212402,-0.211914,-0.211426,
-0.210938,-0.210449,-0.209961,-0.209473,-0.208984,-0.208496,-0.208008,-0.207520,-0.207031,-0.206543,-0.206055,-0.205566,-0.205078,-0.204590,-0.204102,-0.203613,
-0.203125,-0.202637,-0.202148,-0.201660,-0.201172,-0.200684,-0.200195,-0.199707,-0.199219,-0.198730,-0.198242,-0.197754,-0.197266,-0.196777,-0.196289,-0.195801,
-0.195313,-0.194824,-0.194336,-0.193848,-0.193359,-0.192871,-0.192383,-0.191895,-0.191406,-0.190918,-0.190430,-0.189941,-0.189453,-0.188965,-0.188477,-0.187988,
-0.187500,-0.187012,-0.186523,-0.186035,-0.185547,-0.185059,-0.184570,-0.184082,-0.183594,-0.183105,-0.182617,-0.182129,-0.181641,-0.181152,-0.180664,-0.180176,
-0.179688,-0.179199,-0.178711,-0.178223,-0.177734,-0.177246,-0.176758,-0.176270,-0.175781,-0.175293,-0.174805,-0.174316,-0.173828,-0.173340,-0.172852,-0.172363,
-0.171875,-0.171387,-0.170898,-0.170410,-0.169922,-0.169434,-0.168945,-0.168457,-0.167969,-0.167480,-0.166992,-0.166504,-0.166016,-0.165527,-0.165039,-0.164551,
-0.164063,-0.163574,-0.163086,-0.162598,-0.162109,-0.161621,-0.161133,-0.160645,-0.160156,-0.159668,-0.159180,-0.158691,-0.158203,-0.157715,-0.157227,-0.156738,
-0.156250,-0.155762,-0.155273,-0.154785,-0.154297,-0.153809,-0.153320,-0.152832,-0.152344,-0.151855,-0.151367,-0.150879,-0.150391,-0.149902,-0.149414,-0.148926,
-0.148438,-0.147949,-0.147461,-0.146973,-0.146484,-0.145996,-0.145508,-0.145020,-0.144531,-0.144043,-0.143555,-0.143066,-0.142578,-0.142090,-0.141602,-0.141113,
-0.140625,-0.140137,-0.139648,-0.139160,-0.138672,-0.138184,-0.137695,-0.137207,-0.136719,-0.136230,-0.135742,-0.135254,-0.134766,-0.134277,-0.133789,-0.133301,
-0.132813,-0.132324,-0.131836,-0.131348,-0.130859,-0.130371,-0.129883,-0.129395,-0.128906,-0.128418,-0.127930,-0.127441,-0.126953,-0.126465,-0.125977,-0.125488,
-0.125000,-0.124512,-0.124023,-0.123535,-0.123047,-0.122559,-0.122070,-0.121582,-0.121094,-0.120605,-0.120117,-0.119629,-0.119141,-0.118652,-0.118164,-0.117676,
-0.117188,-0.116699,-0.116211,-0.115723,-0.115234,-0.114746,-0.114258,-0.113770,-0.113281,-0.112793,-0.112305,-0.111816,-0.111328,-0.110840,-0.110352,-0.109863,
-0.109375,-0.108887,-0.108398,-0.107910,-0.107422,-0.106934,-0.106445,-0.105957,-0.105469,-0.104980,-0.104492,-0.104004,-0.103516,-0.103027,-0.102539,-0.102051,
-0.101563,-0.101074,-0.100586,-0.100098,-0.099609,-0.099121,-0.098633,-0.098145,-0.097656,-0.097168,-0.096680,-0.096191,-0.095703,-0.095215,-0.094727,-0.094238,
-0.093750,-0.093262,-0.092773,-0.092285,-0.091797,-0.091309,-0.090820,-0.090332,-0.089844,-0.089355,-0.088867,-0.088379,-0.087891,-0.087402,-0.086914,-0.086426,
-0.085938,-0.085449,-0.084961,-0.084473,-0.083984,-0.083496,-0.083008,-0.082520,-0.082031,-0.081543,-0.081055,-0.080566,-0.080078,-0.079590,-0.079102,-0.078613,
-0.078125,-0.077637,-0.077148,-0.076660,-0.076172,-0.075684,-0.075195,-0.074707,-0.074219,-0.073730,-0.073242,-0.072754,-0.072266,-0.071777,-0.071289,-0.070801,
-0.070313,-0.069824,-0.069336,-0.068848,-0.068359,-0.067871,-0.067383,-0.066895,-0.066406,-0.065918,-0.065430,-0.064941,-0.064453,-0.063965,-0.063477,-0.062988,
-0.062500,-0.062012,-0.061523,-0.061035,-0.060547,-0.060059,-0.059570,-0.059082,-0.058594,-0.058105,-0.057617,-0.057129,-0.056641,-0.056152,-0.055664,-0.055176,
-0.054688,-0.054199,-0.053711,-0.053223,-0.052734,-0.052246,-0.051758,-0.051270,-0.050781,-0.050293,-0.049805,-0.049316,-0.048828,-0.048340,-0.047852,-0.047363,
-0.046875,-0.046387,-0.045898,-0.045410,-0.044922,-0.044434,-0.043945,-0.043457,-0.042969,-0.042480,-0.041992,-0.041504,-0.041016,-0.040527,-0.040039,-0.039551,
-0.039063,-0.038574,-0.038086,-0.037598,-0.037109,-0.036621,-0.036133,-0.035645,-0.035156,-0.034668,-0.034180,-0.033691,-0.033203,-0.032715,-0.032227,-0.031738,
-0.031250,-0.030762,-0.030273,-0.029785,-0.029297,-0.028809,-0.028320,-0.027832,-0.027344,-0.026855,-0.026367,-0.025879,-0.025391,-0.024902,-0.024414,-0.023926,
-0.023438,-0.022949,-0.022461,-0.021973,-0.021484,-0.020996,-0.020508,-0.020020,-0.019531,-0.019043,-0.018555,-0.018066,-0.017578,-0.017090,-0.016602,-0.016113,
-0.015625,-0.015137,-0.014648,-0.014160,-0.013672,-0.013184,-0.012695,-0.012207,-0.011719,-0.011230,-0.010742,-0.010254,-0.009766,-0.009277,-0.008789,-0.008301,
-0.007813,-0.007324,-0.006836,-0.006348,-0.005859,-0.005371,-0.004883,-0.004395,-0.003906,-0.003418,-0.002930,-0.002441,-0.001953,-0.001465,-0.000977,-0.000488,
0.000000,0.000488,0.000977,0.001465,0.001953,0.002441,0.002930,0.003418,0.003906,0.004395,0.004883,0.005371,0.005859,0.006348,0.006836,0.007324,
0.007813,0.008301,0.008789,0.009277,0.009766,0.010254,0.010742,0.011230,0.011719,0.012207,0.012695,0.013184,0.013672,0.014160,0.014648,0.015137,
0.015625,0.016113,0.016602,0.017090,0.017578,0.018066,0.018555,0.019043,0.019531,0.020020,0.020508,0.020996,0.021484,0.021973,0.022461,0.022949,
0.023438,0.023926,0.024414,0.024902,0.025391,0.025879,0.026367,0.026855,0.027344,0.027832,0.028320,0.028809,0.029297,0.029785,0.030273,0.030762,
0.031250,0.031738,0.032227,0.032715,0.033203,0.033691,0.034180,0.034668,0.035156,0.035645,0.036133,0.036621,0.037109,0.037598,0.038086,0.038574,
0.039063,0.039551,0.040039,0.040527,0.041016,0.041504,0.041992,0.042480,0.042969,0.043457,0.043945,0.044434,0.044922,0.045410,0.045898,0.046387,
0.046875,0.047363,0.047852,0.048340,0.048828,0.049316,0.049805,0.050293,0.050781,0.051270,0.051758,0.052246,0.052734,0.053223,0.053711,0.054199,
0.054688,0.055176,0.055664,0.056152,0.056641,0.057129,0.057617,0.058105,0.058594,0.059082,0.059570,0.060059,0.060547,0.061035,0.061523,0.062012,
0.062500,0.062988,0.063477,0.063965,0.064453,0.064941,0.065430,0.065918,0.066406,0.066895,0.067383,0.067871,0.068359,0.068848,0.069336,0.069824,
0.070313,0.070801,0.071289,0.071777,0.072266,0.072754,0.073242,0.073730,0.074219,0.074707,0.075195,0.075684,0.076172,0.076660,0.077148,0.077637,
0.078125,0.078613,0.079102,0.079590,0.080078,0.080566,0.081055,0.081543,0.082031,0.082520,0.083008,0.083496,0.083984,0.084473,0.084961,0.085449,
0.085938,0.086426,0.086914,0.087402,0.087891,0.088379,0.088867,0.089355,0.089844,0.090332,0.090820,0.091309,0.091797,0.092285,0.092773,0.093262,
0.093750,0.094238,0.094727,0.095215,0.095703,0.096191,0.096680,0.097168,0.097656,0.098145,0.098633,0.099121,0.099609,0.100098,0.100586,0.101074,
0.101563,0.102051,0.102539,0.103027,0.103516,0.104004,0.104492,0.104980,0.105469,0.105957,0.106445,0.106934,0.107422,0.107910,0.108398,0.108887,
0.109375,0.109863,0.110352,0.110840,0.111328,0.111816,0.112305,0.112793,0.113281,0.113770,0.114258,0.114746,0.115234,0.115723,0.116211,0.116699,
0.117188,0.117676,0.118164,0.118652,0.119141,0.119629,0.120117,0.120605,0.121094,0.121582,0.122070,0.122559,0.123047,0.123535,0.124023,0.124512,
0.125000,0.125488,0.125977,0.126465,0.126953,0.127441,0.127930,0.128418,0.128906,0.129395,0.129883,0.130371,0.130859,0.131348,0.131836,0.132324,
0.132813,0.133301,0.133789,0.134277,0.134766,0.135254,0.135742,0.136230,0.136719,0.137207,0.137695,0.138184,0.138672,0.139160,0.139648,0.140137,
0.140625,0.141113,0.141602,0.142090,0.142578,0.143066,0.143555,0.144043,0.144531,0.145020,0.145508,0.145996,0.146484,0.146973,0.147461,0.147949,
0.148438,0.148926,0.149414,0.149902,0.150391,0.150879,0.151367,0.151855,0.152344,0.152832,0.153320,0.153809,0.154297,0.154785,0.155273,0.155762,
0.156250,0.156738,0.157227,0.157715,0.158203,0.158691,0.159180,0.159668,0.160156,0.160645,0.161133,0.161621,0.162109,0.162598,0.163086,0.163574,
0.164063,0.164551,0.165039,0.165527,0.166016,0.166504,0.166992,0.167480,0.167969,0.168457,0.168945,0.169434,0.169922,0.170410,0.170898,0.171387,
0.171875,0.172363,0.172852,0.173340,0.173828,0.174316,0.174805,0.175293,0.175781,0.176270,0.176758,0.177246,0.177734,0.178223,0.178711,0.179199,
0.179688,0.180176,0.180664,0.181152,0.181641,0.182129,0.182617,0.183105,0.183594,0.184082,0.184570,0.185059,0.185547,0.186035,0.186523,0.187012,
0.187500,0.187988,0.188477,0.188965,0.189453,0.189941,0.190430,0.190918,0.191406,0.191895,0.192383,0.192871,0.193359,0.193848,0.194336,0.194824,
0.195313,0.195801,0.196289,0.196777,0.197266,0.197754,0.198242,0.198730,0.199219,0.199707,0.200195,0.200684,0.201172,0.201660,0.202148,0.202637,
0.203125,0.203613,0.204102,0.204590,0.205078,0.205566,0.206055,0.206543,0.207031,0.207520,0.208008,0.208496,0.208984,0.209473,0.209961,0.210449,
0.210938,0.211426,0.211914,0.212402,0.212891,0.213379,0.213867,0.214355,0.214844,0.215332,0.215820,0.216309,0.216797,0.217285,0.217773,0.218262,
0.218750,0.219238,0.219727,0.220215,0.220703,0.221191,0.221680,0.222168,0.222656,0.223145,0.223633,0.224121,0.224609,0.225098,0.225586,0.226074,
0.226563,0.227051,0.227539,0.228027,0.228516,0.229004,0.229492,0.229980,0.230469,0.230957,0.231445,0.231934,0.232422,0.232910,0.233398,0.233887,
0.234375,0.234863,0.235352,0.235840,0.236328,0.236816,0.237305,0.237793,0.238281,0.238770,0.239258,0.239746,0.240234,0.240723,0.241211,0.241699,
0.242188,0.242676,0.243164,0.243652,0.244141,0.244629,0.245117,0.245605,0.246094,0.246582,0.247070,0.247559,0.248047,0.248535,0.249023,0.249512,
0.250000,0.250488,0.250977,0.251465,0.251953,0.252441,0.252930,0.253418,0.253906,0.254395,0.254883,0.255371,0.255859,0.256348,0.256836,0.257324,
0.257813,0.258301,0.258789,0.259277,0.259766,0.260254,0.260742,0.261230,0.261719,0.262207,0.262695,0.263184,0.263672,0.264160,0.264648,0.265137,
0.265625,0.266113,0.266602,0.267090,0.267578,0.268066,0.268555,0.269043,0.269531,0.270020,0.270508,0.270996,0.271484,0.271973,0.272461,0.272949,
0.273438,0.273926,0.274414,0.274902,0.275391,0.275879,0.276367,0.276855,0.277344,0.277832,0.278320,0.278809,0.279297,0.279785,0.280273,0.280762,
0.281250,0.281738,0.282227,0.282715,0.283203,0.283691,0.284180,0.284668,0.285156,0.285645,0.286133,0.286621,0.287109,0.287598,0.288086,0.288574,
0.289063,0.289551,0.290039,0.290527,0.291016,0.291504,0.291992,0.292480,0.292969,0.293457,0.293945,0.294434,0.294922,0.295410,0.295898,0.296387,
0.296875,0.297363,0.297852,0.298340,0.298828,0.299316,0.299805,0.300293,0.300781,0.301270,0.301758,0.302246,0.302734,0.303223,0.303711,0.304199,
0.304688,0.305176,0.305664,0.306152,0.306641,0.307129,0.307617,0.308105,0.308594,0.309082,0.309570,0.310059,0.310547,0.311035,0.311523,0.312012,
0.312500,0.312988,0.313477,0.313965,0.314453,0.314941,0.315430,0.315918,0.316406,0.316895,0.317383,0.317871,0.318359,0.318848,0.319336,0.319824,
0.320313,0.320801,0.321289,0.321777,0.322266,0.322754,0.323242,0.323730,0.324219,0.324707,0.325195,0.325684,0.326172,0.326660,0.327148,0.327637,
0.328125,0.328613,0.329102,0.329590,0.330078,0.330566,0.331055,0.331543,0.332031,0.332520,0.333008,0.333496,0.333984,0.334473,0.334961,0.335449,
0.335938,0.336426,0.336914,0.337402,0.337891,0.338379,0.338867,0.339355,0.339844,0.340332,0.340820,0.341309,0.341797,0.342285,0.342773,0.343262,
0.343750,0.344238,0.344727,0.345215,0.345703,0.346191,0.346680,0.347168,0.347656,0.348145,0.348633,0.349121,0.349609,0.350098,0.350586,0.351074,
0.351563,0.352051,0.352539,0.353027,0.353516,0.354004,0.354492,0.354980,0.355469,0.355957,0.356445,0.356934,0.357422,0.357910,0.358398,0.358887,
0.359375,0.359863,0.360352,0.360840,0.361328,0.361816,0.362305,0.362793,0.363281,0.363770,0.364258,0.364746,0.365234,0.365723,0.366211,0.366699,
0.367188,0.367676,0.368164,0.368652,0.369141,0.369629,0.370117,0.370605,0.371094,0.371582,0.372070,0.372559,0.373047,0.373535,0.374023,0.374512,
0.375000,0.375488,0.375977,0.376465,0.376953,0.377441,0.377930,0.378418,0.378906,0.379395,0.379883,0.380371,0.380859,0.381348,0.381836,0.382324,
0.382813,0.383301,0.383789,0.384277,0.384766,0.385254,0.385742,0.386230,0.386719,0.387207,0.387695,0.388184,0.388672,0.389160,0.389648,0.390137,
0.390625,0.391113,0.391602,0.392090,0.392578,0.393066,0.393555,0.394043,0.394531,0.395020,0.395508,0.395996,0.396484,0.396973,0.397461,0.397949,
0.398438,0.398926,0.399414,0.399902,0.400391,0.400879,0.401367,0.401855,0.402344,0.402832,0.403320,0.403809,0.404297,0.404785,0.405273,0.405762,
0.406250,0.406738,0.407227,0.407715,0.408203,0.408691,0.409180,0.409668,0.410156,0.410645,0.411133,0.411621,0.412109,0.412598,0.413086,0.413574,
0.414063,0.414551,0.415039,0.415527,0.416016,0.416504,0.416992,0.417480,0.417969,0.418457,0.418945,0.419434,0.419922,0.420410,0.420898,0.421387,
0.421875,0.422363,0.422852,0.423340,0.423828,0.424316,0.424805,0.425293,0.425781,0.426270,0.426758,0.427246,0.427734,0.428223,0.428711,0.429199,
0.429688,0.430176,0.430664,0.431152,0.431641,0.432129,0.432617,0.433105,0.433594,0.434082,0.434570,0.435059,0.435547,0.436035,0.436523,0.437012,
0.437500,0.437988,0.438477,0.438965,0.439453,0.439941,0.440430,0.440918,0.441406,0.441895,0.442383,0.442871,0.443359,0.443848,0.444336,0.444824,
0.445313,0.445801,0.446289,0.446777,0.447266,0.447754,0.448242,0.448730,0.449219,0.449707,0.450195,0.450684,0.451172,0.451660,0.452148,0.452637,
0.453125,0.453613,0.454102,0.454590,0.455078,0.455566,0.456055,0.456543,0.457031,0.457520,0.458008,0.458496,0.458984,0.459473,0.459961,0.460449,
0.460938,0.461426,0.461914,0.462402,0.462891,0.463379,0.463867,0.464355,0.464844,0.465332,0.465820,0.466309,0.466797,0.467285,0.467773,0.468262,
0.468750,0.469238,0.469727,0.470215,0.470703,0.471191,0.471680,0.472168,0.472656,0.473145,0.473633,0.474121,0.474609,0.475098,0.475586,0.476074,
0.476563,0.477051,0.477539,0.478027,0.478516,0.479004,0.479492,0.479980,0.480469,0.480957,0.481445,0.481934,0.482422,0.482910,0.483398,0.483887,
0.484375,0.484863,0.485352,0.485840,0.486328,0.486816,0.487305,0.487793,0.488281,0.488770,0.489258,0.489746,0.490234,0.490723,0.491211,0.491699,
0.492188,0.492676,0.493164,0.493652,0.494141,0.494629,0.495117,0.495605,0.496094,0.496582,0.497070,0.497559,0.498047,0.498535,0.499023,0.499512,
0.500000,0.500488,0.500977,0.501465,0.501953,0.502441,0.502930,0.503418,0.503906,0.504395,0.504883,0.505371,0.505859,0.506348,0.506836,0.507324,
0.507813,0.508301,0.508789,0.509277,0.509766,0.510254,0.510742,0.511230,0.511719,0.512207,0.512695,0.513184,0.513672,0.514160,0.514648,0.515137,
0.515625,0.516113,0.516602,0.517090,0.517578,0.518066,0.518555,0.519043,0.519531,0.520020,0.520508,0.520996,0.521484,0.521973,0.522461,0.522949,
0.523438,0.523926,0.524414,0.524902,0.525391,0.525879,0.526367,0.526855,0.527344,0.527832,0.528320,0.528809,0.529297,0.529785,0.530273,0.530762,
0.531250,0.531738,0.532227,0.532715,0.533203,0.533691,0.534180,0.534668,0.535156,0.535645,0.536133,0.536621,0.537109,0.537598,0.538086,0.538574,
0.539063,0.539551,0.540039,0.540527,0.541016,0.541504,0.541992,0.542480,0.542969,0.543457,0.543945,0.544434,0.544922,0.545410,0.545898,0.546387,
0.546875,0.547363,0.547852,0.548340,0.548828,0.549316,0.549805,0.550293,0.550781,0.551270,0.551758,0.552246,0.552734,0.553223,0.553711,0.554199,
0.554688,0.555176,0.555664,0.556152,0.556641,0.557129,0.557617,0.558105,0.558594,0.559082,0.559570,0.560059,0.560547,0.561035,0.561523,0.562012,
0.562500,0.562988,0.563477,0.563965,0.564453,0.564941,0.565430,0.565918,0.566406,0.566895,0.567383,0.567871,0.568359,0.568848,0.569336,0.569824,
0.570313,0.570801,0.571289,0.571777,0.572266,0.572754,0.573242,0.573730,0.574219,0.574707,0.575195,0.575684,0.576172,0.576660,0.577148,0.577637,
0.578125,0.578613,0.579102,0.579590,0.580078,0.580566,0.581055,0.581543,0.582031,0.582520,0.583008,0.583496,0.583984,0.584473,0.584961,0.585449,
0.585938,0.586426,0.586914,0.587402,0.587891,0.588379,0.588867,0.589355,0.589844,0.590332,0.590820,0.591309,0.591797,0.592285,0.592773,0.593262,
0.593750,0.594238,0.594727,0.595215,0.595703,0.596191,0.596680,0.597168,0.597656,0.598145,0.598633,0.599121,0.599609,0.600098,0.600586,0.601074,
0.601563,0.602051,0.602539,0.603027,0.603516,0.604004,0.604492,0.604980,0.605469,0.605957,0.606445,0.606934,0.607422,0.607910,0.608398,0.608887,
0.609375,0.609863,0.610352,0.610840,0.611328,0.611816,0.612305,0.612793,0.613281,0.613770,0.614258,0.614746,0.615234,0.615723,0.616211,0.616699,
0.617188,0.617676,0.618164,0.618652,0.619141,0.619629,0.620117,0.620605,0.621094,0.621582,0.622070,0.622559,0.623047,0.623535,0.624023,0.624512,
0.625000,0.625488,0.625977,0.626465,0.626953,0.627441,0.627930,0.628418,0.628906,0.629395,0.629883,0.630371,0.630859,0.631348,0.631836,0.632324,
0.632813,0.633301,0.633789,0.634277,0.634766,0.635254,0.635742,0.636230,0.636719,0.637207,0.637695,0.638184,0.638672,0.639160,0.639648,0.640137,
0.640625,0.641113,0.641602,0.642090,0.642578,0.643066,0.643555,0.644043,0.644531,0.645020,0.645508,0.645996,0.646484,0.646973,0.647461,0.647949,
0.648438,0.648926,0.649414,0.649902,0.650391,0.650879,0.651367,0.651855,0.652344,0.652832,0.653320,0.653809,0.654297,0.654785,0.655273,0.655762,
0.656250,0.656738,0.657227,0.657715,0.658203,0.658691,0.659180,0.659668,0.660156,0.660645,0.661133,0.661621,0.662109,0.662598,0.663086,0.663574,
0.664063,0.664551,0.665039,0.665527,0.666016,0.666504,0.666992,0.667480,0.667969,0.668457,0.668945,0.669434,0.669922,0.670410,0.670898,0.671387,
0.671875,0.672363,0.672852,0.673340,0.673828,0.674316,0.674805,0.675293,0.675781,0.676270,0.676758,0.677246,0.677734,0.678223,0.678711,0.679199,
0.679688,0.680176,0.680664,0.681152,0.681641,0.682129,0.682617,0.683105,0.683594,0.684082,0.684570,0.685059,0.685547,0.686035,0.686523,0.687012,
0.687500,0.687988,0.688477,0.688965,0.689453,0.689941,0.690430,0.690918,0.691406,0.691895,0.692383,0.692871,0.693359,0.693848,0.694336,0.694824,
0.695313,0.695801,0.696289,0.696777,0.697266,0.697754,0.698242,0.698730,0.699219,0.699707,0.700195,0.700684,0.701172,0.701660,0.702148,0.702637,
0.703125,0.703613,0.704102,0.704590,0.705078,0.705566,0.706055,0.706543,0.707031,0.707520,0.708008,0.708496,0.708984,0.709473,0.709961,0.710449,
0.710938,0.711426,0.711914,0.712402,0.712891,0.713379,0.713867,0.714355,0.714844,0.715332,0.715820,0.716309,0.716797,0.717285,0.717773,0.718262,
0.718750,0.719238,0.719727,0.720215,0.720703,0.721191,0.721680,0.722168,0.722656,0.723145,0.723633,0.724121,0.724609,0.725098,0.725586,0.726074,
0.726563,0.727051,0.727539,0.728027,0.728516,0.729004,0.729492,0.729980,0.730469,0.730957,0.731445,0.731934,0.732422,0.732910,0.733398,0.733887,
0.734375,0.734863,0.735352,0.735840,0.736328,0.736816,0.737305,0.737793,0.738281,0.738770,0.739258,0.739746,0.740234,0.740723,0.741211,0.741699,
0.742188,0.742676,0.743164,0.743652,0.744141,0.744629,0.745117,0.745605,0.746094,0.746582,0.747070,0.747559,0.748047,0.748535,0.749023,0.749512,
0.750000,0.750488,0.750977,0.751465,0.751953,0.752441,0.752930,0.753418,0.753906,0.754395,0.754883,0.755371,0.755859,0.756348,0.756836,0.757324,
0.757813,0.758301,0.758789,0.759277,0.759766,0.760254,0.760742,0.761230,0.761719,0.762207,0.762695,0.763184,0.763672,0.764160,0.764648,0.765137,
0.765625,0.766113,0.766602,0.767090,0.767578,0.768066,0.768555,0.769043,0.769531,0.770020,0.770508,0.770996,0.771484,0.771973,0.772461,0.772949,
0.773438,0.773926,0.774414,0.774902,0.775391,0.775879,0.776367,0.776855,0.777344,0.777832,0.778320,0.778809,0.779297,0.779785,0.780273,0.780762,
0.781250,0.781738,0.782227,0.782715,0.783203,0.783691,0.784180,0.784668,0.785156,0.785645,0.786133,0.786621,0.787109,0.787598,0.788086,0.788574,
0.789063,0.789551,0.790039,0.790527,0.791016,0.791504,0.791992,0.792480,0.792969,0.793457,0.793945,0.794434,0.794922,0.795410,0.795898,0.796387,
0.796875,0.797363,0.797852,0.798340,0.798828,0.799316,0.799805,0.800293,0.800781,0.801270,0.801758,0.802246,0.802734,0.803223,0.803711,0.804199,
0.804688,0.805176,0.805664,0.806152,0.806641,0.807129,0.807617,0.808105,0.808594,0.809082,0.809570,0.810059,0.810547,0.811035,0.811523,0.812012,
0.812500,0.812988,0.813477,0.813965,0.814453,0.814941,0.815430,0.815918,0.816406,0.816895,0.817383,0.817871,0.818359,0.818848,0.819336,0.819824,
0.820313,0.820801,0.821289,0.821777,0.822266,0.822754,0.823242,0.823730,0.824219,0.824707,0.825195,0.825684,0.826172,0.826660,0.827148,0.827637,
0.828125,0.828613,0.829102,0.829590,0.830078,0.830566,0.831055,0.831543,0.832031,0.832520,0.833008,0.833496,0.833984,0.834473,0.834961,0.835449,
0.835938,0.836426,0.836914,0.837402,0.837891,0.838379,0.838867,0.839355,0.839844,0.840332,0.840820,0.841309,0.841797,0.842285,0.842773,0.843262,
0.843750,0.844238,0.844727,0.845215,0.845703,0.846191,0.846680,0.847168,0.847656,0.848145,0.848633,0.849121,0.849609,0.850098,0.850586,0.851074,
0.851563,0.852051,0.852539,0.853027,0.853516,0.854004,0.854492,0.854980,0.855469,0.855957,0.856445,0.856934,0.857422,0.857910,0.858398,0.858887,
0.859375,0.859863,0.860352,0.860840,0.861328,0.861816,0.862305,0.862793,0.863281,0.863770,0.864258,0.864746,0.865234,0.865723,0.866211,0.866699,
0.867188,0.867676,0.868164,0.868652,0.869141,0.869629,0.870117,0.870605,0.871094,0.871582,0.872070,0.872559,0.873047,0.873535,0.874023,0.874512,
0.875000,0.875488,0.875977,0.876465,0.876953,0.877441,0.877930,0.878418,0.878906,0.879395,0.879883,0.880371,0.880859,0.881348,0.881836,0.882324,
0.882813,0.883301,0.883789,0.884277,0.884766,0.885254,0.885742,0.886230,0.886719,0.887207,0.887695,0.888184,0.888672,0.889160,0.889648,0.890137,
0.890625,0.891113,0.891602,0.892090,0.892578,0.893066,0.893555,0.894043,0.894531,0.895020,0.895508,0.895996,0.896484,0.896973,0.897461,0.897949,
0.898438,0.898926,0.899414,0.899902,0.900391,0.900879,0.901367,0.901855,0.902344,0.902832,0.903320,0.903809,0.904297,0.904785,0.905273,0.905762,
0.906250,0.906738,0.907227,0.907715,0.908203,0.908691,0.909180,0.909668,0.910156,0.910645,0.911133,0.911621,0.912109,0.912598,0.913086,0.913574,
0.914063,0.914551,0.915039,0.915527,0.916016,0.916504,0.916992,0.917480,0.917969,0.918457,0.918945,0.919434,0.919922,0.920410,0.920898,0.921387,
0.921875,0.922363,0.922852,0.923340,0.923828,0.924316,0.924805,0.925293,0.925781,0.926270,0.926758,0.927246,0.927734,0.928223,0.928711,0.929199,
0.929688,0.930176,0.930664,0.931152,0.931641,0.932129,0.932617,0.933105,0.933594,0.934082,0.934570,0.935059,0.935547,0.936035,0.936523,0.937012,
0.937500,0.937988,0.938477,0.938965,0.939453,0.939941,0.940430,0.940918,0.941406,0.941895,0.942383,0.942871,0.943359,0.943848,0.944336,0.944824,
0.945313,0.945801,0.946289,0.946777,0.947266,0.947754,0.948242,0.948730,0.949219,0.949707,0.950195,0.950684,0.951172,0.951660,0.952148,0.952637,
0.953125,0.953613,0.954102,0.954590,0.955078,0.955566,0.956055,0.956543,0.957031,0.957520,0.958008,0.958496,0.958984,0.959473,0.959961,0.960449,
0.960938,0.961426,0.961914,0.962402,0.962891,0.963379,0.963867,0.964355,0.964844,0.965332,0.965820,0.966309,0.966797,0.967285,0.967773,0.968262,
0.968750,0.969238,0.969727,0.970215,0.970703,0.971191,0.971680,0.972168,0.972656,0.973145,0.973633,0.974121,0.974609,0.975098,0.975586,0.976074,
0.976563,0.977051,0.977539,0.978027,0.978516,0.979004,0.979492,0.979980,0.980469,0.980957,0.981445,0.981934,0.982422,0.982910,0.983398,0.983887,
0.984375,0.984863,0.985352,0.985840,0.986328,0.986816,0.987305,0.987793,0.988281,0.988770,0.989258,0.989746,0.990234,0.990723,0.991211,0.991699,
0.992188,0.992676,0.993164,0.993652,0.994141,0.994629,0.995117,0.995605,0.996094,0.996582,0.997070,0.997559,0.998047,0.998535,0.999023,0.999512
};

表格建立后实现转换的代码直接成了查表,如下:

float s12_2_float (short s12){	u12_float_table[s12 + 2048]; }

原理上能提高转化效率。

对应我们写一下float转s12的代码:

short float_2_s16 (float f){ short r ;  f *= 2048  ; r = (short) f ;  } 

这个无法用查表方法。


int float_2_u8 (float *a,float *b  ,int len, unsigned char *out ){
short a16,b16;
int i ;
for(i=0;i<len ;++i){
	a16 = a[i] * 2048 ;
	b16 = b[i] * 2048 ;
	out[3*i+0] = (unsigned char )a16; 
	out[3*i+1] = (unsigned char )(a16 >>8) <<4 | a17>>8 ; 
	out[3*i+2] = (unsigned char )a17;
}
}

int u24_to_u16(unsigned char *in ,int byte_len ,	short *out ){
int r,j,i = 0 ;
unsigned short t1,t2;
for (j=0,i = 0 ;i < byte_len ;i+=3){
t1 = in[i] << 4  | (in[1+i] >>4)  ;
t2 =  (in[1+i] & 0x0f) << 8  | in[2+i]  ;
if (t1 & 1<<11 ) t1 |= 0xf000 ;
if (t2 & 1<<11 ) t2 |= 0xf000 ;
out[j++] = t1 ;
out[j++] = t2 ;
}
return j;
}


int u24_to_u16x2(unsigned char *in ,int byte_len ,	short *a, short *b){
int r,j,i = 0 ;
 short  t1,t2;
for (j=0,i = 0 ;i < byte_len ;i+=2*3){
t1 = in[i] << 4  | (in[1+i] >>4)  ;
t2 =( (in[1+i] & 0x0f) << 8 ) | in[2+i]  ;
if (t1 & 1<<11 ) t1 |= 0xf000 ;
if (t2 & 1<<11 ) t2 |= 0xf000 ;
a[j+0] =  t1 ;
a[j+1] =  t2 ;

t1 = in[3+i] << 4  | (in[4+i] >>4)  ;
t2 = ( (in[4+i] & 0x0f) << 8 ) |  in[5+i]  ;
if (t1 & 1<<11 ) t1 |= 0xfffff000 ;
if (t2 & 1<<11 ) t2 |= 0xfffff000 ;
b[j+0] =   t1 ;
b[j+1] =  t2 ;
j+=2;
}

return j;

}

module IQ2FIFO(
input clk,rst,padding,

input en,a_valid,b_valid,
input [11:0] d0,d1,d2,d3,
output reg rd_ab_io,

input wr_full, // when first full ,it can allow at least 16 items
output reg  wr_fifo,
output reg [7:0] wr_data 
);

wire access_ok  = en & ~wr_full ;
wire a_or_b_valid = a_valid | b_valid ;
reg [7:0] b5,b4,b3,b2,b1,b0 ;
wire [7:0] b5w,b4w,b3w,b2w,b1w,b0w ;
reg[7:0] st,str; always @(posedge clk)  str <= st ;

always @(posedge clk) if (str == 10)  { b5,b4,b3, b2,b1,b0} <= (padding) ? 8'haa : { d3 , d2 , d1 , d0 };
assign   { b5w,b4w,b3w,b2w,b1w,b0w } = { d3 , d2 , d1 , d0 }; 

always @ (posedge clk) if (rst)  st<=0; else 
case (st) 0:st<=10;
10: case ({access_ok,a_valid,b_valid}) 
3'b110 :st<=20;
3'b101 :st<=30;
3'b111 :st<=40;  
endcase 

20: st<=21;  // save byte1    b5 
21: st<=10;  // save byte2    b4
// save byte3 when str ==21   b3

30: st<=31;  // save byte1    b2
31: st<=10;  // save byte2    b1
//  save byte3  when st==10 check str==31    b0

40:st<=41; // byte 1 b5 
41:st<=42; // byte 2 b4
42:st<=43; // byte 3 b3
43:st<=44; // byte 4 b2
44:st<=10; // byte 5 b1
// save byte6 when str==44  b0 

default st<=0;
endcase 

always @(*)rd_ab_io = ( st==10 & access_ok &  ( a_valid | b_valid ) ) ;
always @(posedge clk)  case (st)
20,21,30,31,40,41,42,43,44:wr_fifo <= 1;
default wr_fifo <= (str==21) ||(str==31) ||(str==44) ;endcase 

always@(posedge clk)  case (st)
20:wr_data <=b5w;
21:wr_data <=b4;

30:wr_data <=b2w;
31:wr_data <=b1;

40:wr_data <=b5w;
41:wr_data <=b4;
42:wr_data <=b3;
43:wr_data <=b2;
44:wr_data <=b1;
default case (str)21:wr_data<=b3;31,44:wr_data<=b0;endcase 
endcase 

endmodule 


 



module FIFO2IQ(
input clk,rst,
input s_valid      ,
output reg  s_read      ,
input [7:0] s_din  ,
output reg [11:0] dac_q0,dac_q1,dac_q2,dac_q3,  
output reg dac_wr,
input dac_ready,
input en,q01_enable,q23_enable
);

reg [7:0]  st, str,strr ; 
reg [7:0] b0,b1,b2,b3,b4,b5 ;

always @* {dac_q0,dac_q1,dac_q2,dac_q3 }={b0,b1,b2,b3,b4,b5 };


always @ (posedge clk)  dac_wr <=   str==10 && ( strr!=10 || strr!=0 ); 
always @ (posedge clk) strr <= str ;
always @ (posedge clk) str <= st ; 
always @ (posedge clk) if ( rst ) st<=0; else case ( st )
0:st<=10;
10:if (en & s_valid & dac_ready)case ({q01_enable,q23_enable})2'b10 : st <= 20 ;2'b01 : st <= 30 ;2'b11 : st <= 40 ; endcase

20: st <= 21 ;
21: st <= 10 ; 

30: st <= 31 ;
31: st <= 10 ;

40: st <= 41 ;
41: st <= 42 ;
42: st <= 43 ;
43: st <= 44 ;
44: st <= 10 ;
default st <= 0 ;
endcase 

always @ (posedge clk) if ( st == 20 || st == 40)    b0 <= s_din ;
always @ (posedge clk) if ( st == 21 || st == 41)    b1 <= s_din ;
always @ (posedge clk) if ( str == 21 || st == 42)   b2 <= s_din ;
always @ (posedge clk) if ( st  == 30 || st ==43)    b3 <= s_din ;
always @ (posedge clk) if ( st  == 31 ||  st ==44 )  b4 <= s_din ;
always @ (posedge clk) if ( str == 31 || str ==44)   b5 <= s_din ;

always @(*) case (st) 
20,21,
30,31,40,41,42,43,
44 :s_read = 1;
10:s_read = en & s_valid & ( q01_enable | q23_enable);
default s_read = 0 ; 
endcase 

endmodule 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值