⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 TI公司DSP/tms320c55x/tms320c54x系列的声学回声消除代码
💻 C
📖 第 1 页 / 共 5 页
字号:
			S16 sStep = rand();
			U16 shft = ((U16)rand()) & 0x1f;
			if (sStep < 0) sStep = -sStep;
			sStep >>= 3;
			
			slC = rand() + ((S32)rand()) << 16;
			if (slC < 0) slC = -slC;
			slC >>= shft;
			if (slC == 0) slC = 1;
			
//			slC = 0x20000000L; sStep = 2048;
			slA = slC;
			
			sC = _invertC((S32*)&slC, sStep);
			sA = _invert((S32*)&slA, sStep);
			
			if (sC != sA) sErr++;
			if (slC != slA) sErr++;
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 221)
	{
		void  gaec_get_energy2C(GAEC_tDb *pDb,S16 blk);
		void  gaec_get_energy2 (GAEC_tDb *pDb,S16 blk);
		
		for (k = 0; k < 221; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = 200;//abs(rand()) % 8200;
			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ*2*GAEC_BANDS, amp);
//			memset(GaecDbC.psRcv, 200, GAEC_RCV_SZ*2*GAEC_BANDS);
			memcpy (GaecDbA.psRcv, 
					GaecDbC.psRcv, 
					GAEC_RCV_SZ*2*GAEC_BANDS);
			gaec_get_energy2C(&GaecDbC, blk);
			gaec_get_energy2 (&GaecDbA, blk);
			sErr += compare_sc();
			sErr += compare_db();
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 222)
	{
		extern void  gaec_adapt_dc2p (GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk, S16 band);
		extern void  gaec_adapt_dc2pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk, S16 band);
		extern void  gaec_get_energy2(GAEC_tDb *pDb,S16 blk);
		
		GaecDbC.aslAdEn[0] = GaecDbA.aslAdEn[0] = 0x30;
		GaecDbC.aslEn2[0] = GaecDbA.aslEn2[0] = 0x30L;

		for (k = 0; k < 2220; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = 820;//abs(rand()) % 8200;
			S16 zer = rand() % 5;
			
		    memset(GaecScC.u.aA2, 0, sizeof(GAEC_tScA2));
		    memset(GaecScA.u.aA2, 0, sizeof(GAEC_tScA2));
		    
			GaecScC.asSSC[0] = GaecScA.asSSC[0] = 2000;
			GaecDbC.asShft[0] = GaecDbA.asShft[0] = (rand()%7) - 3;
		    
			if (zer == 0)
				GaecScC.asSSC[0] = GaecScA.asSSC[0] = 0;
			
			
			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ/*2*GAEC_BANDS*/, amp);
//			memset(GaecDbC.psRcv, 200, GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			
			memcpy (GaecDbA.psRcv, 
					GaecDbC.psRcv, 
					GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			gaec_get_energy2(&GaecDbC, blk);
			gaec_get_energy2(&GaecDbA, blk);
			
			fill_rand(&GaecScC.aasErr[0][0], GAEC_BLKS, amp/4);
//			memset(&GaecScC.aasErr[0][0], 34, GAEC_BLKS);
			memcpy(&GaecScA.aasErr[0][0], &GaecScC.aasErr[0][0], GAEC_BLKS);
			
			gaec_adapt_dc2pC(&GaecDbC, &GaecScC, blk, 0);
			gaec_adapt_dc2p (&GaecDbA, &GaecScA, blk, 0);
			sErr += compare_sc();
			sErr += compare_db();
			
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 223)
	{
		extern void  gaec_adapt_dc2dC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk, S16 band);
		extern void  gaec_adapt_dc2pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk, S16 band);
		
		GaecDbC.aslAdEn[0] = GaecDbA.aslAdEn[0] = 0x30;
		GaecDbC.aslEn2[0] = GaecDbA.aslEn2[0] = 0x300L;

		for (k = 0; k < 223; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = abs(rand()) % 8200;
			S16 zer = rand() % 5;
			
		    memset(GaecScC.u.aA2, 0, sizeof(GAEC_tScA2));
		    memset(GaecScA.u.aA2, 0, sizeof(GAEC_tScA2));
		    
			GaecScC.asSSC[0] = GaecScA.asSSC[0] = rand()&4095;
			GaecDbC.asShft[0] = GaecDbA.asShft[0] = (rand()%7) - 3;
		    
			if (zer == 0)
				GaecScC.asSSC[0] = GaecScA.asSSC[0] = 0;
			
			
			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ/*2*GAEC_BANDS*/, amp);
