how can i use Multi correlator tracking?
I_E is still a constant。
I need help
I believe the issue lies in the carrierMixing.m function within the corr folder. The original code did not set trackChannelData.I_E to trackChannelData.I_E(loopCnt). After making this correction, the results for each channel will be output correctly.
Original Code:
% Mix with code replicas
trackChannelData.I_E = sum(trackChannelData.earlyCode .* iBasebandSignal);
trackChannelData.I_P(loopCnt) = sum(trackChannelData.promptCode .* iBasebandSignal);
trackChannelData.I_L = sum(trackChannelData.lateCode .* iBasebandSignal);
trackChannelData.Q_E = sum(trackChannelData.earlyCode .* qBasebandSignal);
trackChannelData.Q_P(loopCnt) = sum(trackChannelData.promptCode .* qBasebandSignal);
trackChannelData.Q_L = sum(trackChannelData.lateCode .* qBasebandSignal);
trackChannelData.I_E_E = sum(trackChannelData.twoChipEarlyCode .* iBasebandSignal);
trackChannelData.Q_E_E = sum(trackChannelData.twoChipEarlyCode .* qBasebandSignal);
Modified Code:
% Mix with code replicas
trackChannelData.I_E(loopCnt) = sum(trackChannelData.earlyCode .* iBasebandSignal);
trackChannelData.I_P(loopCnt) = sum(trackChannelData.promptCode .* iBasebandSignal);
trackChannelData.I_L(loopCnt) = sum(trackChannelData.lateCode .* iBasebandSignal);
trackChannelData.Q_E(loopCnt) = sum(trackChannelData.earlyCode .* qBasebandSignal);
trackChannelData.Q_P(loopCnt) = sum(trackChannelData.promptCode .* qBasebandSignal);
trackChannelData.Q_L(loopCnt) = sum(trackChannelData.lateCode .* qBasebandSignal);
trackChannelData.I_E_E(loopCnt) = sum(trackChannelData.twoChipEarlyCode .* iBasebandSignal);
trackChannelData.Q_E_E(loopCnt) = sum(trackChannelData.twoChipEarlyCode .* qBasebandSignal);
by songyili