如何在MATLAB中编码这个项目
我曾尝试通过本教程在MATLAB中编写此项目(问题3-2,第三段):
https://www.mathworks.com/help/phased/ug/doppler-shift-and-pulse-doppler-processing.htmL
我将PRF改为100,脉冲宽度改为5e-4,并使目标的速度为一维:
波形=相控矩形波形('SampleRate',5e6,'PulseWidth',5e-4,'OutputFormat','Pulses','NumPulses',1,'PRF',100);目标=相位雷达目标(“模型”,“非相位”,“平均RCS”,1,“工作频率”,1e9);targetpos=相控平台('InitialPosition',[1000;0;0],…'Velocity',[-100;0;0]);天线=相位各向同性天线元件(…‘频率范围’,[5e8 5e9]);发射机=相控发射机('PeakPower',5e3,'Gain',20,'InUseOutputPort',true);transpos=相控平台('InitialPosition',[0;0;0],…'Velocity',[0;0;0]);散热器=相控散热器(“工作频率”,1e9,“传感器”,天线);收集器=相控。收集器(“工作频率”,1e9,“传感器”,天线);通道=相控.FreeSpace('SampleRate',波形.SampleRate,'OperatingFrequency',1e9,'TwoWayPropagation',false);接收器=相控。接收器前置放大器('Gain',0,'LossFactor',0,'SampleRate',5e6,'NoiseFigure',5,'EnableInputPort',true,'SeedSource','Property','Seed',1e3);
这里我没有改变任何东西:
NumPulses = 10;sig =波形();% get波形转置=转置。%得到发射机位置rxsig =零(长度(sig), numpulse);% update target position [tgtpos,tgtvel] = targetpos(1/waveform.PRF);[tgtrng, tgtang] = rangeangle (tgtpos transpos);房产申诉专员署(n) = tgtrng;[txsig, txstatus] =发射机(团体);发射波形txsig =散热器(txsig,tgtang);%向目标辐射波形txsig = channel(txsig,transpos,tgtpos,[0;0;0],tgtvel); % propagate waveform to target txsig = target(txsig); % reflect the signal % propagate waveform from the target to the transmiter txsig = channel(txsig,tgtpos,transpos,tgtvel,[0;0;0]); txsig = collector(txsig,tgtang); % collect signal rxsig(:,n) = receiver(txsig,~txstatus); % receive the signal end prf = waveform.PRF; fs = waveform.SampleRate; fasttime = unigrid(0,1/fs,1/prf,'[)'); rangebins = (physconst('LightSpeed')*fasttime)/2; probfa = 1e-9; NoiseBandwidth = 5e6/2; npower = noisepow(NoiseBandwidth,... receiver.NoiseFigure,receiver.ReferenceTemperature); thresh = npwgnthresh(probfa,NumPulses,'noncoherent'); thresh = sqrt(npower*db2pow(thresh)); [pks,range_detect] = findpeaks(pulsint(rxsig,'noncoherent'),... 'MinPeakHeight',thresh,'SortStr','descend'); range_estimate = rangebins(range_detect(1)); ts = rxsig(range_detect(1),:).'; [Pxx,F] = periodogram(ts,[],256,prf,'centered'); plot(F,10*log10(Pxx)) grid xlabel('Frequency (kHz)') ylabel('Power (dB)') title('Periodogram Spectrum Estimate') [Y,I] = max(Pxx); lambda = physconst('LightSpeed')/1e9; tgtspeed = dop2speed(F(I)/2,lambda); fprintf('Estimated range of the target is %4.2f meters.\n',... range_estimate) fprintf('Estimated target speed is %3.1f m/sec.\n',tgtspeed) if F(I)>0 fprintf('The target is approaching the radar.\n') else fprintf('The target is moving away from the radar.\n') end
我真的不知道为什么这个新脉冲会给我这个输出:
目标的估计射程为750350.54米。估计目标速度为-4.9米/秒。目标正在远离雷达。
如果有人能给我一个建议或解决方案,我将不胜感激。谢谢