138 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			138 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /****************************************************************************
 | ||
|  | 
 | ||
|  | Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED. | ||
|  | 
 | ||
|  | This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT | ||
|  | be copied by any method or incorporated into another program without | ||
|  | the express written consent of Aerospace C.Power. This Information or any portion | ||
|  | thereof remains the property of Aerospace C.Power. The Information contained herein | ||
|  | is believed to be accurate and Aerospace C.Power assumes no responsibility or | ||
|  | liability for its use in any way and conveys no license or title under | ||
|  | any patent or copyright and makes no representation or warranty that this | ||
|  | Information is free from patent or copyright infringement. | ||
|  | 
 | ||
|  | ****************************************************************************/ | ||
|  | #include "os_types.h"
 | ||
|  | #include "phy_math_tb.h"
 | ||
|  | #include "phy_bb.h"
 | ||
|  | 
 | ||
|  | const uint16_t phy_alpha_cal_tbl[] = { | ||
|  |     32767,    32767,    32767,    32768,    32768,    32769,    32769,    32770, | ||
|  |     32771,    32773,    32774,    32775,    32777,    32779,    32780,    32782, | ||
|  |     32785,    32787,    32789,    32792,    32794,    32797,    32800,    32803, | ||
|  |     32806,    32810,    32813,    32817,    32821,    32825,    32829,    32833, | ||
|  |     32837,    32842,    32846,    32851,    32856,    32861,    32866,    32871, | ||
|  |     32877,    32882,    32888,    32894,    32900,    32906,    32912,    32918, | ||
|  |     32925,    32931,    32938,    32945,    32952,    32959,    32967,    32974, | ||
|  |     32982,    32989,    32997,    33005,    33013,    33022,    33030,    33039, | ||
|  |     33047,    33056,    33065,    33074,    33083,    33093,    33102,    33112, | ||
|  |     33122,    33132,    33142,    33152,    33162,    33173,    33183,    33194, | ||
|  |     33205,    33216,    33227,    33238,    33249,    33261,    33273,    33284, | ||
|  |     33296,    33308,    33321,    33333,    33345,    33358,    33371,    33384, | ||
|  |     33397,    33410,    33423,    33436,    33450,    33464,    33477,    33491, | ||
|  |     33506,    33520,    33534,    33549,    33563,    33578,    33593,    33608, | ||
|  |     33623,    33638,    33654,    33669,    33685,    33701,    33717,    33733, | ||
|  |     33749,    33765,    33782,    33798,    33815,    33832,    33849,    33866, | ||
|  |     33884,    33901,    33918,    33936,    33954,    33972,    33990,    34008, | ||
|  |     34027,    34045,    34064,    34082,    34101,    34120,    34139,    34159, | ||
|  |     34178,    34197,    34217,    34237,    34257,    34277,    34297,    34317, | ||
|  |     34338,    34358,    34379,    34400,    34421,    34442,    34463,    34485, | ||
|  |     34506,    34528,    34549,    34571,    34593,    34615,    34638,    34660, | ||
|  |     34682,    34705,    34728,    34751,    34774,    34797,    34820,    34844, | ||
|  |     34867,    34891,    34915,    34939,    34963,    34987,    35011,    35036, | ||
|  |     35060,    35085,    35110,    35135,    35160,    35185,    35210,    35236, | ||
|  |     35261,    35287,    35313,    35339,    35365,    35391,    35417,    35444, | ||
|  |     35471,    35497,    35524,    35551,    35578,    35605,    35633,    35660, | ||
|  |     35688,    35716,    35743,    35771,    35799,    35828,    35856,    35884, | ||
|  |     35913,    35942,    35971,    36000,    36029,    36058,    36087,    36117, | ||
|  |     36146,    36176,    36206,    36236,    36266,    36296,    36326,    36357, | ||
|  |     36387,    36418,    36449,    36480,    36511,    36542,    36573,    36605, | ||
|  |     36636,    36668,    36700,    36732,    36764,    36796,    36828,    36860, | ||
|  |     36893,    36925,    36958,    36991,    37024,    37057,    37090,    37124, | ||
|  |     37157,    37191,    37224,    37258,    37292,    37326,    37360,    37395, | ||
|  |     37429,    37463,    37498,    37533,    37568,    37603,    37638,    37673, | ||
|  |     37708,    37744,    37779,    37815,    37851,    37887,    37923,    37959, | ||
|  |     37995,    38032,    38068,    38105,    38141,    38178,    38215,    38252, | ||
|  |     38289,    38327,    38364,    38402,    38439,    38477,    38515,    38553, | ||
|  |     38591,    38629,    38667,    38706,    38744,    38783,    38822,    38861, | ||
|  |     38900,    38939,    38978,    39017,    39057,    39096,    39136,    39176, | ||
|  |     39215,    39255,    39296,    39336,    39376,    39416,    39457,    39498, | ||
|  |     39538,    39579,    39620,    39661,    39702,    39744,    39785,    39827, | ||
|  |     39868,    39910,    39952,    39994,    40036,    40078,    40120,    40163, | ||
|  |     40205,    40248,    40290,    40333,    40376,    40419,    40462,    40505, | ||
|  |     40549,    40592,    40635,    40679,    40723,    40767,    40811,    40855, | ||
|  |     40899,    40943,    40987,    41032,    41076,    41121,    41166,    41211, | ||
|  |     41256,    41301,    41346,    41391,    41436,    41482,    41527,    41573, | ||
|  |     41619,    41665,    41711,    41757,    41803,    41849,    41895,    41942, | ||
|  |     41989,    42035,    42082,    42129,    42176,    42223,    42270,    42317, | ||
|  |     42365,    42412,    42460,    42507,    42555,    42603,    42651,    42699, | ||
|  |     42747,    42795,    42843,    42892,    42940,    42989,    43037,    43086, | ||
|  |     43135,    43184,    43233,    43282,    43331,    43381,    43430,    43480, | ||
|  |     43529,    43579,    43629,    43679,    43729,    43779,    43829,    43879, | ||
|  |     43930,    43980,    44031,    44081,    44132,    44183,    44234,    44284, | ||
|  |     44336,    44387,    44438,    44489,    44541,    44592,    44644,    44695, | ||
|  |     44747,    44799,    44851,    44903,    44955,    45007,    45060,    45112, | ||
|  |     45164,    45217,    45270,    45322,    45375,    45428,    45481,    45534, | ||
|  |     45587,    45640,    45694,    45747,    45800,    45854,    45908,    45961, | ||
|  |     46015,    46069,    46123,    46177,    46231,    46285,    46340,    46394, | ||
|  |     46448,    46503,    46557,    46612,    46667,    46722,    46777,    46832, | ||
|  |     46887,    46942,    46997,    47052,    47108,    47163,    47219,    47274, | ||
|  |     47330,    47386,    47442,    47498,    47554,    47610,    47666,    47722, | ||
|  |     47778,    47835,    47891,    47948,    48004,    48061,    48118,    48174, | ||
|  |     48231,    48288,    48345,    48402,    48460,    48517,    48574,    48631, | ||
|  |     48689,    48746,    48804,    48862,    48919,    48977,    49035,    49093, | ||
|  |     49151,    49209,    49267,    49325,    49384,    49442,    49500,    49559, | ||
|  |     49618,    49676,    49735,    49794,    49852,    49911,    49970,    50029, | ||
|  |     50088,    50147,    50207,    50266,    50325,    50385,    50444,    50504, | ||
|  |     50563,    50623,    50683,    50742,    50802,    50862,    50922,    50982, | ||
|  |     51042,    51102,    51162,    51223,    51283,    51343,    51404,    51464, | ||
|  |     51525,    51585,    51646,    51707,    51768,    51829,    51889,    51950, | ||
|  |     52011,    52072,    52134,    52195,    52256,    52317,    52379,    52440, | ||
|  |     52502,    52563,    52625,    52686,    52748,    52810,    52871,    52933, | ||
|  |     52995,    53057,    53119,    53181,    53243,    53305,    53368,    53430, | ||
|  |     53492,    53555,    53617,    53679,    53742,    53805,    53867,    53930, | ||
|  |     53992,    54055,    54118,    54181,    54244,    54307,    54370,    54433, | ||
|  |     54496,    54559,    54622,    54685,    54749,    54812,    54875,    54939, | ||
|  |     55002,    55066,    55129,    55193,    55256,    55320,    55384,    55447, | ||
|  |     55511,    55575,    55639,    55703,    55767,    55831,    55895,    55959, | ||
|  |     56023,    56087,    56151,    56216,    56280,    56344,    56408,    56473, | ||
|  |     56537,    56602,    56666,    56731,    56795,    56860,    56925,    56989, | ||
|  |     57054,    57119,    57184,    57248,    57313,    57378,    57443,    57508, | ||
|  |     57573,    57638,    57703,    57768,    57833,    57898,    57964,    58029, | ||
|  |     58094,    58159,    58225,    58290,    58355,    58421,    58486,    58552, | ||
|  |     58617,    58683,    58748,    58814,    58880,    58945,    59011,    59077, | ||
|  |     59142,    59208,    59274,    59340,    59405,    59471,    59537,    59603, | ||
|  |     59669,    59735,    59801,    59867,    59933,    59999,    60065,    60131, | ||
|  |     60197,    60263,    60330,    60396,    60462,    60528,    60594,    60661, | ||
|  |     60727,    60793,    60860,    60926,    60992,    61059,    61125,    61191, | ||
|  |     61258,    61324,    61391,    61457,    61524,    61590,    61657,    61723, | ||
|  |     61790,    61857,    61923,    61990,    62056,    62123,    62190,    62256, | ||
|  |     62323,    62390,    62457,    62523,    62590,    62657,    62724,    62790, | ||
|  |     62857,    62924,    62991,    63058,    63124,    63191,    63258,    63325, | ||
|  |     63392,    63459,    63526,    63593,    63659,    63726,    63793,    63860, | ||
|  |     63927,    63994,    64061,    64128,    64195,    64262,    64329,    64396, | ||
|  |     64463,    64530,    64597,    64664,    64731,    64798,    64865,    64932, | ||
|  |     64999,    65066,    65133,    65200,    65267,    65334,    65401,    65468, | ||
|  |     65535, | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * -32768*cos(2*pi*fk./fs) + 65535 | ||
|  | */ | ||
|  | uint16_t phy_alpha_cal(uint16_t tone_num) | ||
|  | { | ||
|  |     uint16_t alpha_val = 0; | ||
|  |     uint16_t cnt = IOT_ARRAY_CNT(phy_alpha_cal_tbl); | ||
|  |     uint16_t tbl_max = 2 * (cnt - 1); | ||
|  |     /* check valid */ | ||
|  |     IOT_ASSERT(tone_num < tbl_max); | ||
|  | 
 | ||
|  |     if (tone_num >= cnt) { | ||
|  |         alpha_val = PHY_ALPHA_MAX - phy_alpha_cal_tbl[tbl_max  - tone_num]; | ||
|  |     } else { | ||
|  |         alpha_val = phy_alpha_cal_tbl[tone_num]; | ||
|  |     } | ||
|  | 
 | ||
|  |     return alpha_val; | ||
|  | } |