//			memset(GaecDbC.psRcv, 200, GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			
			memcpy (GaecDbA.psRcv, 
					GaecDbC.psRcv, 
					GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			gaec_get_energy2(&GaecDbC, blk);
			gaec_get_energy2(&GaecDbA, blk);
			
			fill_rand(&GaecScC.aasErr[0][0], GAEC_BLKS, amp/4);
//			memset(&GaecScC.aasErr[0][0], 34, GAEC_BLKS);
			memcpy(&GaecScA.aasErr[0][0], &GaecScC.aasErr[0][0], GAEC_BLKS);
			
			gaec_adapt_dc2pC(&GaecDbC, &GaecScC, blk, 0);
			gaec_adapt_dc2p (&GaecDbA, &GaecScA, blk, 0);
			
			gaec_adapt_dc2dC(&GaecDbC, &GaecScC, blk, 0);
			gaec_adapt_dc2d (&GaecDbA, &GaecScA, blk, 0);
			sErr += compare(asAdfC, asAdfA, GAEC_ADF_SZ*GAEC_BANDS*2);
			sErr += compare_sc();
			sErr += compare_db();
			
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 224)
	{
		extern void  gaec_adapt_dc2pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		extern void  gaec_adapt_dc2dC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		
		GaecDbC.aslAdEn[GAEC_BANDS] = GaecDbA.aslAdEn[GAEC_BANDS] = 0x30;
		GaecDbC.aslEn2[GAEC_BANDS] = GaecDbA.aslEn2[GAEC_BANDS] = 0x30L;

		for (k = 0; k < 224; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = 8200;//abs(rand()) % 8200;
			S16 zer = rand() % 5;
			
		    memset(GaecScC.u.aA2, 0, sizeof(GAEC_tScA2));
		    memset(GaecScA.u.aA2, 0, sizeof(GAEC_tScA2));
		    
			GaecScC.asSSC[GAEC_BANDS] = GaecScA.asSSC[GAEC_BANDS] = 2000;
			if (zer == 0)
				GaecScC.asSSC[GAEC_BANDS] = GaecScA.asSSC[GAEC_BANDS] = 0;
			GaecDbC.asShft[GAEC_BANDS] = 
			GaecDbA.asShft[GAEC_BANDS] = 
				(rand()%7) - 3;
				
			
			fill_rand(GaecDbC.psRcv+GAEC_RCV_SZ*GAEC_BANDS, GAEC_RCV_SZ/*2*GAEC_BANDS*/, amp);
			memcpy (GaecDbA.psRcv+GAEC_RCV_SZ*GAEC_BANDS, 
					GaecDbC.psRcv+GAEC_RCV_SZ*GAEC_BANDS, 
					GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			gaec_get_energy2(&GaecDbC, blk);
			gaec_get_energy2(&GaecDbA, blk);
			
			fill_rand(&GaecScC.aasErr[GAEC_BANDS][0], GAEC_BLKS, amp/10);
			memcpy(&GaecScA.aasErr[GAEC_BANDS][0], &GaecScC.aasErr[GAEC_BANDS][0], GAEC_BLKS);
			
			gaec_adapt_dc2pC(&GaecDbC, &GaecScC, blk, GAEC_BANDS);
			gaec_adapt_dc2p (&GaecDbA, &GaecScA, blk, GAEC_BANDS);
			sErr += compare_sc();
			sErr += compare_db();
			
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 225)
	{
		extern void  gaec_adapt_dc2pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		extern void  gaec_adapt_dc2dC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		
		GaecDbC.aslAdEn[GAEC_BANDS] = GaecDbA.aslAdEn[GAEC_BANDS] = 0x30;
		GaecDbC.aslEn2[GAEC_BANDS] = GaecDbA.aslEn2[GAEC_BANDS] = 0x30L;

		for (k = 0; k < 225; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = abs(rand()) % 8200;
			S16 zer = rand() % 5;
			
		    memset(GaecScC.u.aA2, 0, sizeof(GAEC_tScA2));
		    memset(GaecScA.u.aA2, 0, sizeof(GAEC_tScA2));
		    
			GaecScC.asSSC[GAEC_BANDS] = GaecScA.asSSC[GAEC_BANDS] = rand() & 4095;
			if (zer == 0)
				GaecScC.asSSC[GAEC_BANDS] = GaecScA.asSSC[GAEC_BANDS] = 0;
			GaecDbC.asShft[GAEC_BANDS] = 
			GaecDbA.asShft[GAEC_BANDS] = 
				(rand()%7) - 3;
			
			fill_rand(GaecDbC.psRcv+GAEC_RCV_SZ*GAEC_BANDS, GAEC_RCV_SZ/*2*GAEC_BANDS*/, amp);
			memcpy (GaecDbA.psRcv+GAEC_RCV_SZ*GAEC_BANDS, 
					GaecDbC.psRcv+GAEC_RCV_SZ*GAEC_BANDS, 
					GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			gaec_get_energy2(&GaecDbC, blk);
			gaec_get_energy2(&GaecDbA, blk);
			
			fill_rand(&GaecScC.aasErr[GAEC_BANDS][0], GAEC_BLKS, amp/10);
			memcpy(&GaecScA.aasErr[GAEC_BANDS][0], &GaecScC.aasErr[GAEC_BANDS][0], GAEC_BLKS);
			
			gaec_adapt_dc2pC(&GaecDbC, &GaecScC, blk, GAEC_BANDS);
			gaec_adapt_dc2p (&GaecDbA, &GaecScA, blk, GAEC_BANDS);
			gaec_adapt_dc2dC(&GaecDbC, &GaecScC, blk, GAEC_BANDS);
			gaec_adapt_dc2d (&GaecDbA, &GaecScA, blk, GAEC_BANDS);
			sErr += compare(asAdfC, asAdfA, GAEC_ADF_SZ*GAEC_BANDS*2);
			sErr += compare_sc();
			sErr += compare_db();
			
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 226)
	{
		extern void  gaec_adapt_ac2pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk);
		extern void  gaec_adapt_ac2dC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk);
		S16 band;
		
		GaecDbC.aslAdEn[0] = GaecDbA.aslAdEn[0] = 0x12345678L;
		GaecScC.asSSC[0]   = GaecScA.asSSC[0] = 0xdead;
		GaecDbC.aslEn2[0]  = GaecDbA.aslEn2[0] = 0x2345678L;
		
		for (band = 1; band < GAEC_BANDS; band++)
		{
			GaecDbC.aslAdEn[band] = GaecDbA.aslAdEn[band] = 0x30;
			GaecDbC.aslEn2[band]  = GaecDbA.aslEn2[band] = 0x30000L;
		}	
		
		for (k = 0; k < 226; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = abs(rand()) % 8200;
			S16 band0;
			
		    memset(GaecScC.u.aA2, 0, sizeof(GaecScC.u.aA2));
		    memset(GaecScA.u.aA2, 0, sizeof(GaecScA.u.aA2));
		    
			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ*2*GAEC_BANDS, amp);
//			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ*2, amp);
//			memset(GaecDbC.psRcv, 6000, GAEC_RCV_SZ*2);
			memcpy (GaecDbA.psRcv, 
					GaecDbC.psRcv, 
					GAEC_RCV_SZ*2*GAEC_BANDS);
			gaec_get_energy2(&GaecDbC, blk);
			gaec_get_energy2(&GaecDbA, blk);
			
			for (band = 1; band < GAEC_BANDS; band++)
			{
				GaecScC.asSSC[band] = GaecScA.asSSC[band] = rand() & 4095;
				GaecDbC.asShft[band] = 
				GaecDbA.asShft[band] = 
					(rand()%7) - 3;
			}
			band0 = rand() % GAEC_BANDS;
			GaecScC.asSSC[band0]   = GaecScA.asSSC[band0] = 0;
			
			fill_rand(&GaecScC.aasErr[0][0], GAEC_BANDS*GAEC_BLKS*2, amp/10);
			memcpy(&GaecScA.aasErr[0][0], &GaecScC.aasErr[0][0], GAEC_BLKS*GAEC_BANDS*2);
			
			gaec_adapt_ac2pC(&GaecDbC, &GaecScC, blk);
			gaec_adapt_ac2p (&GaecDbA, &GaecScA, blk);
			sErr += compare_sc();
			sErr += compare_db();
			
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 227)
	{
		extern void  gaec_adapt_ac2pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk);
		extern void  gaec_adapt_ac2dC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk);
		S16 band;
		
		GaecDbC.aslAdEn[0] = GaecDbA.aslAdEn[0] = 0x12345678L;
		GaecScC.asSSC[0]   = GaecScA.asSSC[0] = 0xdead;
		GaecDbC.aslEn2[0]  = GaecDbA.aslEn2[0] = 0x2345678L;
		
		for (band = 1; band < GAEC_BANDS; band++)
		{
			GaecDbC.aslAdEn[band] = GaecDbA.aslAdEn[band] = 0x30;
			GaecDbC.aslEn2[band]  = GaecDbA.aslEn2[band] = 0x30000L;
		}	
		
		for (k = 0; k < 227; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = rand() & 8191;
			S16 band0;
			
		    memset(GaecScC.u.aA2, 0, sizeof(GaecScC.u.aA2));
		    memset(GaecScA.u.aA2, 0, sizeof(GaecScA.u.aA2));
		    
			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ*2*GAEC_BANDS, amp);
//			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ*2, amp);
//			memset(GaecDbC.psRcv, 6000, GAEC_RCV_SZ*2);
			memcpy (GaecDbA.psRcv, 
					GaecDbC.psRcv, 
					GAEC_RCV_SZ*2*GAEC_BANDS);
			gaec_get_energy2(&GaecDbC, blk);
			gaec_get_energy2(&GaecDbA, blk);
			
			for (band = 1; band < GAEC_BANDS; band++)
			{
				GaecScC.asSSC[band] = GaecScA.asSSC[band] = rand() & 4095;
				GaecDbC.asShft[band] = 
				GaecDbA.asShft[band] = 
					(rand()%7) - 3;
			}
			band0 = rand() % GAEC_BANDS;
			GaecScC.asSSC[band0]   = GaecScA.asSSC[band0] = 0;
			
			fill_rand(&GaecScC.aasErr[0][0], GAEC_BANDS*GAEC_BLKS*2, amp/10);
			memcpy(&GaecScA.aasErr[0][0], &GaecScC.aasErr[0][0], GAEC_BLKS*GAEC_BANDS*2);
			
			gaec_adapt_ac2pC(&GaecDbC, &GaecScC, blk);
			gaec_adapt_ac2p (&GaecDbA, &GaecScA, blk);
			gaec_adapt_ac2dC(&GaecDbC, &GaecScC, blk);
			gaec_adapt_ac2d (&GaecDbA, &GaecScA, blk);
			sErr += compare(asAdfC, asAdfA, GAEC_ADF_SZ*GAEC_BANDS*2);
			sErr += compare_sc();
			sErr += compare_db();
			
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 231)
	{
		void  gaec_get_energy3C(GAEC_tDb *pDb,S16 blk);
		void  gaec_get_energy3 (GAEC_tDb *pDb,S16 blk);
		
		for (k = 0; k < 231; k++)
		{
			S16 blk = rand() % GAEC_BLKS;
			S16 amp = abs(rand()) % 8200;
			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ*2*GAEC_BANDS, amp);
//			memset(GaecDbC.psRcv, 40, GAEC_RCV_SZ*2*GAEC_BANDS);
			memcpy (GaecDbA.psRcv, 
					GaecDbC.psRcv, 
					GAEC_RCV_SZ*2*GAEC_BANDS);
			gaec_get_energy3C(&GaecDbC, blk);
			gaec_get_energy3 (&GaecDbA, blk);
			sErr += compare_sc();
			sErr += compare_db();
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 232)
	{
		extern void  gaec_adapt_dc3pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		extern void  gaec_adapt_dc3dC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		
		GaecDbC.aslAdEn[0] = GaecDbA.aslAdEn[0] = 0x30;
		GaecScC.asSSC[0] = GaecScA.asSSC[0] = 2000;
		GaecDbC.aslEn3[0] = GaecDbA.aslEn3[0] = 0x3000L;

		for (k = 0; k < 232; k++)
		{
			S16 blk = (rand() &1) << 1;
			S16 amp = abs(rand()) % 8200;
			S16 zer = rand() % 5;

			GaecScC.asSSC[0] = GaecScA.asSSC[0] = rand() & 4095;
			if (zer == 0)
				GaecScC.asSSC[0] = GaecScA.asSSC[0] = 0;
			GaecDbC.asShft[0] = GaecDbA.asShft[0] = (rand()%7) - 3;
			
		    memset(GaecScC.u.aA3, 0, sizeof(GaecScC.u.aA3));
		    memset(GaecScA.u.aA3, 0, sizeof(GaecScA.u.aA3));
		    
			fill_rand(GaecDbC.psRcv, GAEC_RCV_SZ/*2*GAEC_BANDS*/, amp);
//			memset(GaecDbC.psRcv, amp, GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			memcpy (GaecDbA.psRcv, 
					GaecDbC.psRcv, 
					GAEC_RCV_SZ/*2*GAEC_BANDS*/);
			gaec_get_energy3(&GaecDbC, blk);
			gaec_get_energy3(&GaecDbA, blk);
			
			fill_rand(&GaecScC.aasErr[0][0], GAEC_BLKS, amp/10);
			memcpy(&GaecScA.aasErr[0][0], &GaecScC.aasErr[0][0], GAEC_BLKS);
			
			gaec_adapt_dc3pC(&GaecDbC, &GaecScC, blk, 0);
			gaec_adapt_dc3p (&GaecDbA, &GaecScA, blk, 0);
			sErr += compare(asAdfA, asAdfC, GAEC_ADF_SZ*GAEC_BANDS*2);
			sErr += compare_sc();
			sErr += compare_db();
			
			if (sErr)
			{
				sTrap = gaec_utl_en2log(sErr);
//				sErr = 0;
			}
		}
	}
#elif (DBG_IT == 233)
	{
		extern void  gaec_adapt_dc3pC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		extern void  gaec_adapt_dc3dC(GAEC_tDb *pDb,GAEC_tSc *pSc,S16 blk,S16 band);
		
		GaecDbC.aslAdEn[0] = GaecDbA.aslAdEn[0] = 0x30;
		GaecScC.asSSC[0] = GaecScA.asSSC[0] = 2000;
		GaecDbC.aslEn3[0] = GaecDbA.aslEn3[0] = 0x3000L;

		for (k = 0; k < 233; k++)
		{
			S16 blk = (rand() &1) << 1;
			S16 amp = abs(rand()) % 8200;
			S16 zer = rand() % 5;

			GaecScC.asSSC[0] = GaecScA.asSSC[0] = rand() & 4095;
			if (zer == 0)
				GaecScC.asSSC[0] = GaecScA.asSSC[0] = 0;
			GaecDbC.asShft[0] = GaecDbA.asShft[0] = (rand()%7) - 3;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -