您好!
在 MMW 演示中、我尝试使用以下代码更改来读取一个线性调频脉冲的原始 ADC 数据、请确认是否正确。
1) dss_main.c:从 obj->ADCdataBuf 读取原始数据到 MmwDemo_dssSendProcessOutputToMSS()函数中的 UART 本地缓冲区 ptrCurrent Buffer。
/*发送原始数据信息*/
{
itemPayloadLen = obj->numRx天 线*obj->numRangeBins*sizeof (cmplx16Reim_t);
totalHsmSize += itemPayloadLen;
if (totalHsmSize > outputBufSize)
{
RetVal =-1;
转到出口;
}
memcpy (ptrCurrent Buffer、(void *) obj->ADCdataBuf、itemPayloadLen);
for (i=0;i numRangeBins*obj->numRx天 线;i++)
{
校验和=校验和+obj->ADCdataBuf[i].Real;
校验和=校验和+obj->ADCdataBuf[i].imag;
}
iptr1 =(int32_t *)((uint32_t) ptrHsmBuffer + totalHsmSize);
//iptr1[0]=校验和;
itemPayloadLen = itemPayloadLen+4;//4用于校验和
totalHsmSize += 4;//4用于校验和
message.body.detObj.tlv[tlvIdx].length = itemPayloadLen;
message.body.detObj.tlv[tlvIdx].type = MMWDEMO_OUTPUT MSG_STATS;//当前为虚拟
message.body.detObj.tlv[tlvIdx].address =(uint32_t) ptrCurrent Buffer;;
tlvIdx++;
/*递增指向 HSM 缓冲区的指针*/
ptrCurrent Buffer =(uint8_t *)((uint32_t) ptrHsmBuffer + totalHsmSize);
//totalPacketLen += sizeof (MmwDemo_output_message_tl)+ itemPayloadLen;//不递增、以便可以将相同的代码与 TI GUI 一起使用
}
2) MSS_main.c:在 MmwDemo_mboxReadTask()中将原始 ADC 数据从本地 UART 缓冲区发送到 PC。
3) Scilab 中 ADC 数据的原始图和 FFT 图。
4) 4)用于绘制原始数据的 Scilab 代码。
NumAdcSamples = 256;
ComplexSamples =(2个 NumAdcSamples);
ChRawDataStartIndex = 2;
Numch = 4;
Ch1Start = 2;
Ch1End =(Ch1Start+ComplexSamples-1);
Ch2Start = Ch1End+1;
Ch2End =(Ch2Start+ComplexSamples-1);
Ch3Start = Ch2End+1;
Ch3End =(Ch3Start+ComplexSamples-1);
Ch4Start = Ch3End+1;
Ch4End =(Ch4Start+ComplexSamples-1);
B = Read_csv (D:\ScilabModel\DataRawAdc1.csv'、'、'、'、'可');
Tag = evstr (B (B (:1)));
Temp1 = size (B);
TotFrames = Temp1 (1);
对于 frm=1:TotFrames
如果 ch=1:Numch
startIndex = ChRawDataStartIndex+((ch-1)* ComplexSamples);
EndIndex = startIndex+ComplexSamples-1;
RawIQ (ch、:)= evstr (B (frm、startIndex:EndIndex));
Rawi (ch、:)= RawIQ (ch、1:2:ComplexSamples);
RawQ (ch、:)= RawIQ (ch、2:2:ComplexSamples);
cmplxIq (ch、:)= Rawi (ch、:)+sqrt (-1)* RawQ (ch、:);
//D1 = CmplxIQ (ch、(64+1):(64+64));
FFTCMPLxIQ (ch、:)= FFT (CMPLxIQ (ch、:));
PHASE_FFTCmplxIQ (ch、:)= atan (imag (FFTCmplxIQ (ch、:))、Real (FFTCmplxIQ (ch、:))));
//FFTCMPLxIq = FFT (D1);
//Phase_FFTCMplxIq = atan (imag (FFTCMplxIq)、Real (FFTCMplxIq));
SCF (1);
CLF(1);
抽取();
Subplot (3、1、1);plot (Rawi (ch、:)');plot (RawQ (ch、:)');
标题("通道、IQ");
子图(3、1、2);图(abs (FFTCMplxIQ (ch、:)'));
//子图(3、1、2);图(abs (FFTCMplxIQ'));
标题("通道、Mag FFT IQ");
子图(3、1、3);图(Phase_FFTCmplxIQ (ch、:)');
//子图(3、1、3);图(Phase_FFTCmplxIQ');
标题("通道、相位 FFT IQ");
drawnow ();
睡眠(100);
结束结束




