Other Parts Discussed in Thread: AWR1642, DCA1000EVM
Hi, I currently modified the SDK code of AWR1642 to extract all the 2D range-doppler data for all virutal antennas and send those data through LVDS using DCA1000EVM
the total size of each frames' data is (128(number of range bins) * 16(number of doppler bins) * 8(number of virtual antennas) )
An I am trying to draw range-azimuth heatmap for all virtual antennas and I use range-azimuth static heatmap code from matlab parsing code of mmwdemo
function [Azimuth_Result,Z] = parse_azim(Q) % Q(Q>32767) = Q(Q>32767) - 65536; % Q = 1j*Q(1:2:end)+Q(2:2:end); Q = reshape(Q, 8, 128); Q = fft(Q, 64); theta = asind([-64/2+1 : 64/2-1]'*(2/64)); range = [0:127] * 0.4394; posX = range' * sind(theta'); posY = range' * cosd(theta'); Azimuth_Result=fftshift(abs(Q),1); Azimuth_Result=Azimuth_Result.'; Azimuth_Result=Azimuth_Result(:,2:end); Azimuth_Result(isnan(Azimuth_Result))=0; Azimuth_Result(Azimuth_Result<0)=0; xlin=linspace(-50,50,500); ylin=linspace(0,70,500); [X,Y]=meshgrid(xlin,ylin); warning off Z=griddata(posX,posY,fliplr(Azimuth_Result),X,Y,'cubic'); Z(end,end)=2000; Z(Z<0)=0; figure(2) surf(xlin,ylin,Z); zlim([0 inf]); % axis equal % % xlabel('Lateral Distance (m)'); ylabel('Longitudinal Distance (m)'); title('Azumuth Heat Map'); shading INTERP % view(0,90); % pause(0.1) % saveas(gcf,['.\picture','Azimuth',num2str(frame),'.png']); end
From above code, the number of angle bin is set to 64.
If I change the code
Q = fft(Q, 64); theta = asind([-64/2+1 : 64/2-1]'*(2/64));
to
Q = fft(Q, 128); theta = asind([-64/1+1 : 64/1-1]'*(1/64));
Would there be more error for angle estimation, or would it be more accurate for angle estimation?
could the size of angle bin be changed at matlab? or should I change it from c code at sdk?
Thanks,
Regards,
Jinhyeong