Other Parts Discussed in Thread: AWR1642, IWR6843
利用DCA1000和AWR1642采集手势数据,但是得到的矩阵中只有前两格有数据是什么原因呢测了八次数据,打开均是如此
利用DCA1000和AWR1642采集手势数据,但是得到的矩阵中只有前两格有数据是什么原因呢测了八次数据,打开均是如此
请问用的是下面文档里的代码吗?
9.2 DCA1000 With x16xx and IWR6843 MATLAB Example
https://www.ti.com/lit/an/swra581b/swra581b.pdf
生成adc_data.bin时,mmwave studio用的是默认的配置么?
是电脑直连,然后用mmWave Studio配置并测试的;防火墙和杀毒软件只有自带的Windows defender,没有特地修改过,弹出过的窗口也都是选择允许访问
您好,没有另一台电脑的情况下,有什么解决办法呢?
另一台电脑还需要重新搭建ti的运行环境,借的话也不太好借
你好,
你能否用wireshake抓包看看,是否获得的数据本身就是很多0?
我感觉还是电脑环境的问题,最好是有一台比较干净的电脑(安装应用程序较少)上测试对比看看。
有没有可能是程序的问题呢,我试着用此程序去解析同样的是AWR1642采集的,别人做完实验的数据,也是出现了这样的情况,只有前两格有数据
您好,打开之后都是有数据的虽然看不明白,但是基本都是不为0,所以是不是pdf中给的程序有问题?
你好,
pdf里的代码已经有很多客户参考使用了。
请问代码里的下面参数你是否有和你的配置做相应的调整?你也可以单步在matlab里调试一下。
numADCSamples = 256; % number of ADC samples per chirp
numADCBits = 16; % number of ADC bits per sample
numRX = 4; % number of receivers
numLanes = 2; % do not change. number of lanes is always 2
isReal = 0; % set to 1 if real only data, 0 if complex data0
Thanks,
Chris
修改isReal = 1后可以取出数据,但是在ADC Config 设置的是complex 2x;这种设置了复数数据,但只能取出实数数据,原因不得而知;但是取出的数据矩阵列数不再是sample点数*总的chirp数,而是二倍的关系,应该是IQ路的问题,那么同一根接收天线接收的数据,I路与Q路数据分别位于整个数据矩阵的什么位置呢
你好,
下面是当isReal=0时,数据解析相关代码,这个LVDS不可能出现很多0. 你在debug时看过LVDS这个变量的值么?
% for complex data
% filesize = 2 * numADCSamples*numChirps
numChirps = fileSize/2/numADCSamples/numRX;
LVDS = zeros(1, fileSize/2);
%combine real and imaginary part into complex data
%read in file: 2I is followed by 2Q
counter = 1;
for i=1:4:fileSize-1
LVDS(1,counter) = adcData(i) + sqrt(-1)*adcData(i+2); LVDS(1,counter+1) = adcData(i+1)+sqrt(-1)*adcData(i+3); counter = counter + 2;
end
% create column for each chirp
LVDS = reshape(LVDS, numADCSamples*numRX, numChirps);
%each row is data from one chirp
LVDS = LVDS.';
下面代码adcData有先全部清零,然后再把LVDS数据负值进去。你是否在这一步里出了什么问题?
%organize data per RX
adcData = zeros(numRX,numChirps*numADCSamples);
for row = 1:numRX
for i = 1: numChirps
adcData(row, (i-1)*numADCSamples+1:i*numADCSamples) = LVDS(i, (row-1)*numADCSamples+1:row*numADCSamples);
end
end
% return receiver data
retVal = adcData;
Thanks,
Chris