|
|
工程师和各位发烧友大家好:我最近采购了创龙OMAPL138开发板用于音频信号处理,用了AIC3106+EDMA进行音频数据采集,然后处理(6748核心),在处理过程中碰到了一个问题,希望大家帮忙。问题如下:
. l5 J( d8 M" m我修改SlaveLinein这个例程中,从三缓冲换成两缓冲,通过EDMA3把数据保存在两个地方
% P0 Z6 }) I$ }# ^( W. p# edata[0][] 储存左声道数据data[1][]储存右声道数据, 然后data[0][]的数据复制到Mem_Copy_float(ConvIn+SYNCLEN-1,&data[0][0],2*BUFF_SZ);
7 f" j3 m7 ?; D' j! `7 |Convin数组里面,然后做本地信号localSync做卷积DSPF_sp_convol(ConvIn, LocalSync, ConvOut, SYNCLEN, CONVOUTLEN);
6 [1 t8 R% f9 i0 J3 m
Q% t0 L3 S0 g: m) \; _* m CacheInv((unsigned int) (rxBuf0),sizeof(rxBuf0));
7 `+ s9 w0 }+ H5 u CacheInv((unsigned int) (rxBuf1),sizeof(rxBuf1));
. }' ~) \. R2 ^- `8 k" r5 z# E# h1 b. z. \2 a* B7 R `9 a
#if (CHNUM==2)( R+ a+ h. f! g, K+ R5 j
{3 c9 T7 f+ s X
temp=((rxBuf1[4*i+1]<<8)+(rxBuf1[4*i]<<0)-OFFSET); //左声道 把8bit变成16bit# {8 d8 G1 ]9 Q0 v; C
data[0][i+BUFF_SZ]=1.0f*temp/32768.0f; //转换成浮点
. u6 N0 m0 m$ d4 n+ p0 \: [& [ recdata_ch1[cnt]=1.0f*temp/32768.0f; //保存数据不处理
9 B) c" P6 p# ]0 G- U: |; J temp=((rxBuf1[4*i+3]<<8)+(rxBuf1[4*i+2]<<0)-OFFSET); //右声道$ ?/ g; X, ^- t8 K
data[1][i+BUFF_SZ]=1.0f*temp/32768.0f;
" v. E/ o9 p1 ]! E9 Q" e/ X recdata_ch2[cnt]=1.0f*temp/32768.0f;
* a6 w; D- i+ W1 \& ]- V3 w* ~2 A; n cnt++;: S6 N4 r" M% u$ z+ R: D
} {1 q6 g# C( [6 S! v4 y
; I8 a& I' j6 R7 C1 v, z( o/ r
* E# X" O4 B& K# o. p) Y. ?" s
5 ]6 b" Y7 i! t* K3 ?9 M* s6 z0 ?7 ~而recdata_ch1和recdata_ch2的数组很大,在48k采样率下可以保存25秒的数据,recdata_ch1和recdata_ch2不参与任何计算,只保存数据,用于观察数据是否正确。3 o8 C0 d( g+ m4 e
EDMA采样双缓冲模式,缓冲区长度160ms,每次缓冲满以后数据就复制到ConvIn,做一次卷积,做卷积的时间远远小于缓冲区的时间,这个保证数据不会丢失。
, T& j" _/ P+ n2 x' O& ` o出现的问题是,如下图所示,在信号空白信号中出现微小的噪声,而两个微小噪声的周期刚好就是一个buffer长度160ms# _( f" j& Y: x1 U7 k+ Z% D9 Q
! [) C @ u6 \$ h; R r [+ w: a3 p" h& u: g0 E! R
! [& g' r0 Y3 Y- j) a2 u当我把卷积处理去掉的时候,信号是正确的,如下图所示6 U, U f2 o) ^/ R a4 a
/ J. G' g0 _+ S5 G
t6 D9 _2 v9 r! Y% [. o$ B6 f# o+ A) R
上述所有数据放在DDR2中,在main一开始启用cache , G3 u3 V, I# s& E; `
CacheEnableMAR((unsigned int)0xC0000000,(unsigned int)0x10000000);
( ?' d: J4 ?; t5 k6 Q CacheEnable(L1PCFG_L1PMODE_32K | L1DCFG_L1DMODE_32K | L2CFG_L2MODE_256K);
$ t. _- s, q0 y: W0 W% I& @, \3 H
( o$ x: ]7 K5 \# x
# }# R5 h" [; J/ W/ D我估计是数据一致性的问题,但是,不知道要修改哪里,怎么修改,麻烦大神给一些提示或者指导。感激不尽。+ g9 |; w% V4 X4 c' C' ~6 M
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|