├── .gitattributes ├── .github └── workflows │ └── blank.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── Micro_Doppler_Radar_Simulator ├── Channel │ ├── Un_Ch_0.99.mat │ ├── Un_Ch_0.991.mat │ ├── Un_Ch_0.992.mat │ ├── Un_Ch_0.993.mat │ ├── Un_Ch_0.994.mat │ ├── Un_Ch_0.995.mat │ ├── Un_Ch_0.996.mat │ ├── Un_Ch_0.997.mat │ ├── Un_Ch_0.998.mat │ ├── Un_Ch_0.9998.mat │ ├── Un_Ch_1.mat │ ├── Un_Ch_1_0.999.mat │ ├── Un_Ch_1_1.mat │ ├── Un_Ch_2_0.999.mat │ ├── Un_Ch_2_1.mat │ ├── Un_Ch_3_0.999.mat │ ├── Un_Ch_3_1.mat │ ├── Un_Ch_4_0.999.mat │ ├── Un_Ch_4_1.mat │ ├── Un_Ch_5_1.mat │ ├── Un_Ch_6_1.mat │ ├── Un_Ch_7_1.mat │ ├── Un_Ch_8_1.mat │ └── Un_Ch_9_1.mat ├── Main.m ├── Simulator.m ├── backscatterPedestrian.m ├── beamforming │ ├── ant_gain.m │ ├── basic2rot.m │ ├── beamforming.m │ ├── filter_channel.m │ ├── max_power_ray.m │ ├── max_power_ray_conf1.m │ ├── max_power_ray_conf2.m │ ├── max_power_ray_conf3.m │ ├── max_power_ray_conf4.m │ ├── max_power_ray_conf5.m │ ├── parr_antenna.m │ ├── pattern.m │ └── simp.m ├── common │ ├── digitize.m │ ├── normalize.m │ └── polarization.m ├── conference_room │ ├── cr_atten_coef.m │ ├── cr_cls_prob.m │ ├── cr_gen_intra_cls.m │ ├── cr_ref_loss.m │ ├── cr_ref_loss_conf2.m │ ├── cr_ref_loss_conf3.m │ ├── cr_ref_loss_conf5.m │ ├── gen_cr_ch.m │ ├── gen_cr_ch_conf1.m │ ├── gen_cr_ch_conf2.m │ ├── gen_cr_ch_conf3.m │ ├── gen_cr_ch_conf4.m │ └── gen_cr_ch_conf5.m ├── getHumanBodyParts.m ├── phased │ ├── phased │ │ ├── +phased │ │ │ ├── +gpu │ │ │ │ ├── +internal │ │ │ │ │ ├── @AbstractClutterSimulator │ │ │ │ │ │ ├── AbstractClutterSimulator.m │ │ │ │ │ │ └── private │ │ │ │ │ │ │ └── privSteeringVec.m │ │ │ │ │ ├── @ComplexWGNSource │ │ │ │ │ │ └── ComplexWGNSource.m │ │ │ │ │ ├── angleAxesConversion.m │ │ │ │ │ └── decomposeCube.m │ │ │ │ └── @ConstantGammaClutter │ │ │ │ │ ├── ConstantGammaClutter.m │ │ │ │ │ ├── private │ │ │ │ │ ├── flattenGroupsAndMoveSensorToTop.m │ │ │ │ │ ├── privDopplerShift.m │ │ │ │ │ └── privSteeringVec.m │ │ │ │ │ └── validateSampleRate.p │ │ │ ├── +internal │ │ │ │ ├── +BackscatterBicyclist │ │ │ │ │ ├── bicyclistrcs.m │ │ │ │ │ ├── getBicyclistFrame.m │ │ │ │ │ ├── getBicyclistFrameAndRiderUpperBody.m │ │ │ │ │ ├── getBicyclistLegAngles.m │ │ │ │ │ ├── getBicyclistLegs.m │ │ │ │ │ ├── getBicyclistParts.m │ │ │ │ │ ├── getBicyclistPedals.m │ │ │ │ │ ├── getBicyclistRiderUpperBody.m │ │ │ │ │ └── getWireSpokedWheel.m │ │ │ │ ├── AbstractAntennaElement.m │ │ │ │ ├── AbstractArray.m │ │ │ │ ├── AbstractArrayOperation.m │ │ │ │ ├── AbstractBarrageJammer.m │ │ │ │ ├── AbstractBeamformer.m │ │ │ │ ├── AbstractClusterDBSCAN.m │ │ │ │ ├── AbstractClutterSimulator.m │ │ │ │ ├── AbstractConstantGammaClutter.m │ │ │ │ ├── AbstractContinuousPhasePulseWaveform.m │ │ │ │ ├── AbstractDOA.m │ │ │ │ ├── AbstractDPCA.m │ │ │ │ ├── AbstractDetector.m │ │ │ │ ├── AbstractDirectivity.m │ │ │ │ ├── AbstractESPRIT.m │ │ │ │ ├── AbstractElement.m │ │ │ │ ├── AbstractFreeSpace.m │ │ │ │ ├── AbstractHeterogeneousArray.m │ │ │ │ ├── AbstractHomogeneousArray.m │ │ │ │ ├── AbstractIsotropicSonarElement.m │ │ │ │ ├── AbstractLOSChannel.m │ │ │ │ ├── AbstractLegacyFreeSpace.m │ │ │ │ ├── AbstractLibrary.m │ │ │ │ ├── AbstractLinearFMWaveform.m │ │ │ │ ├── AbstractMatchedFilter.m │ │ │ │ ├── AbstractMicrophoneElement.m │ │ │ │ ├── AbstractMovingBicyclist.m │ │ │ │ ├── AbstractMultipathChannel.m │ │ │ │ ├── AbstractNarrowbandArrayProcessing.m │ │ │ │ ├── AbstractNarrowbandBeamformer.m │ │ │ │ ├── AbstractParameterEstimator.m │ │ │ │ ├── AbstractPhaseCodedWaveform.m │ │ │ │ ├── AbstractPlatform.m │ │ │ │ ├── AbstractPolarizedAntennaElement.m │ │ │ │ ├── AbstractPulseWaveform.m │ │ │ │ ├── AbstractPulseWaveformLibrary.m │ │ │ │ ├── AbstractRadarTarget.m │ │ │ │ ├── AbstractRadiationPattern2D.m │ │ │ │ ├── AbstractRadiationPattern3D.m │ │ │ │ ├── AbstractRadiationPatternUV2D.m │ │ │ │ ├── AbstractRadiationPatternUV3D.m │ │ │ │ ├── AbstractReceiverPreamp.m │ │ │ │ ├── AbstractRectangularWaveform.m │ │ │ │ ├── AbstractRespPattern.m │ │ │ │ ├── AbstractRespPattern2D.m │ │ │ │ ├── AbstractRespPattern2DPlotOption.m │ │ │ │ ├── AbstractRespPattern3D.m │ │ │ │ ├── AbstractRespPattern3DPlotOption.m │ │ │ │ ├── AbstractRespPatternPlotOption.m │ │ │ │ ├── AbstractRespPatternUV3DPlotOption.m │ │ │ │ ├── AbstractSTAP.m │ │ │ │ ├── AbstractSampleRateEngine.p │ │ │ │ ├── AbstractSensorOperation.m │ │ │ │ ├── AbstractSonarTarget.m │ │ │ │ ├── AbstractSpectralDOA.m │ │ │ │ ├── AbstractSteeringVector.m │ │ │ │ ├── AbstractSteppedFMWaveform.m │ │ │ │ ├── AbstractSubarray.m │ │ │ │ ├── AbstractSubbandBeamformer.m │ │ │ │ ├── AbstractSumDifferenceMonopulse.m │ │ │ │ ├── AbstractTarget.m │ │ │ │ ├── AbstractTimeDomainBeamformer.m │ │ │ │ ├── AbstractTimeDomainSMIBeamformer.m │ │ │ │ ├── AbstractTrainingInterface.m │ │ │ │ ├── AbstractULADOA.m │ │ │ │ ├── AbstractULASpectralDOA.m │ │ │ │ ├── AbstractULASubspaceDOA.m │ │ │ │ ├── AbstractVarSizeEngine.p │ │ │ │ ├── AbstractWalkingHuman.m │ │ │ │ ├── AngleDopplerPattern.m │ │ │ │ ├── AngleDopplerPatternPlotOption.m │ │ │ │ ├── AntennaAdapter.m │ │ │ │ ├── BackscatterBicyclistTarget.m │ │ │ │ ├── BackscatterHumanTarget.m │ │ │ │ ├── BlockSMIWeightsEstimator.m │ │ │ │ ├── CFARTraining.m │ │ │ │ ├── CircularBuffer.m │ │ │ │ ├── Collector.m │ │ │ │ ├── ComplexWGNSource.m │ │ │ │ ├── Contents.m │ │ │ │ ├── Directivity.m │ │ │ │ ├── DirectivityPattern2D.m │ │ │ │ ├── DirectivityPattern2DPlotOption.m │ │ │ │ ├── DirectivityPattern3D.m │ │ │ │ ├── DirectivityPattern3DPlotOption.m │ │ │ │ ├── DirectivityPatternUV2D.m │ │ │ │ ├── DirectivityPatternUV2DPlotOption.m │ │ │ │ ├── DirectivityPatternUV3D.m │ │ │ │ ├── DirectivityPatternUV3DPlotOption.m │ │ │ │ ├── DirectivityResponse.m │ │ │ │ ├── DopplerCircularBuffer.m │ │ │ │ ├── FFTFilter.m │ │ │ │ ├── GridSpacingProperty.m │ │ │ │ ├── IntegratedPowerPattern.m │ │ │ │ ├── IntegratedPowerPatternReference.m │ │ │ │ ├── LegacyFreeSpace.m │ │ │ │ ├── MatrixCubeConverter.m │ │ │ │ ├── MovingBicyclist.m │ │ │ │ ├── NoiseSource.m │ │ │ │ ├── PSTCustomSettings.m │ │ │ │ ├── PolarizationResponse.m │ │ │ │ ├── PolarizationResponsePlotOption.m │ │ │ │ ├── Radiator.m │ │ │ │ ├── RangeAngle.m │ │ │ │ ├── RangeAnglePattern.m │ │ │ │ ├── RangeAnglePatternPlotOption.m │ │ │ │ ├── RangeDopplerPattern.m │ │ │ │ ├── RangeDopplerPatternPlotOption.m │ │ │ │ ├── RangePattern.m │ │ │ │ ├── RangePatternPlotOption.m │ │ │ │ ├── RangeSpeedPattern.m │ │ │ │ ├── RangeSpeedPatternPlotOption.m │ │ │ │ ├── RespPattern2D.m │ │ │ │ ├── RespPattern2DPlotOption.m │ │ │ │ ├── RespPattern3D.m │ │ │ │ ├── RespPattern3DPlotOption.m │ │ │ │ ├── RespPatternUV2D.m │ │ │ │ ├── RespPatternUV2DPlotOption.m │ │ │ │ ├── RespPatternUV3D.m │ │ │ │ ├── RespPatternUV3DPlotOption.m │ │ │ │ ├── STAPTraining.m │ │ │ │ ├── SensorArrayDialog.m │ │ │ │ ├── SignalValidator.m │ │ │ │ ├── SimulinkBarrageJammer.m │ │ │ │ ├── SimulinkClusterDBSCAN.m │ │ │ │ ├── SimulinkConstantGammaClutter.m │ │ │ │ ├── SimulinkLinearFMWaveform.m │ │ │ │ ├── SimulinkMatchedFilter.m │ │ │ │ ├── SimulinkMovingBicyclist.m │ │ │ │ ├── SimulinkPhaseCodedWaveform.m │ │ │ │ ├── SimulinkPlatform.m │ │ │ │ ├── SimulinkPulseWaveformLibrary.m │ │ │ │ ├── SimulinkReceiverPreamp.m │ │ │ │ ├── SimulinkRectangularWaveform.m │ │ │ │ ├── SimulinkSignalPadder.m │ │ │ │ ├── SimulinkSignalRetriever.m │ │ │ │ ├── SimulinkSteeringVector.m │ │ │ │ ├── SimulinkSteppedFMWaveform.m │ │ │ │ ├── SimulinkWalkingHuman.m │ │ │ │ ├── SpatialCovEstimator.m │ │ │ │ ├── SubbandCombiner.m │ │ │ │ ├── SubbandDivider.m │ │ │ │ ├── ValueIndexConverter.m │ │ │ │ ├── WalkingHuman.m │ │ │ │ ├── WidebandCollector.m │ │ │ │ ├── aictest.m │ │ │ │ ├── arbazel2azel.m │ │ │ │ ├── azel2dirvec.m │ │ │ │ ├── azel2vec.m │ │ │ │ ├── azelcoord.m │ │ │ │ ├── backbaffle.m │ │ │ │ ├── barkercode.m │ │ │ │ ├── cel2kel.m │ │ │ │ ├── cleanupInstanceData.m │ │ │ │ ├── computePlotPattern.m │ │ │ │ ├── convertpat.m │ │ │ │ ├── cwgn.m │ │ │ │ ├── dbtomag.m │ │ │ │ ├── deg2rad.m │ │ │ │ ├── directivityFromPattern.m │ │ │ │ ├── dirvec2azel.m │ │ │ │ ├── elemdelay.m │ │ │ │ ├── ellipsepts.m │ │ │ │ ├── ellipsoidrcs.m │ │ │ │ ├── findpeaks2D.m │ │ │ │ ├── fogattcoeff.m │ │ │ │ ├── frankcode.m │ │ │ │ ├── fspl.m │ │ │ │ ├── getHumanBodyParts.m │ │ │ │ ├── getKinematicModel.m │ │ │ │ ├── global2localcoord.m │ │ │ │ ├── global2localcoordjac.m │ │ │ │ ├── global2localvec.m │ │ │ │ ├── helperClusterDBSCANExampleData.m │ │ │ │ ├── imageMethod.m │ │ │ │ ├── incident2azel.m │ │ │ │ ├── integratePattern.m │ │ │ │ ├── isAngleAtBack.m │ │ │ │ ├── kel2cel.m │ │ │ │ ├── lcmvweights.m │ │ │ │ ├── local2globalcoord.m │ │ │ │ ├── local2globalvec.m │ │ │ │ ├── magtodb.m │ │ │ │ ├── mdltest.m │ │ │ │ ├── motionhermite.m │ │ │ │ ├── narginchk.m │ │ │ │ ├── normalizeIntegratedPower.m │ │ │ │ ├── p1code.m │ │ │ │ ├── p2code.m │ │ │ │ ├── p3code.m │ │ │ │ ├── p4code.m │ │ │ │ ├── parabolicFit.m │ │ │ │ ├── parsePatternAzimuthInputs.m │ │ │ │ ├── parsePatternElevationInputs.m │ │ │ │ ├── parsePatternInputs.m │ │ │ │ ├── parsePlotResponseInputs.m │ │ │ │ ├── plotRadiationPattern.m │ │ │ │ ├── polchanmat.m │ │ │ │ ├── pxcode.m │ │ │ │ ├── quantizePhase.m │ │ │ │ ├── rad2deg.m │ │ │ │ ├── rangeratejac.m │ │ │ │ ├── rotazel.m │ │ │ │ ├── samprate2time.m │ │ │ │ ├── samptime2rate.m │ │ │ │ ├── saveDirectivityIntegrationPatternSamples.m │ │ │ │ ├── steeringvec.m │ │ │ │ ├── subbandCenterFrequency.m │ │ │ │ ├── unitarymat.m │ │ │ │ ├── val2ind.m │ │ │ │ └── zadoffchucode.m │ │ │ ├── +scopes │ │ │ │ ├── IntensitySystemScopeSpecification.p │ │ │ │ ├── IntensityVisual.p │ │ │ │ ├── ScenarioAnnotationDialog.p │ │ │ │ ├── ScenarioCameraDialog.p │ │ │ │ ├── ScenarioSceneDialog.p │ │ │ │ ├── ScenarioSettingsDialog.p │ │ │ │ ├── ScenarioViewerSpecification.p │ │ │ │ ├── ScenarioVisual.p │ │ │ │ ├── ZBasePlane.p │ │ │ │ ├── clearb.p │ │ │ │ ├── intensitysystemscope.cfg │ │ │ │ └── scenarioviewer.cfg │ │ │ ├── ADPCACanceller.m │ │ │ ├── AlphaBetaFilter.m │ │ │ ├── AngleDopplerResponse.m │ │ │ ├── AngleDopplerScope.m │ │ │ ├── ArrayGain.m │ │ │ ├── ArrayResponse.m │ │ │ ├── BackscatterPedestrian.m │ │ │ ├── BackscatterRadarTarget.m │ │ │ ├── BackscatterSonarTarget.m │ │ │ ├── BarrageJammer.m │ │ │ ├── BeamscanEstimator.m │ │ │ ├── BeamscanEstimator2D.m │ │ │ ├── BeamspaceESPRITEstimator.m │ │ │ ├── CFARDetector.m │ │ │ ├── CFARDetector2D.m │ │ │ ├── Collector.m │ │ │ ├── ConformalArray.m │ │ │ ├── ConstantGammaClutter.m │ │ │ ├── CosineAntennaElement.m │ │ │ ├── CrossedDipoleAntennaElement.m │ │ │ ├── CustomAntennaElement.m │ │ │ ├── CustomMicrophoneElement.m │ │ │ ├── DPCACanceller.m │ │ │ ├── DTIScope.m │ │ │ ├── DopplerEstimator.m │ │ │ ├── ESPRITEstimator.m │ │ │ ├── ElementDelay.m │ │ │ ├── FMCWWaveform.m │ │ │ ├── FreeSpace.m │ │ │ ├── FrostBeamformer.m │ │ │ ├── GCCEstimator.m │ │ │ ├── GSCBeamformer.m │ │ │ ├── HeterogeneousConformalArray.m │ │ │ ├── HeterogeneousULA.m │ │ │ ├── HeterogeneousURA.m │ │ │ ├── IntensityScope.m │ │ │ ├── IsoSpeedUnderwaterPaths.m │ │ │ ├── IsotropicAntennaElement.m │ │ │ ├── IsotropicHydrophone.m │ │ │ ├── IsotropicProjector.m │ │ │ ├── LCMVBeamformer.m │ │ │ ├── LOSChannel.m │ │ │ ├── LinearFMWaveform.m │ │ │ ├── MFSKWaveform.m │ │ │ ├── MUSICEstimator.m │ │ │ ├── MUSICEstimator2D.m │ │ │ ├── MVDRBeamformer.m │ │ │ ├── MVDREstimator.m │ │ │ ├── MVDREstimator2D.m │ │ │ ├── MatchedFilter.m │ │ │ ├── MonopulseEstimator.m │ │ │ ├── MonopulseFeed.m │ │ │ ├── MultipathChannel.m │ │ │ ├── OmnidirectionalMicrophoneElement.m │ │ │ ├── PartitionedArray.m │ │ │ ├── PhaseCodedWaveform.m │ │ │ ├── PhaseShiftBeamformer.m │ │ │ ├── Platform.m │ │ │ ├── PulseCompressionLibrary.m │ │ │ ├── PulseWaveformLibrary.m │ │ │ ├── RTIScope.m │ │ │ ├── RadarTarget.m │ │ │ ├── Radiator.m │ │ │ ├── RangeAngleResponse.m │ │ │ ├── RangeAngleScope.m │ │ │ ├── RangeDopplerResponse.m │ │ │ ├── RangeDopplerScope.m │ │ │ ├── RangeEstimator.m │ │ │ ├── RangeResponse.m │ │ │ ├── ReceiverPreamp.m │ │ │ ├── RectangularWaveform.m │ │ │ ├── ReplicatedSubarray.m │ │ │ ├── RootMUSICEstimator.m │ │ │ ├── RootWSFEstimator.m │ │ │ ├── STAPSMIBeamformer.m │ │ │ ├── ScatteringMIMOChannel.m │ │ │ ├── ScenarioViewer.m │ │ │ ├── ShortDipoleAntennaElement.m │ │ │ ├── SteeringVector.m │ │ │ ├── SteppedFMWaveform.m │ │ │ ├── StretchProcessor.m │ │ │ ├── SubbandMVDRBeamformer.m │ │ │ ├── SubbandPhaseShiftBeamformer.m │ │ │ ├── SumDifferenceMonopulseTracker.m │ │ │ ├── SumDifferenceMonopulseTracker2D.m │ │ │ ├── TimeDelayBeamformer.m │ │ │ ├── TimeDelayLCMVBeamformer.m │ │ │ ├── TimeVaryingGain.m │ │ │ ├── Transmitter.m │ │ │ ├── TwoRayChannel.m │ │ │ ├── UCA.m │ │ │ ├── ULA.m │ │ │ ├── URA.m │ │ │ ├── UnderwaterRadiatedNoise.m │ │ │ ├── WidebandBackscatterRadarTarget.m │ │ │ ├── WidebandCollector.m │ │ │ ├── WidebandFreeSpace.m │ │ │ ├── WidebandLOSChannel.m │ │ │ ├── WidebandRadiator.m │ │ │ ├── WidebandTwoRayChannel.m │ │ │ └── private │ │ │ │ ├── privgpuCosAntElemResp.m │ │ │ │ ├── privgpuCrossedDipoleAntElemResp.m │ │ │ │ ├── privgpuIsoAntElemResp.m │ │ │ │ └── privgpuShortDipoleAntElemResp.m │ │ ├── BasicMonostaticRadarExampleData.mat │ │ ├── BicyclistLegsAngles.mat │ │ ├── Contents.m │ │ ├── DesktopToolset.xml │ │ ├── IntegratedFieldSamplePoints.mat │ │ ├── RTIDTIExampleData.mat │ │ ├── RangeAngleResponseExampleData.mat │ │ ├── RangeDopplerEstimatorData.mat │ │ ├── RangeDopplerExampleData.mat │ │ ├── RangeDopplerResponseExampleData.mat │ │ ├── RangeResponseExampleData.mat │ │ ├── STAPExampleData.mat │ │ ├── aboutphasedtbx.m │ │ ├── aictest.m │ │ ├── albersheim.m │ │ ├── ambgfun.m │ │ ├── aperture2gain.m │ │ ├── array_analysis_app_16.png │ │ ├── array_analysis_app_24.png │ │ ├── az2broadside.m │ │ ├── azel2phitheta.m │ │ ├── azel2phithetapat.m │ │ ├── azel2uv.m │ │ ├── azel2uvpat.m │ │ ├── azelaxes.m │ │ ├── azelcut2pat.m │ │ ├── backscatterBicyclist.m │ │ ├── backscatterPedestrian.m │ │ ├── basicmonostaticradardemodata.mat │ │ ├── beat2range.m │ │ ├── billingsleyicm.m │ │ ├── blakechart.m │ │ ├── broadside2az.m │ │ ├── bw2range.m │ │ ├── cart2sphvec.m │ │ ├── cbfweights.m │ │ ├── circpol2pol.m │ │ ├── clusterDBSCAN.m │ │ ├── dataClusterDBSCAN.mat │ │ ├── dechirp.m │ │ ├── delayseq.m │ │ ├── depressionang.m │ │ ├── diagbfweights.m │ │ ├── dop2speed.m │ │ ├── dopsteeringvec.m │ │ ├── effearthradius.m │ │ ├── eml_assert_no_varsize.m │ │ ├── espritdoa.m │ │ ├── functionSignatures.json │ │ ├── gain2aperture.m │ │ ├── gccphat.m │ │ ├── getHumanBodyParts.m │ │ ├── global2localcoord.m │ │ ├── grazingang.m │ │ ├── horizonrange.m │ │ ├── info.xml │ │ ├── lcmvweights.m │ │ ├── local2globalcoord.m │ │ ├── mdltest.m │ │ ├── musicdoa.m │ │ ├── mvdrweights.m │ │ ├── noisepow.m │ │ ├── npwgnthresh.m │ │ ├── ompdecomp.m │ │ ├── omphybweights.m │ │ ├── pambgfun.m │ │ ├── phasedbflib.slx │ │ ├── phaseddetectlib.slx │ │ ├── phaseddoalib.slx │ │ ├── phasedenvlib.slx │ │ ├── phasedlib.slx │ │ ├── phasedmisclib.slx │ │ ├── phasedstaplib.slx │ │ ├── phasedtxrxlib.slx │ │ ├── phasedwavlib.slx │ │ ├── phitheta2azel.m │ │ ├── phitheta2azelpat.m │ │ ├── phitheta2uv.m │ │ ├── phitheta2uvpat.m │ │ ├── pilotcalib.m │ │ ├── pol2circpol.m │ │ ├── polellip.m │ │ ├── polloss.m │ │ ├── polratio.m │ │ ├── polsignature.m │ │ ├── private │ │ │ ├── aboutphased.mat │ │ │ ├── helperRangeAngleResponseHelpExampleData.m │ │ │ ├── helperRangeDopplerResponseHelpExampleData.m │ │ │ ├── helperRangeResponseHelpExampleData.m │ │ │ ├── helperRngDopEstimatorHelpExampleData.m │ │ │ ├── privrocpdcalc.m │ │ │ ├── privrocplot.m │ │ │ └── radareqvalidateoptionalinput.m │ │ ├── pulsint.m │ │ ├── radar_equation_app_16.png │ │ ├── radar_equation_app_24.png │ │ ├── radareqpow.m │ │ ├── radareqrng.m │ │ ├── radareqsnr.m │ │ ├── radarvcd.m │ │ ├── radialspeed.m │ │ ├── range2beat.m │ │ ├── range2bw.m │ │ ├── range2time.m │ │ ├── range2tl.m │ │ ├── rangeangle.m │ │ ├── rcscylinder.m │ │ ├── rcsdisc.m │ │ ├── rcssphere.m │ │ ├── rcstruncone.m │ │ ├── rdcoupling.m │ │ ├── resources │ │ │ ├── DesktopToolset.xml │ │ │ └── functionSignatures.json │ │ ├── rocpfa.m │ │ ├── rocsnr.m │ │ ├── rootmusicdoa.m │ │ ├── rotpat.m │ │ ├── rotx.m │ │ ├── roty.m │ │ ├── rotz.m │ │ ├── scatteringchanmtx.m │ │ ├── sensorcov.m │ │ ├── sensordet_targets.mat │ │ ├── sensorsig.m │ │ ├── shnidman.m │ │ ├── slblocks.m │ │ ├── sonar_equation_app_16.png │ │ ├── sonar_equation_app_24.png │ │ ├── sonareqsl.m │ │ ├── sonareqsnr.m │ │ ├── sonareqtl.m │ │ ├── speed2dop.m │ │ ├── sph2cartvec.m │ │ ├── spsmooth.m │ │ ├── steervec.m │ │ ├── stokes.m │ │ ├── stretchfreq2rng.m │ │ ├── surfacegamma.m │ │ ├── surfclutterrcs.m │ │ ├── systemp.m │ │ ├── taylortaperc.m │ │ ├── time2range.m │ │ ├── tl2range.m │ │ ├── unigrid.m │ │ ├── uv2azel.m │ │ ├── uv2azelpat.m │ │ ├── uv2phitheta.m │ │ ├── uv2phithetapat.m │ │ ├── val2ind.m │ │ ├── waterfill.m │ │ ├── waveform_analysis_app_16.png │ │ └── waveform_analysis_app_24.png │ ├── phasedapps │ │ ├── +phased │ │ │ └── +apps │ │ │ │ └── +internal │ │ │ │ ├── +SensorArrayViewer │ │ │ │ ├── ATArbitraryGeometry.p │ │ │ │ ├── ATCircularPlanar.p │ │ │ │ ├── ATConcentric.p │ │ │ │ ├── ATCylindrical.p │ │ │ │ ├── ATSpherical.p │ │ │ │ ├── ATUniformCircular.p │ │ │ │ ├── ATUniformHexagonal.p │ │ │ │ ├── ATUniformLinear.p │ │ │ │ ├── ATUniformRectangular.p │ │ │ │ ├── ArrayCharDialog.p │ │ │ │ ├── ArrayDir2dOps.p │ │ │ │ ├── ArrayDir3dOps.p │ │ │ │ ├── ArrayGraph.p │ │ │ │ ├── ArrayGraph2D.p │ │ │ │ ├── ArrayGraph3D.p │ │ │ │ ├── ArrayGraphGeometry.p │ │ │ │ ├── ArrayGraphGratingLobe.p │ │ │ │ ├── ArrayType.p │ │ │ │ ├── AxesController.p │ │ │ │ ├── ElementType.p │ │ │ │ ├── SensorArrayViewer.p │ │ │ │ ├── SettingsDialog.p │ │ │ │ ├── TaperType.p │ │ │ │ ├── ViewType.p │ │ │ │ ├── VisualizationDialog.p │ │ │ │ └── makeEqualLength.p │ │ │ │ ├── +WaveformViewer │ │ │ │ ├── AxesController.p │ │ │ │ ├── SettingsDialog.p │ │ │ │ ├── ViewType.p │ │ │ │ ├── VisualizationDialog.p │ │ │ │ ├── WGAmbiguityContour.p │ │ │ │ ├── WGAmbiguityDelayCut.p │ │ │ │ ├── WGAmbiguityDopplerCut.p │ │ │ │ ├── WGAmbiguitySurface.p │ │ │ │ ├── WGAutocorrelationFunction.p │ │ │ │ ├── WGMagnitudeAndPhase.p │ │ │ │ ├── WGRealAndImaginary.p │ │ │ │ ├── WGSpectrogram.p │ │ │ │ ├── WGSpectrum.p │ │ │ │ ├── WTFMCW.p │ │ │ │ ├── WTLinearFM.p │ │ │ │ ├── WTPhaseCoded.p │ │ │ │ ├── WTRectangular.p │ │ │ │ ├── WTSteppedFM.p │ │ │ │ ├── WaveformCharDialog.p │ │ │ │ ├── WaveformGraph.p │ │ │ │ ├── WaveformType.p │ │ │ │ └── WaveformViewer.p │ │ │ │ ├── Contents.m │ │ │ │ └── plotGratingLobeDiagramPlanar.m │ │ ├── +scopext │ │ │ └── registerPhasedExtensions.m │ │ ├── +slexportprevious │ │ │ └── +preprocess │ │ │ │ ├── CustAnt.p │ │ │ │ └── SubarrayCustomSteering.p │ │ ├── getBlockHelpMapNameAndPath.m │ │ ├── private │ │ │ ├── genradareqmcode.m │ │ │ ├── genradareqreport.m │ │ │ ├── gensonareqmcode.m │ │ │ └── gensonareqreport.m │ │ ├── radarEquationCalculator.m │ │ ├── radarWaveformAnalyzer.m │ │ ├── sensorArrayAnalyzer.m │ │ ├── slexportprevious.rules │ │ └── sonarEquationCalculator.m │ └── phaseddemos │ │ ├── +phased │ │ └── +scopes │ │ │ ├── MatrixViewer.m │ │ │ ├── MatrixViewerSpecification.m │ │ │ ├── MatrixViewerValidator.m │ │ │ └── MatrixVisual.m │ │ ├── +slstart │ │ └── +internal │ │ │ └── PhasedArraySystemToolboxFeaturedExampleProvider.m │ │ ├── @phaseddemoscope │ │ ├── @ArrayResponseVisual2DPolar │ │ │ ├── ArrayResponseVisual2DPolar.m │ │ │ ├── chkvectorinput.m │ │ │ ├── getPropertyDb.m │ │ │ ├── getPropsSchema.m │ │ │ ├── onDataSourceChanged.m │ │ │ ├── propertyChanged.m │ │ │ ├── schema.p │ │ │ ├── setpolaraxes.m │ │ │ ├── setup.m │ │ │ ├── update.m │ │ │ └── validate.m │ │ ├── schema.p │ │ └── scopext.m │ │ ├── @phaseddialog │ │ ├── @MatrixViewer │ │ │ ├── MatrixViewer.m │ │ │ ├── getDialogSchema.m │ │ │ ├── loadFromBlock.m │ │ │ └── schema.p │ │ └── schema.p │ │ ├── ArrayResponseDemo2DPolarScope.cfg │ │ ├── ArrayResponseDemo2DPolarScope.m │ │ ├── ArrayResponseDemo2DPolarScopeCfg.m │ │ ├── cluttersignaldemo.mat │ │ ├── custompattern.csv │ │ ├── helperBuildPhasedDemoMex.m │ │ ├── helperCylinderRCSPattern.m │ │ ├── helperDipoleTuner.m │ │ ├── helperPlotChannelAngularResponse.m │ │ ├── helperRadarStreamRun.m │ │ ├── helperRadarStreamRun_mex.mexw64 │ │ ├── helperslexBeamformerInterferenceParam.m │ │ ├── helperslexFMCWMultiTargetsDOAParam.m │ │ ├── helperslexFMCWMultiTargetsParam.m │ │ ├── helperslexFMCWParam.m │ │ ├── helperslexFMCWRFParam.m │ │ ├── helperslexMonostaticRadarRFParam.m │ │ ├── helperslexPRFSelectionParam.m │ │ ├── helperslexWidebandMonostaticRadarParam.m │ │ ├── html │ │ ├── Pattern_fmcw_patch_at_76_5_GHz.png │ │ ├── Pattern_fmcw_patch_at_77_6_GHz.png │ │ └── RFPropagationExample_tworay.png │ │ ├── mtiradardemoclutter.mat │ │ ├── phasedmatrixviewer.cfg │ │ ├── radarTask.mat │ │ ├── slexFMCWExample.slx │ │ ├── slexFMCWExample_sfun.mexw64 │ │ ├── slexFMCWMultiTargetsDOAExample.slx │ │ ├── slexFMCWMultiTargetsDOAExample_sfun.mexw64 │ │ ├── slexFMCWMultiTargetsExample.slx │ │ ├── slexFMCWMultiTargetsExample_sfun.mexw64 │ │ ├── slexFMCWRFExample.slx │ │ ├── slexFMCWRFExample_sfun.mexw64 │ │ ├── slexPRFSelectionSEExample.slx │ │ ├── slexPRFSelectionSEExample_sfun.mexw64 │ │ ├── slexWidebandMonostaticRadarExample.slx │ │ ├── slexWidebandMonostaticRadarExample_sfun.mexw64 │ │ ├── sphasedmview2.m │ │ ├── stapgpu.m │ │ ├── stapmex.m │ │ └── twospeeches.mat ├── ray_tracer │ ├── adjust_angles.p │ ├── calc_intersection.p │ ├── cr_build_scene.p │ ├── cr_gen_cls_ant1.m │ ├── cr_gen_cls_ant2.m │ ├── cr_reorder_clusters.p │ ├── ray_tracer_ant1.p │ ├── ray_tracer_ant2.p │ ├── reflect_0.p │ ├── reflect_1.p │ └── reflect_2.p └── work │ ├── 6000_100_arm_leg_400k.mat │ ├── 6000_100_arm_leg_400k_50.mat │ ├── 6000_100_human_arm.mat │ ├── 6000_100_human_arm_leg.mat │ ├── 6000_100_human_arm_leg_forward.mat │ ├── 6000_100_human_arm_leg_forward_jie.mat │ ├── 6000_100_human_run.mat │ ├── 6000_100_standing.mat │ ├── Real_Ch.jpg │ ├── Real_Ch.mat │ ├── Real_Ch_.mat │ ├── cr_ch_cfg.m │ ├── cr_ch_model.m │ └── cr_test.m ├── README.assets ├── DAHC.png ├── channel_simulation.png └── image-20231116131857577.png ├── README.md └── zed_pose ├── .gitignore ├── README.md ├── genSpectrogram_human_bistatic.m ├── genSpectrogram_human_monostatic.m ├── rcsellipsoid.m ├── test.gif ├── test_human.m └── test_human_new.m /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/workflows/blank.yml: -------------------------------------------------------------------------------- 1 | name: Update Submodules 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | schedule: 7 | - cron: "45 10 * * *" 8 | workflow_dispatch: 9 | 10 | jobs: 11 | update_submodules: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout repository 15 | uses: actions/checkout@v2 16 | with: 17 | submodules: recursive 18 | token: ${{ secrets.PAT }} # 使用个人访问令牌 19 | 20 | - name: Update submodules 21 | run: | 22 | git submodule update --remote 23 | 24 | - name: Commit changes 25 | run: | 26 | if git diff --exit-code; then 27 | echo "No submodule updates detected." 28 | else 29 | git config --local user.email "action@github.com" 30 | git config --local user.name "GitHub Action" 31 | git add . 32 | git commit -m "Update submodules" 33 | git push 34 | fi 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | data* 2 | hand 3 | *.zip 4 | *.zip 5 | func_PMR_fft.m 6 | resize.m 7 | process_real_data.m 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "mediapipe_spectrogram"] 2 | path = mediapipe_spectrogram 3 | url = https://github.com/rzy0901/mediapipe_spectrogram.git 4 | [submodule "testZED"] 5 | path = testZED 6 | url = https://github.com/rzy0901/testZED.git 7 | [submodule "RxRealTime_GUI_rzy"] 8 | path = RxRealTime_GUI_rzy 9 | url = https://github.com/rzy0901/RxRealTime_GUI_rzy 10 | [submodule "CASTER_classification"] 11 | path = CASTER_classification 12 | url = https://github.com/rzy0901/CASTER_classification 13 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.99.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.99.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.991.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.991.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.992.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.992.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.993.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.993.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.994.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.994.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.995.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.995.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.996.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.996.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.997.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.997.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.998.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.998.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.9998.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_0.9998.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_1_0.999.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_1_0.999.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_1_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_1_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_2_0.999.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_2_0.999.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_2_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_2_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_3_0.999.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_3_0.999.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_3_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_3_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_4_0.999.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_4_0.999.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_4_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_4_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_5_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_5_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_6_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_6_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_7_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_7_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_8_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_8_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Channel/Un_Ch_9_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/Channel/Un_Ch_9_1.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/Main.m: -------------------------------------------------------------------------------- 1 | close all; 2 | clc; 3 | clear; 4 | 5 | rho = 0.99; % time correlation of the static channel, 1 -> unchanged; 0 -> uncorrelated 6 | Radar_x = 0.1; 7 | Radar_y = 4.4; 8 | Radar_z = 1; 9 | Radar_pos = [Radar_x;Radar_y;Radar_z]; % the position of radar 10 | 11 | ped_height = 1.75; % the height of pedestrian 12 | v = 1; % moving speed 13 | Pedestrian_x = 1.5; 14 | Pedestrian_y = 3.5; 15 | Pedestrian_z = 0; 16 | Pedestrian_pos = [Pedestrian_x;Pedestrian_y;Pedestrian_z]; % the position of pedestrian 17 | Pedestrian_heading = 340; % the moving direction of pedestrian 18 | 19 | Simulator(v,ped_height,rho,Pedestrian_heading,Pedestrian_pos,Radar_x,Radar_y,Radar_z,Radar_pos); -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/beamforming/beamforming.m: -------------------------------------------------------------------------------- 1 | % /************************************************************************************* 2 | % Intel Corp. 3 | % 4 | % Project Name: Conference Room Channel Model 5 | % File Name: beamforming.m 6 | % Authors: Y. Gagiev 7 | % Version: 1.0 8 | % History: December 2015 created 9 | % 10 | % ************************************************************************************* 11 | % Description: 12 | % 13 | % function calls beamforming Max Power Ray algorithm 14 | % 15 | % [imp_res,toa] = beamforming(cfg,ch) 16 | % 17 | % Inputs: 18 | % 19 | % 1. cfg - part of configuration structure defining beamforming related parameters 20 | % 2. ch - channel structure 21 | % 22 | % Outputs: 23 | % 24 | % 1. imp_res - channel impulse response structure 25 | % 26 | % *************************************************************************************/ 27 | function [imp_res] = beamforming(cfg, ch) 28 | 29 | % Calling max power ray algorithm 30 | % Others beamforming algorithms can be supported 31 | imp_res = max_power_ray(cfg, ch); 32 | 33 | end 34 | 35 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/beamforming/max_power_ray.m: -------------------------------------------------------------------------------- 1 | % /************************************************************************************* 2 | % Intel Corp. 3 | % 4 | % Project Name: Conference Room Channel Model 5 | % File Name: beamforming.m 6 | % Authors: Y. Gagiev 7 | % Version: 1.0 8 | % History: December 2015 created 9 | % 10 | % ************************************************************************************* 11 | % Description: 12 | % 13 | % function calls max power ray alg for specified ant_type 14 | % 15 | % [ imp_res ] = max_power_ray(cfg, ch) 16 | % 17 | % Inputs: 18 | % 19 | % 1. cfg - part of configuration structure defining beamforming related parameters 20 | % 2. ch - channel structure 21 | % 22 | % Outputs: 23 | % 24 | % 1. imp_res - channel impulse response structure 25 | % 26 | % *************************************************************************************/ 27 | function [ imp_res ] = max_power_ray(cfg, ch) 28 | 29 | switch(cfg.ant_type) 30 | case 1, % phase antenna array with single polarization 31 | imp_res = max_power_ray_conf1(cfg, ch); 32 | case 2, % phased antenna array with dual polarization 33 | imp_res = max_power_ray_conf2(cfg, ch); 34 | case 3, % double phased antenna array 35 | imp_res = max_power_ray_conf3(cfg, ch); 36 | case 4, % single phased antenna array on Tx, Rx; Rx receives w/ dual polarization 37 | imp_res = max_power_ray_conf4(cfg, ch); 38 | case 5, 39 | imp_res = max_power_ray_conf5(cfg, ch); 40 | end 41 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/beamforming/parr_antenna.m: -------------------------------------------------------------------------------- 1 | % /************************************************************************************* 2 | % Intel Corp. 3 | % 4 | % Project Name: Conference Room Channel Model 5 | % File Name: parr_antenna.m 6 | % Authors: Y. Gagiev 7 | % Version: 1.0 8 | % History: September 2015 created 9 | % 10 | % ************************************************************************************* 11 | % Description: 12 | % 13 | % function returns amplitudes weighted by gain coefficients calculated 14 | % for phased antenna array model 15 | % 16 | % [amg] = parr_antenna(am, az, el) 17 | % 18 | % Inputs: 19 | % 20 | % 1. am - array of input amplitudes 21 | % 2. az - azimuth angles array [deg] 22 | % 3. el - elevation angles array [deg] 23 | % 4. paa - structure with PAA parameters 24 | % 25 | % Outputs: 26 | % 27 | % 1. amg - array of output amplitudes weighted by antenna gain coefficients 28 | % 29 | % *************************************************************************************/ 30 | function [ amg ] = parr_antenna(am, az, el, W, paa) 31 | 32 | Nray = length(am); 33 | U = zeros(1, Nray); 34 | 35 | az_rad = az * pi / 180; 36 | el_rad = el * pi / 180; 37 | % Calculate antenna gain value for given directions of rays 38 | for i = 1 : Nray 39 | U(i) = pattern(el_rad(i), az_rad(i), W, paa); 40 | end 41 | 42 | % Total power in whole space 43 | power = 0; 44 | for el = 0 : 0.1 : pi/2 45 | power = power + simp(0, pi*2, el, W, 1e-1, paa); 46 | end 47 | power = power * 0.1; 48 | 49 | % Calculate antenna gain 50 | g = sqrt(4 * pi * U / power); 51 | 52 | amg = am .* g.'; 53 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/beamforming/pattern.m: -------------------------------------------------------------------------------- 1 | % /************************************************************************************* 2 | % Intel Corp. 3 | % 4 | % Project Name: Conference Room Channel Model 5 | % File Name: pattern.m 6 | % Authors: Y. Gagiev 7 | % Version: 1.0 8 | % History: September 2015 created 9 | % 10 | % ************************************************************************************* 11 | % Description: 12 | % 13 | % Calculates value of Antenna Pattern for given direction 14 | % 15 | % out = pattern(el, az, W) 16 | % 17 | % Inputs: 18 | % 19 | % 1. el - elevation angles array [deg] 20 | % 2. az - azimuth angles array [deg] 21 | % 3. W - weight coefficients 22 | % 4. paa - structure with PAA parameters 23 | % 24 | % Outputs: 25 | % 26 | % 1. out - value of antenna pattern in specified direction 27 | % 28 | % *************************************************************************************/ 29 | function out = pattern(el, az, W, paa) 30 | 31 | Nx = paa.Nx; 32 | Ny = paa.Ny; 33 | dx = paa.dx; 34 | dy = paa.dy; 35 | lyam = paa.lyam; 36 | 37 | k = 2 * pi / lyam; 38 | 39 | % Calculate value of antenna pattern in specified direction 40 | out = 0; 41 | for nx = 0 : Nx - 1 42 | for ny = 0 : Ny - 1 43 | phase = exp(1j * ( k * sin(el) * cos(az) * dx * nx + k * sin(el) * sin(az) * dy * ny )); 44 | out = W(ny + 1 + Ny * nx) * phase + out; 45 | end 46 | end 47 | out = abs(out)^2; 48 | 49 | end 50 | 51 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/common/polarization.m: -------------------------------------------------------------------------------- 1 | % /************************************************************************************* 2 | % Intel Corp. 3 | % 4 | % Project Name: Conference Room Channel Model 5 | % File Name: polarization.m 6 | % Authors: A. Lomayev, R. Maslennikov 7 | % Version: 1.0 8 | % History: May 2010 created 9 | % 10 | % ************************************************************************************* 11 | % Description: 12 | % 13 | % function returns Jones vector describing antenna polarization in 14 | % accordance with polarization type parameter 15 | % 16 | % [pol_vec] = polarization(pol) 17 | % 18 | % Outputs: 19 | % 20 | % 1. pol_vec - Jones vector describing antenna polarization 21 | % 22 | % Inputs: 23 | % 24 | % 1. pol - parameter selects polarization type 25 | % 26 | % *************************************************************************************/ 27 | function [pol_vec] = polarization(pol) 28 | 29 | switch (pol) 30 | case 0, % linear in theta direction 31 | pol_vec = [1;0]; 32 | case 1, % linear in thi direction 33 | pol_vec = [0;1]; 34 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+gpu/+internal/@AbstractClutterSimulator/private/privSteeringVec.m: -------------------------------------------------------------------------------- 1 | function sv = privSteeringVec(posx, posy, posz, freq,c,azang, elang) 2 | %PRIVSTEERINGVEC 3 | % Computes the steering vector. For use with gpuArray/arrayfun 4 | 5 | % Copyright 2012 The MathWorks, Inc. 6 | 7 | % angles defined in local coordinate system 8 | % angles expected in radians. 9 | 10 | 11 | 12 | cdel = -cos(elang); 13 | sdel = sin(elang); 14 | cdaz = cos(azang); 15 | sdaz = sin(azang); 16 | 17 | 18 | incidentdirx = cdel*cdaz; 19 | incidentdiry = cdel*sdaz; 20 | incidentdirz = -sdel; 21 | 22 | tau = posx*incidentdirx + ... 23 | posy*incidentdiry + ... 24 | posz*incidentdirz; 25 | 26 | tau = tau/c; 27 | 28 | sv = exp(-1i*2*pi*freq*tau); 29 | 30 | 31 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+gpu/+internal/decomposeCube.m: -------------------------------------------------------------------------------- 1 | function idx = decomposeCube(numax1, numax2, numax3) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % idx = DECOMPOSECUBE(numax1, numax2, numax3) Takes the number of elements 5 | % in the three axes of a cube (for example rows, columns and pages) and 6 | % returns a cell array of indices idx that divide the cube into nearly 7 | % equal chunks along the third axis -numax3. The maximum chunk size (in 8 | % terms of elements) are controlled by a constant below. 9 | 10 | 11 | %Constants 12 | CHUNKMAXSIZE = 10e6; 13 | 14 | sliceSize = numax1 * numax2; 15 | 16 | 17 | slicesPerChunk = max( floor(CHUNKMAXSIZE /sliceSize), 1); 18 | 19 | minChunks = ceil(numax3/slicesPerChunk); 20 | 21 | chunkSizes = zeros(1,minChunks); 22 | chunkSizes(:) = floor(numax3/minChunks); 23 | chunkSizes(1:rem(numax3,minChunks)) = ceil(numax3/minChunks); 24 | 25 | %Build the start and end indexes using prefix sums 26 | endIdx = cumsum(chunkSizes); 27 | startIdx = endIdx + 1 - chunkSizes; 28 | 29 | %Build the cell array of indices using the colon function 30 | idx = arrayfun(@colon, startIdx, endIdx, 'UniformOutput', false); -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+gpu/@ConstantGammaClutter/private/flattenGroupsAndMoveSensorToTop.m: -------------------------------------------------------------------------------- 1 | function group = flattenGroupsAndMoveSensorToTop(propName,groups) 2 | % Flatten property groups into one group, and move the named 3 | % property first. 4 | propertyList = [groups.PropertyList]; 5 | propNameIdx = strcmp(propName,propertyList); 6 | group = matlab.mixin.util.PropertyGroup([propName,propertyList(~propNameIdx)]); 7 | end 8 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+gpu/@ConstantGammaClutter/private/privDopplerShift.m: -------------------------------------------------------------------------------- 1 | function currentclutter = privDopplerShift(time, timeoffset, sampRate, patchDoppler, clutterpatch) 2 | %PRIVDOPPLERSHIFT 3 | % Computes the Doppler Shift. For use with gpuArray/arrayfun 4 | 5 | % Copyright 2012 The MathWorks, Inc. 6 | 7 | t = time/sampRate + timeoffset; 8 | currentclutter = clutterpatch * exp(1i*2*pi*patchDoppler*t); 9 | 10 | 11 | 12 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+gpu/@ConstantGammaClutter/private/privSteeringVec.m: -------------------------------------------------------------------------------- 1 | function sv = privSteeringVec(posx, posy, posz, freq,c,azang, elang) 2 | %PRIVSTEERINGVEC 3 | % Computes the steering vector. For use with gpuArray/arrayfun 4 | 5 | % Copyright 2012 The MathWorks, Inc. 6 | 7 | % angles defined in local coordinate system 8 | % angles expected in radians. 9 | 10 | 11 | 12 | cdel =-cos(elang); 13 | sdel =sin(elang); 14 | cdaz =cos(azang); 15 | sdaz =sin(azang); 16 | 17 | 18 | incidentdirx = cdel*cdaz; 19 | incidentdiry = cdel*sdaz; 20 | incidentdirz = -sdel; 21 | 22 | tau = posx*incidentdirx + ... 23 | posy*incidentdiry + ... 24 | posz*incidentdirz; 25 | 26 | tau = tau/c; 27 | 28 | sv = exp(-1i*2*pi*freq*tau); 29 | 30 | 31 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+gpu/@ConstantGammaClutter/validateSampleRate.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+gpu/@ConstantGammaClutter/validateSampleRate.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/+BackscatterBicyclist/getBicyclistFrameAndRiderUpperBody.m: -------------------------------------------------------------------------------- 1 | function [frameAndRiderUpperBody,mounts] = getBicyclistFrameAndRiderUpperBody(spacing) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % Copyright 2019 The MathWorks, Inc. 5 | 6 | %#codegen 7 | 8 | % Setup bicycle frame 9 | [frameScatterers,rearWheelMountPos,pedalMountPos] = phased.internal.BackscatterBicyclist.getBicyclistFrame(spacing); 10 | 11 | % Define cyclist body 12 | [riderUpperBodyScatterers,hipMountPos] = phased.internal.BackscatterBicyclist.getBicyclistRiderUpperBody(frameScatterers,spacing); 13 | 14 | % Assign stationary bicycle scatterers 15 | frameAndRiderUpperBody = [frameScatterers... 16 | riderUpperBodyScatterers]; 17 | 18 | % Assign mount outputs 19 | mounts.FrontWheel = [0; 0; 0]; 20 | mounts.RearWheel = rearWheelMountPos; 21 | mounts.Pedals = pedalMountPos; 22 | mounts.Hip = hipMountPos; 23 | 24 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/+BackscatterBicyclist/getBicyclistLegAngles.m: -------------------------------------------------------------------------------- 1 | function [angUpperL,angLowerL,angUpperR,angLowerR] = getBicyclistLegAngles(spacing,mounts,upperLegVec,lowerLegVec) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % Copyright 2019 The MathWorks, Inc. 5 | 6 | %#codegen 7 | 8 | 9 | %% Left leg 10 | % Intersect Circles 11 | distHipToFootLeft = norm(mounts.Hip(:,1)-mounts.Feet(:,1)); 12 | R = distHipToFootLeft; 13 | x1 = mounts.Hip(1,1); 14 | z1 = mounts.Hip(3,1); 15 | r1 = upperLegVec(end); 16 | x2 = mounts.Feet(1,1); 17 | z2 = mounts.Feet(3,1); 18 | r2 = lowerLegVec(end)+spacing; 19 | [xLknee,zLknee] = intersectCircles(R,r1,x1,z1,r2,x2,z2); 20 | angUpperL = atan((mounts.Hip(3,1)-zLknee)/(mounts.Hip(1,1)-xLknee)); 21 | angLowerL = atan((zLknee-mounts.Feet(3,1))/(xLknee-mounts.Feet(1,1))); 22 | 23 | 24 | %% Right leg 25 | % Intersect Circles 26 | distHipToFootRight = norm(mounts.Hip(:,2)-mounts.Feet(:,2)); 27 | R = distHipToFootRight; 28 | x1 = mounts.Hip(1,2); 29 | z1 = mounts.Hip(3,2); 30 | r1 = upperLegVec(end); 31 | x2 = mounts.Feet(1,2); 32 | z2 = mounts.Feet(3,2); 33 | r2 = lowerLegVec(end)+spacing; 34 | [xRknee,zRknee] = intersectCircles(R,r1,x1,z1,r2,x2,z2); 35 | angUpperR = atan((mounts.Hip(3,2)-zRknee)/(mounts.Hip(1,2)-xRknee)); 36 | angLowerR = atan((zRknee-mounts.Feet(3,2))/(xRknee-mounts.Feet(1,2))); 37 | end 38 | 39 | 40 | %% Supporting functions 41 | function [x,y] = intersectCircles(R,r1,x1,y1,r2,x2,y2) 42 | % Find intersection of two circles to find location of knee 43 | a = 1/2; 44 | b = (r1^2-r2^2)/(2*R^2); 45 | c = 1/2*sqrt(2*(r1^2+r2^2)/(R^2)-(r1^2-r2^2)^2/(R^4)-1); 46 | x = a*(x1+x2)+b*(x2-x1)-c*(y2-y1); 47 | y = a*(y1+y2)+b*(y2-y1)-c*(x1-x2); 48 | end 49 | 50 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/+BackscatterBicyclist/getBicyclistPedals.m: -------------------------------------------------------------------------------- 1 | function [initialPosition,mounts] = getBicyclistPedals(spacing,mounts) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % Copyright 2019 The MathWorks, Inc. 5 | 6 | %#codegen 7 | 8 | %% Initialize 9 | pedalBarLength = 0.2; 10 | nPtsPedalBar = ceil(pedalBarLength/spacing)+1; 11 | pedalLength = 0.125; 12 | nPtsPedal = ceil(pedalLength/spacing)+1; % Number of points for each pedal 13 | 14 | nPtsTotal = nPtsPedalBar + 2*nPtsPedal; 15 | initialPosition = zeros(3,nPtsTotal); 16 | 17 | %% Build 18 | % Pedal bar 19 | posPedalBar = zeros(3,nPtsPedalBar); 20 | posPedalBar(1,:) = linspace(-pedalBarLength/2,pedalBarLength/2,nPtsPedalBar); 21 | initialPosition(:,1:nPtsPedalBar) = posPedalBar; 22 | idxLast = nPtsPedalBar; 23 | 24 | % Pedals 25 | posPedals = zeros(3,nPtsPedal*2); 26 | posPedals(1,:) = [posPedalBar(1,1).*ones(1,nPtsPedal) posPedalBar(1,end).*ones(1,nPtsPedal)]; 27 | posPedals(2,:) = [(1:nPtsPedal).*pedalLength./(nPtsPedal) -(1:nPtsPedal).*pedalLength./(nPtsPedal)]; 28 | initialPosition(:,idxLast+1:idxLast+2*nPtsPedal) = posPedals; 29 | 30 | % Pedal mount position for lower leg 31 | mounts.Feet = [ [posPedals(1,nPtsPedal); posPedals(2,nPtsPedal); posPedals(3,nPtsPedal)] ... 32 | [posPedals(1,2*nPtsPedal); posPedals(2,2*nPtsPedal); posPedals(3,2*nPtsPedal)] ]; 33 | mounts.IdxFeet = [idxLast+nPtsPedal,idxLast+2*nPtsPedal]; 34 | 35 | %% Mount 36 | % Move pedals to pedal mounting position 37 | initialPosition = bsxfun(@plus,initialPosition,mounts.Pedals); 38 | 39 | % Move feet to the position of the pedal 40 | mounts.Feet = bsxfun(@plus,mounts.Feet,mounts.Pedals); 41 | 42 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/+BackscatterBicyclist/getWireSpokedWheel.m: -------------------------------------------------------------------------------- 1 | function initialPosition = getWireSpokedWheel(wheelDiameter,numWheelSpokes,spacing) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % Copyright 2019 The MathWorks, Inc. 5 | 6 | %#codegen 7 | 8 | %% Initial Position 9 | % Local origin is center of wheel 10 | r = wheelDiameter/2; 11 | nRadii = floor(r/spacing)+1; 12 | radius = r:-spacing:(r-(nRadii-1)*spacing); 13 | nPoints = [round(2*pi*radius(1)/spacing)*2 numWheelSpokes*ones(1,numel(radius)-1)]; 14 | initialPosition = zeros(3,sum(nPoints)); 15 | 16 | % Define indices 17 | startIndices = zeros(size(nPoints)); 18 | endIndices = zeros(size(nPoints)); 19 | for m = 1:numel(radius) 20 | if m == 1 21 | startIndices(m) = 1; 22 | else 23 | startIndices(m) = endIndices(m-1)+1; 24 | end 25 | endIndices(m) = (startIndices(m)-1)+nPoints(m); 26 | end 27 | 28 | % Define inner circles 29 | for m = 1:numel(radius) 30 | res = 360/nPoints(m); 31 | theta = 0:res:(360-res); 32 | initialPosition(1,startIndices(m):endIndices(m)) = radius(m).*cosd(theta); % x-coordinate 33 | initialPosition(3,startIndices(m):endIndices(m)) = radius(m).*sind(theta); % z-coordinate 34 | end 35 | 36 | end 37 | 38 | 39 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractAntennaElement.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden) AbstractAntennaElement < phased.internal.AbstractElement 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %AbstractAntennaElement Define the AbstractAntennaElement class. 5 | 6 | % Copyright 2009-2011 The MathWorks, Inc. 7 | % 8 | 9 | 10 | %#ok<*EMCLS> 11 | %#codegen 12 | 13 | methods (Access = protected) 14 | 15 | function obj = AbstractAntennaElement(varargin) 16 | %AbstractAntenna Construct the AbstractAntenna class. 17 | obj@phased.internal.AbstractElement(varargin{:}); 18 | end 19 | end 20 | 21 | methods (Abstract, Hidden) 22 | %This method is used by the array to compute the response of the 23 | %antenna element at all combinations of Azimuth, az, and Elevation, 24 | %el, angles. This is only used in a GPU simulation. 25 | epat = getgpuElemResponse(obj, az, el, freq); 26 | end 27 | end 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractMicrophoneElement.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden) AbstractMicrophoneElement < phased.internal.AbstractElement 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %AbstractMicrophoneElement Define the AbstractMicrophoneElement class. 5 | 6 | % Copyright 2010-2011 The MathWorks, Inc. 7 | % 8 | 9 | 10 | %#ok<*EMCLS> 11 | %#ok<*EMCA> 12 | %#codegen 13 | 14 | methods (Access = protected) 15 | 16 | function obj = AbstractMicrophoneElement(varargin) 17 | obj@phased.internal.AbstractElement(varargin{:}); 18 | obj.pIsOutputComplex = false; 19 | end 20 | end 21 | 22 | end 23 | 24 | 25 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractNarrowbandArrayProcessing.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden) AbstractNarrowbandArrayProcessing < phased.internal.AbstractArrayOperation 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %AbstractNarrowbandArrayProcessing Define the AbstractNarrowbandArrayProcessing class. 5 | 6 | % Copyright 2010-2013 The MathWorks, Inc. 7 | 8 | 9 | %#ok<*EMCLS> 10 | %#ok<*EMCA> 11 | %#codegen 12 | 13 | properties (Nontunable) 14 | 15 | %OperatingFrequency Operating frequency (Hz) 16 | % Specify the operating frequency (in Hz) of the system as a 17 | % scalar. The default value of this property is 3e8, i.e., 300 18 | % MHz. 19 | OperatingFrequency = 3e8; 20 | end 21 | 22 | methods (Access = protected) 23 | 24 | function obj = AbstractNarrowbandArrayProcessing(varargin) 25 | 26 | obj@phased.internal.AbstractArrayOperation(varargin{:}); 27 | 28 | end 29 | 30 | end 31 | 32 | methods 33 | 34 | function set.OperatingFrequency(obj,val) 35 | 36 | sigdatatypes.validateFrequency(val,'phased.internal',... 37 | 'OperatingFrequency',{'double','single'},{'scalar'}); 38 | obj.OperatingFrequency = val; 39 | end 40 | end 41 | 42 | methods (Static,Hidden,Access=protected) 43 | function groups = getPropertyGroupsImpl(sensorType) 44 | groups = getPropertyGroupsImpl@phased.internal.AbstractArrayOperation(sensorType); 45 | props = 'OperatingFrequency'; 46 | groups(1).PropertyList = [groups(1).PropertyList props]; 47 | end 48 | end 49 | end 50 | 51 | 52 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractSampleRateEngine.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractSampleRateEngine.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractSonarTarget.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden) AbstractSonarTarget < phased.internal.AbstractTarget 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %ABSTRACTSONARTARGET Define the ABSTRACTSONARTARGET class 5 | % This is an abstract class in support of SONAR target functionality. 6 | 7 | % Copyright 2015-2017 The MathWorks, Inc. 8 | 9 | %#ok<*EMCLS> 10 | %#ok<*EMCA> 11 | %#codegen 12 | 13 | properties(Access = protected) 14 | % Private flag for whether pTS needs to be initialized 15 | pNeedTSInit; 16 | end 17 | 18 | methods (Access = protected) 19 | function obj = AbstractSonarTarget(varargin) 20 | obj = obj@phased.internal.AbstractTarget(varargin{:}); 21 | end 22 | end 23 | 24 | methods (Access = protected) 25 | 26 | function resetImpl(obj) 27 | resetImpl@phased.internal.AbstractTarget(obj); 28 | if obj.pFluctuate 29 | obj.pNeedTSInit = true; 30 | else 31 | obj.pNeedTSInit = false; 32 | end 33 | end 34 | 35 | function s = saveObjectImpl(obj) 36 | s = saveObjectImpl@phased.internal.AbstractTarget(obj); 37 | if isLocked(obj) 38 | s.pNeedTSInit = obj.pNeedTSInit; 39 | end 40 | end 41 | end 42 | 43 | end 44 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractVarSizeEngine.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AbstractVarSizeEngine.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/AngleDopplerPatternPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) AngleDopplerPatternPlotOption < phased.internal.AbstractRespPatternPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %AngleDopplerPatternPlotOption Define the AngleDopplerPatternPlotOption class. 5 | 6 | % Copyright 2009-2011 The MathWorks, Inc. 7 | % 8 | 9 | properties 10 | 11 | NormalizeDoppler = true; 12 | end 13 | 14 | methods 15 | 16 | function this = AngleDopplerPatternPlotOption(varargin) 17 | %AngleDopplerPatternPlotOption Construct the 18 | %AngleDopplerPatternPlotOption class. 19 | this.Title = 'Angle-Doppler Response Pattern'; 20 | initPropValuePairs(this,varargin{:}); 21 | 22 | end 23 | 24 | end 25 | 26 | methods (Access = protected) 27 | function limlabel = getLimLabel(this) %#ok 28 | limlabel = 'CLim'; 29 | end 30 | 31 | function datalim = getDataLimit(this,hplotobj) %#ok 32 | for m = numel(hplotobj):-1:1 33 | data = get(hplotobj(m),'CData'); 34 | templim(m,:) = [min(data(:)) max(data(:))]; 35 | end 36 | datalim = [min(templim(:,1)),max(templim(:,2))]; 37 | end 38 | 39 | end 40 | 41 | methods 42 | 43 | function set.NormalizeDoppler(this,val) 44 | validateattributes(val,{'logical'},{'scalar'},... 45 | sprintf('%s.NormalizeDoppler',class(this)),'NormalizeDoppler'); 46 | this.NormalizeDoppler = val; 47 | end 48 | end 49 | 50 | end 51 | 52 | % [EOF] 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/Contents.m: -------------------------------------------------------------------------------- 1 | function Contents 2 | % This is a package for internal use only. The contents in this package may 3 | % be modified or removed without notification. 4 | 5 | % Copyright 2010 The MathWorks, Inc. 6 | 7 | 8 | 9 | % [EOF] 10 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/DirectivityPattern2DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) DirectivityPattern2DPlotOption < phased.internal.AbstractRespPattern2DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %DirectivityPattern2DPlotOption Define the DirectivityPattern2DPlotOption class. 5 | 6 | % Copyright 2013 The MathWorks, Inc. 7 | 8 | properties (Constant) 9 | BroadsideOrientation = 0; 10 | end 11 | 12 | properties 13 | PlotType = 'plot'; 14 | end 15 | 16 | methods 17 | 18 | function this = DirectivityPattern2DPlotOption(varargin) 19 | initPropValuePairs(this,varargin{:}); 20 | this.Units = 'db'; 21 | this.NormalizeResp = false; 22 | end 23 | 24 | function response = privRespPattern(obj,response) %#ok 25 | %PRIVRESPPATTERN Prepare response pattern 26 | % PRIVRESPPATTERN is a protected method which prepares the 27 | % response pattern object for plotting. 28 | 29 | % no op, Directivity is always unnormalized, in dB 30 | end 31 | 32 | function set.PlotType(obj,val) 33 | val = validatestring(val,{'plot','polar','waterfall'},... 34 | sprintf('%s.PlotType',class(obj)),'PlotType'); 35 | obj.PlotType = val; 36 | end 37 | end 38 | 39 | methods (Access = protected) 40 | function unitlbl = getUnitLabel(obj) %#ok 41 | unitlbl = 'Directivity (dBi)'; 42 | end 43 | end 44 | 45 | end 46 | 47 | % [EOF] 48 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/DirectivityPattern3DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) DirectivityPattern3DPlotOption < phased.internal.AbstractRespPattern3DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %DirectivityPattern3DPlotOption Define the DirectivityPattern3DPlotOption class. 5 | 6 | % Copyright 2013 The MathWorks, Inc. 7 | % 8 | 9 | methods 10 | 11 | function this = DirectivityPattern3DPlotOption(varargin) 12 | %DirectivityPattern3DPlotOption Construct the 13 | %DirectivityPattern3DPlotOption class. 14 | this@phased.internal.AbstractRespPattern3DPlotOption(varargin{:}); 15 | this.Units = 'db'; % directivity always in db 16 | this.NormalizeResp = false; % directivity does not normalize 17 | this.Title = '3D Directivity Pattern'; 18 | 19 | end 20 | 21 | function response = privRespPattern(obj,response) %#ok 22 | %PRIVRESPPATTERN Prepare response pattern 23 | % PRIVRESPPATTERN is a protected method which prepares the 24 | % response pattern object for plotting. 25 | 26 | % no op, Directivity is always unnormalized, in dB 27 | end 28 | 29 | end 30 | 31 | methods (Access = protected) 32 | function unitlbl = getUnitLabel(obj) %#ok 33 | unitlbl = 'Directivity (dBi)'; 34 | end 35 | end 36 | 37 | end 38 | 39 | % [EOF] 40 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/DirectivityPatternUV2DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) DirectivityPatternUV2DPlotOption < phased.internal.AbstractRespPattern2DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %DirectivityPatternUV2DPlotOption Define the DirectivityPatternUV2DPlotOption class. 5 | 6 | % Copyright 2013 The MathWorks, Inc. 7 | 8 | properties 9 | PlotType = 'plot'; 10 | end 11 | 12 | methods 13 | 14 | function this = DirectivityPatternUV2DPlotOption(varargin) 15 | initPropValuePairs(this,varargin{:}); 16 | this.Units = 'dB'; % directivity is in dB 17 | this.NormalizeResp = false; % directivity does not normalize 18 | end 19 | 20 | function response = privRespPattern(obj,response) %#ok 21 | %PRIVRESPPATTERN Prepare response pattern 22 | % PRIVRESPPATTERN is a protected method which prepares the 23 | % response pattern object for plotting. 24 | 25 | % no op, Directivity is always unnormalized, in dB 26 | end 27 | 28 | function set.PlotType(obj,val) 29 | val = validatestring(val,{'plot','waterfall'},... 30 | sprintf('%s.PlotType',class(obj)),'PlotType'); 31 | obj.PlotType = val; 32 | end 33 | end 34 | 35 | methods (Access = protected) 36 | function unitlbl = getUnitLabel(obj) %#ok 37 | unitlbl = 'Directivity (dBi)'; 38 | end 39 | end 40 | 41 | end 42 | 43 | % [EOF] 44 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/DirectivityPatternUV3DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) DirectivityPatternUV3DPlotOption < phased.internal.AbstractRespPatternUV3DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %DirectivityPatternUV3DPlotOption Define the DirectivityPatternUV3DPlotOption class. 5 | 6 | % Copyright 2009-2013 The MathWorks, Inc. 7 | 8 | methods 9 | 10 | function this = DirectivityPatternUV3DPlotOption(varargin) 11 | 12 | this@phased.internal.AbstractRespPatternUV3DPlotOption(varargin{:}) 13 | this.Units = 'db'; % directivity always in db 14 | this.NormalizeResp = false; % directivity does not normalize 15 | this.Title = '3D Directivity Pattern in u-v space'; 16 | 17 | end 18 | 19 | function response = privRespPattern(obj,response) %#ok 20 | %PRIVRESPPATTERN Prepare response pattern 21 | % PRIVRESPPATTERN is a protected method which prepares the 22 | % response pattern object for plotting. 23 | 24 | % no op, Directivity is always unnormalized, in dB 25 | end 26 | 27 | end 28 | 29 | methods (Access = protected) 30 | function unitlbl = getUnitLabel(obj) %#ok 31 | unitlbl = 'Directivity (dBi)'; 32 | end 33 | end 34 | end 35 | 36 | % [EOF] 37 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/GridSpacingProperty.m: -------------------------------------------------------------------------------- 1 | classdef GridSpacingProperty < matlab.system.display.internal.Property 2 | %phased.internal.GridSpacingProperty Reserved for MathWorks internal use only 3 | 4 | % Copyright 2014 The MathWorks, Inc. 5 | 6 | methods 7 | function obj = GridSpacingProperty(varargin) 8 | obj@matlab.system.display.internal.Property(varargin{:}); 9 | end 10 | 11 | function addDialogValue(obj, paramValue, builder) 12 | 13 | % GridSpacing acts like a string literal if value is 'Auto' 14 | % but otherwise it acts like a numerical property 15 | if strcmp(paramValue, 'Auto') 16 | builder.addStringParameterValue(obj.Name, 'Auto'); 17 | else 18 | builder.addLiteralParameterValue(obj.Name, paramValue); 19 | end 20 | end 21 | 22 | function addParsedExpression(obj, expression, builder) 23 | if strcmp(expression, '''Auto''') 24 | expression = 'Auto'; 25 | end 26 | obj.addDialogValue(expression, builder); 27 | end 28 | end 29 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/PSTCustomSettings.m: -------------------------------------------------------------------------------- 1 | classdef (Sealed) PSTCustomSettings < handle 2 | 3 | % Copyright 2019 The MathWorks, Inc. 4 | 5 | properties 6 | % This property indicates whether MATLAB is running on MOTW. This flag 7 | % is set to true at startup of a MOTW session. 8 | MOTW = false; 9 | end 10 | 11 | methods (Access = private) 12 | function obj = PSTCustomSettings 13 | % Private constructor, this class can only be instantiated by calling 14 | % one of its methods. 15 | end 16 | end 17 | 18 | methods (Static) 19 | function singleObj = getInstance 20 | mlock 21 | persistent obj 22 | if isempty(obj) || ~isvalid(obj) 23 | obj = phased.internal.PSTCustomSettings; 24 | end 25 | singleObj = obj; 26 | end 27 | 28 | function setMOTWFlag(flag) 29 | obj = phased.internal.PSTCustomSettings.getInstance; 30 | obj.MOTW = flag; 31 | end 32 | 33 | function flag = isMOTW 34 | obj = phased.internal.PSTCustomSettings.getInstance; 35 | flag = obj.MOTW; 36 | end 37 | end 38 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RangeAnglePatternPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RangeAnglePatternPlotOption < phased.internal.AbstractRespPatternPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RangeDopplerPatternPlotOption Define the RangeDopplerPatternPlotOption class. 5 | 6 | % Copyright 2018 The MathWorks, Inc. 7 | % 8 | 9 | properties 10 | Style = 'rectangular' 11 | end 12 | 13 | methods 14 | 15 | function this = RangeAnglePatternPlotOption(varargin) 16 | %RangeDopplerPatternPlotOption Construct the 17 | %RangeDopplerPatternPlotOption class. 18 | this.Title = 'Range-Angle Response Pattern'; 19 | initPropValuePairs(this,varargin{:}); 20 | 21 | end 22 | 23 | end 24 | 25 | methods (Access = protected) 26 | function limlabel = getLimLabel(this) %#ok 27 | limlabel = 'CLim'; 28 | end 29 | 30 | function datalim = getDataLimit(this,hplotobj) %#ok 31 | for m = numel(hplotobj):-1:1 32 | data = get(hplotobj(m),'CData'); 33 | templim(m,:) = [min(data(:)) max(data(:))]; 34 | end 35 | datalim = [min(templim(:,1)),max(templim(:,2))]; 36 | end 37 | 38 | end 39 | 40 | 41 | end 42 | 43 | % [EOF] 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RangeDopplerPatternPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RangeDopplerPatternPlotOption < phased.internal.AbstractRespPatternPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RangeDopplerPatternPlotOption Define the RangeDopplerPatternPlotOption class. 5 | 6 | % Copyright 2012 The MathWorks, Inc. 7 | % 8 | 9 | properties 10 | 11 | NormalizeDoppler = true; 12 | end 13 | 14 | methods 15 | 16 | function this = RangeDopplerPatternPlotOption(varargin) 17 | %RangeDopplerPatternPlotOption Construct the 18 | %RangeDopplerPatternPlotOption class. 19 | this.Title = 'Range-Doppler Response Pattern'; 20 | initPropValuePairs(this,varargin{:}); 21 | 22 | end 23 | 24 | end 25 | 26 | methods (Access = protected) 27 | function limlabel = getLimLabel(this) %#ok 28 | limlabel = 'CLim'; 29 | end 30 | 31 | function datalim = getDataLimit(this,hplotobj) %#ok 32 | for m = numel(hplotobj):-1:1 33 | data = get(hplotobj(m),'CData'); 34 | templim(m,:) = [min(data(:)) max(data(:))]; 35 | end 36 | datalim = [min(templim(:,1)),max(templim(:,2))]; 37 | end 38 | 39 | end 40 | 41 | methods 42 | 43 | function set.NormalizeDoppler(this,val) 44 | validateattributes(val,{'logical'},{'scalar'},... 45 | sprintf('%s.NormalizeDoppler',class(this)),'NormalizeDoppler'); 46 | this.NormalizeDoppler = val; 47 | end 48 | end 49 | 50 | end 51 | 52 | % [EOF] 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RangePatternPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RangePatternPlotOption < phased.internal.AbstractRespPatternPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RangePatternPlotOption Define the RangePatternPlotOption class. 5 | 6 | % Copyright 2016 The MathWorks, Inc. 7 | % 8 | 9 | methods 10 | 11 | function this = RangePatternPlotOption(varargin) 12 | %RangePatternPlotOption Construct the 13 | %RangePatternPlotOption class. 14 | this.Title = 'Range Response Pattern'; 15 | initPropValuePairs(this,varargin{:}); 16 | 17 | end 18 | 19 | end 20 | 21 | methods (Access = protected) 22 | function limlabel = getLimLabel(this) %#ok 23 | limlabel = 'YLim'; 24 | end 25 | 26 | function datalim = getDataLimit(this,hplotobj) %#ok 27 | for m = numel(hplotobj):-1:1 28 | data = get(hplotobj(m),'YData'); 29 | templim(m,:) = [min(data(:)) max(data(:))]; 30 | end 31 | datalim = [min(templim(:,1)),max(templim(:,2))]; 32 | end 33 | 34 | end 35 | 36 | end 37 | 38 | % [EOF] 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RangeSpeedPatternPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RangeSpeedPatternPlotOption < phased.internal.AbstractRespPatternPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RangeSpeedPatternPlotOption Define the RangeSpeedPatternPlotOption class. 5 | 6 | % Copyright 2012 The MathWorks, Inc. 7 | % 8 | 9 | methods 10 | 11 | function this = RangeSpeedPatternPlotOption(varargin) 12 | %RangeSpeedPatternPlotOption Construct the 13 | %RangeSpeedPatternPlotOption class. 14 | this.Title = 'Range-Speed Response Pattern'; 15 | initPropValuePairs(this,varargin{:}); 16 | 17 | end 18 | 19 | end 20 | 21 | methods (Access = protected) 22 | function limlabel = getLimLabel(this) %#ok 23 | limlabel = 'CLim'; 24 | end 25 | 26 | function datalim = getDataLimit(this,hplotobj) %#ok 27 | for m = numel(hplotobj):-1:1 28 | data = get(hplotobj(m),'CData'); 29 | templim(m,:) = [min(data(:)) max(data(:))]; 30 | end 31 | datalim = [min(templim(:,1)),max(templim(:,2))]; 32 | end 33 | 34 | end 35 | 36 | 37 | end 38 | 39 | % [EOF] 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RespPattern2DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RespPattern2DPlotOption < phased.internal.AbstractRespPattern2DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RespPattern2DPlotOption Define the RespPattern2DPlotOption class. 5 | 6 | % Copyright 2009-2011 The MathWorks, Inc. 7 | 8 | properties (Constant) 9 | BroadsideOrientation = 0; 10 | end 11 | 12 | properties 13 | PlotType = 'plot'; 14 | end 15 | 16 | methods 17 | 18 | function this = RespPattern2DPlotOption(varargin) 19 | initPropValuePairs(this,varargin{:}); 20 | end 21 | 22 | function set.PlotType(obj,val) 23 | val = validatestring(val,{'plot','polar','waterfall'},... 24 | sprintf('%s.PlotType',class(obj)),'PlotType'); 25 | obj.PlotType = val; 26 | end 27 | end 28 | 29 | end 30 | 31 | % [EOF] 32 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RespPattern3DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RespPattern3DPlotOption < phased.internal.AbstractRespPattern3DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RespPattern3DPlotOption Define the RespPattern3DPlotOption class. 5 | 6 | % Copyright 2009-2013 The MathWorks, Inc. 7 | % 8 | 9 | methods 10 | 11 | function obj = RespPattern3DPlotOption(varargin) 12 | %RespPattern3DPlotOption Construct the 13 | %RespPattern3DPlotOption class. 14 | obj.Title = '3D Response Pattern'; 15 | initPropValuePairs(obj,varargin{:}); 16 | 17 | end 18 | 19 | end 20 | 21 | end 22 | 23 | % [EOF] 24 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RespPatternUV2DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RespPatternUV2DPlotOption < phased.internal.AbstractRespPattern2DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RespPatternUV2DPlotOption Define the RespPatternUV2DPlotOption class. 5 | 6 | % Copyright 2009-2011 The MathWorks, Inc. 7 | 8 | properties 9 | PlotType = 'plot'; 10 | end 11 | 12 | methods 13 | 14 | function this = RespPatternUV2DPlotOption(varargin) 15 | initPropValuePairs(this,varargin{:}); 16 | end 17 | 18 | function set.PlotType(obj,val) 19 | val = validatestring(val,{'plot','waterfall'},... 20 | sprintf('%s.PlotType',class(obj)),'PlotType'); 21 | obj.PlotType = val; 22 | end 23 | end 24 | 25 | end 26 | 27 | % [EOF] 28 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/RespPatternUV3DPlotOption.m: -------------------------------------------------------------------------------- 1 | classdef (Hidden,Sealed) RespPatternUV3DPlotOption < phased.internal.AbstractRespPatternUV3DPlotOption 2 | %This class is for internal use only. It may be removed in the future. 3 | 4 | %RespPatternUV3DPlotOption Define the RespPatternUV3DPlotOption class. 5 | 6 | % Copyright 2009-2013 The MathWorks, Inc. 7 | 8 | methods 9 | 10 | function this = RespPatternUV3DPlotOption(varargin) 11 | 12 | this@phased.internal.AbstractRespPatternUV3DPlotOption(varargin{:}) 13 | this.Title = '3D Response Pattern in u-v space'; 14 | 15 | end 16 | 17 | end 18 | 19 | end 20 | 21 | % [EOF] 22 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/arbazel2azel.m: -------------------------------------------------------------------------------- 1 | function azel = arbazel2azel(azel_in) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %ARBAZEL2AZEL Convert arbitrary az/el angles to standard az/el angles 5 | % AZEL = phased.internal.arbazel2azel(AZEL_IN) converts the arbitrary 6 | % [azimuth; elevation] angles (in degrees) specified in AZEL_IN to 7 | % standard [azimuth; elevation] angles (in degrees) AZEL where azimuth is 8 | % within [-180 180] and elevation is within [-90 90]. AZEL_In is a 2-row 9 | % matrix whose columns represents az/el angles and AZEL has the same 10 | % dimension as AZEL_IN. Columns in AZEL contain the standard az/el angles 11 | % corresponding to the az/el angles in AZEL_IN. 12 | % 13 | % % Example: 14 | % % Convert 360 degrees azimuth and 120 degrees elevation into standard 15 | % % azimuth elevation values. 16 | % 17 | % azel = phased.internal.arbazel2azel([360;120]) 18 | % 19 | % See also phased, azel2dirvec, dirvec2azel 20 | 21 | % Copyright 2015 The MathWorks, Inc. 22 | 23 | %#ok<*EMCA> 24 | %#codegen 25 | 26 | azel_in = phased.internal.deg2rad(azel_in); 27 | [th,phi] = cart2sph(... 28 | cos(azel_in(1,:)).*cos(azel_in(2,:)),... 29 | sin(azel_in(1,:)).*cos(azel_in(2,:)),... 30 | sin(azel_in(2,:))); 31 | azel = phased.internal.rad2deg([th;phi]); 32 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/azel2dirvec.m: -------------------------------------------------------------------------------- 1 | function dirvec = azel2dirvec(azel) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %AZEL2DIRVEC Convert azimuth/elevation angles to directional vectors 5 | % DIRVEC = phased.internal.azel2dirvec(AZEL) converts the angle specified 6 | % in AZEL of form [azimuth; elevation] (in degrees) to the corresponding 7 | % directional vector DIRVEC. AZEL is a 2-row matrix and DIRVEC is a 3-row 8 | % matrix whose columns contain the directional vectors of corresponding 9 | % angles in AZEL. 10 | % 11 | % The directional vector is defined as [cos(el)cos(az); cos(el)sin(az); 12 | % sin(el)]. 13 | % 14 | % % Example: 15 | % % Compute the directional vector corresponding to 45 degrees azimuth 16 | % % and 45 degrees elevation. 17 | % 18 | % dirvec = phased.internal.azel2dirvec([45;45]) 19 | % 20 | % See also phased, arbazel2azel, dirvec2azel 21 | 22 | % Copyright 2015 The MathWorks, Inc. 23 | 24 | %#ok<*EMCA> 25 | %#codegen 26 | 27 | azel = phased.internal.deg2rad(azel); 28 | dirvec = [cos(azel(2,:)).*cos(azel(1,:));... 29 | cos(azel(2,:)).*sin(azel(1,:));sin(azel(2,:))]; 30 | 31 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/azel2vec.m: -------------------------------------------------------------------------------- 1 | function [az_vec, el_vec] = azel2vec(azel) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %azel2vec Compute the direction vector for azimuth and elevation 5 | % [AZ_VEC, EL_VEC] = phased.internal.azelvec(AZEL) computes the 6 | % increasing direction vectors, AZ_VEC and EL_VEC, at azimuth and 7 | % elevation angles (in degrees) specified in AZEL. 8 | % 9 | % AZEL is a 2xN matrix whose columns are azimuth and elevation angle 10 | % pairs in the form of [az;el]. Azimuth angles must be between -180 and 11 | % 180 while elevation angles must be between -90 and 90. AZ_VEC and 12 | % EL_VEC are 3xN matrix whose columns represent the corresponding 13 | % direction vectors in azimuth and elevation directions, respectively. 14 | % The vectors are in the form of [x;y;z]. 15 | % 16 | % % Example: 17 | % % Determine the direction vectors at 0 degree azimuth and 45 degree 18 | % % elevation, as well as 45 degrees azimuth and 0 degrees elevation. 19 | % 20 | % [azvec, elvec] = phased.internal.azel2vec([0 45;45 0]) 21 | 22 | % Copyright 2012 The MathWorks, Inc. 23 | 24 | %#codegen 25 | 26 | theta = azel(2,:); 27 | phi = azel(1,:); 28 | el_vec = [-sind(theta).*cosd(phi);... 29 | -sind(theta).*sind(phi);cosd(theta)]; 30 | az_vec = [-sind(phi);cosd(phi);zeros(1,numel(phi))]; 31 | 32 | 33 | % [EOF] 34 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/azelcoord.m: -------------------------------------------------------------------------------- 1 | function M = azelcoord(az,el) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %azelcoord Coordinate system at azimuth and elevation direction 5 | % M = phased.internal.azelcoord(AZ,EL) returns the axes of coordinate 6 | % system, (az_hat, el_hat, r_hat), at the direction of (AZ,EL) (in 7 | % degrees) in the (x,y,z) system where az and el are defined. M is a 3x3 8 | % matrix whose columns represent the three axes, az_hat, el_hat, and 9 | % r_hat. AZ must be between -180 and 180. El must be between -90 and 90. 10 | % 11 | % The coordinate system is constructed at the direction of (AZ,EL). The 12 | % three axes are az_hat, the direction of increasing azimuth; el_hat, the 13 | % direction of increasing elevation; and r_hat, the increasing radial 14 | % direction. 15 | % 16 | % % Example: 17 | % % Determine the local coordinate system defined at the direction of 18 | % % 45 degrees azimuth and 0 degrees elevation. 19 | % 20 | % M = phased.internal.azelcoord(45,0) 21 | 22 | % Copyright 2012 The MathWorks, Inc. 23 | 24 | %#codegen 25 | 26 | % az: x->y 27 | % el: xy->z 28 | 29 | % M = [... 30 | % -sin(az_rad) cos(az_rad) 0;... 31 | % -sin(el_rad)*cos(az_rad) -sin(el_rad)*sin(az_rad) cos(el_rad);... 32 | % cos(el_rad)*cos(az_rad) cos(el_rad)*sin(az_rad) sin(el_rad)].'; 33 | 34 | r_vec = [cosd(el).*cosd(az) cosd(el).*sind(az) sind(el)].'; 35 | [az_vec, el_vec] = phased.internal.azel2vec([az;el]); 36 | 37 | M = [az_vec el_vec r_vec]; 38 | 39 | 40 | 41 | % [EOF] 42 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/backbaffle.m: -------------------------------------------------------------------------------- 1 | function g = backbaffle(g,ang) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %BACKBAFFLE Back baffle the response 5 | % G = phased.internal.backbaffle(R,ANG) back baffle the response R. R is 6 | % a length-M vector the original response before the back baffling. ANG 7 | % is a 2xM matrix whose columns are the angles where the corresponding 8 | % responses in R are measured. Each column in ANG is in the form of 9 | % [azimuth; elevation] (in degrees). G is a length-M vector containing 10 | % the response after the back baffling. After back baffling, responses 11 | % corresponding to the angles that are beyond +/- 90 degrees in azimuth 12 | % are set to 0. 13 | % 14 | % Note that the responses should be represented in linear scale. 15 | % 16 | % % Example: 17 | % % Back baffle a uniform response. 18 | % resp = [1 1 1 1 1]; 19 | % ang = [-91 -90 0 90 91;0 0 0 0 0]; 20 | % resp = phased.internal.backbaffle(resp,ang); 21 | 22 | % Copyright 2010-2016 The MathWorks, Inc. 23 | 24 | % set all azimuth beyond +/- 90 to 0 25 | % note elevation +/- 90 should not be set to 0 even if azimuth is beyond 26 | % +/- 90 because all elevation 90 is the same point. 27 | % Need tolerance to deal with numerical round-offs. 28 | 29 | %#codegen 30 | 31 | idx = phased.internal.isAngleAtBack(ang); 32 | g(idx) = 0; 33 | 34 | 35 | % [EOF] 36 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/barkercode.m: -------------------------------------------------------------------------------- 1 | function x = barkercode(Nchip) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %BARKERCODE Barker code 5 | % X = phased.internal.barkercode(M) returns an M-length Barker code in X. 6 | % M must be one of the following numbers: 2, 3, 4, 5, 7, 11, and 13. X is 7 | % a column vector. 8 | % 9 | % Example: 10 | % % Generate a 7-chip Barker code. 11 | % 12 | % x = phased.internal.barkercode(7); 13 | 14 | % Copyright 2011 The MathWorks, Inc. 15 | 16 | % Assume Nchip has been validated to be valid Barker code length 17 | 18 | %#codegen 19 | 20 | switch Nchip 21 | case 2 22 | x = [1 -1]; 23 | case 3 24 | x = [1 1 -1]; 25 | case 4 26 | x = [1 1 -1 1]; 27 | case 5 28 | x = [1 1 1 -1 1]; 29 | case 7 30 | x = [1 1 1 -1 -1 1 -1]; 31 | case 11 32 | x = [1 1 1 -1 -1 -1 1 -1 -1 1 -1]; 33 | case 13 34 | x = [1 1 1 1 1 -1 -1 1 1 -1 1 -1 1]; 35 | end 36 | 37 | x = x(:); 38 | 39 | 40 | % [EOF] 41 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/cel2kel.m: -------------------------------------------------------------------------------- 1 | function K = cel2kel(C) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % Copyright 2015 The MathWorks, Inc. 5 | 6 | %cel2kel Convert Celsius to Kelvin 7 | 8 | %#codegen 9 | %#ok<*EMCA> 10 | 11 | K = C+273.15; -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/computePlotPattern.m: -------------------------------------------------------------------------------- 1 | function response = computePlotPattern(response,normalizeflag,unit) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %computePlotPattern Compute the pattern to be plot 5 | % RESP_PLOT = computePlotPattern(RESP,NFLAG,UNIT) returns the response 6 | % pattern to be plot, RESP_PLOT based on the magnitude pattern, RESP, and 7 | % configurations such as normalization flag, NFLAG, and the pattern plot 8 | % unit, UNIT. 9 | 10 | % Copyright 2014 The MathWorks, Inc. 11 | 12 | if normalizeflag 13 | % response is already magnitude, so no abs needed 14 | maxresponse = max(max(response)); 15 | if maxresponse ~= 0 16 | response = response/maxresponse; 17 | end 18 | end 19 | 20 | switch unit 21 | case 'mag', % already mag. 22 | 23 | case {'pow','power'}, 24 | response = response.^2; 25 | 26 | case 'db', 27 | response = db(response); 28 | end 29 | 30 | end 31 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/cwgn.m: -------------------------------------------------------------------------------- 1 | function y = cwgn(N0,M,N,rs) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %CWGN Complex white Gaussian noise 5 | % y = phased.internal.cwgn(Pn) returns a complex white Gaussian noise 6 | % sample, y, whose noise power is specified in N0 (in Watts). 7 | % 8 | % y = phased.internal.cwgn(Pn, M) returns the noise samples in an Mx1 9 | % vector where M must be a positive integer. 10 | % 11 | % y = phased.internal.cwgn(Pn, M, N) returns the noise samples in an 12 | % M-by-N array. 13 | % 14 | % y = phased.internal.cwgn(..., RS) uses the random stream specified in 15 | % RS. 16 | % 17 | % Example: 18 | % % Create 10 samples of complex white Gaussian noise whose noise power 19 | % % is 2 watts. 20 | % x = phased.internal.cwgn(2,10) 21 | 22 | % Copyright 2010 The MathWorks, Inc. 23 | 24 | %#ok<*EMCLS> 25 | %#ok<*EMCA> 26 | %#codegen 27 | 28 | if nargin < 3 29 | N = 1; 30 | end 31 | 32 | if nargin < 2 33 | M = 1; 34 | end 35 | 36 | sigdatatypes.validateIndex(M,'phased.internal.cwgn','M',{'scalar'}); 37 | sigdatatypes.validateIndex(N,'phased.internal.cwgn','N',{'scalar'}); 38 | sigdatatypes.validatePower(N0,'phased.internal.cwgn','Pn',{'scalar'}); 39 | 40 | UseGlobalStream = true; 41 | if nargin > 3 42 | validateattributes(rs,{'RandStream'},{'scalar'},... 43 | 'phased.internal.cwgn','RS') 44 | UseGlobalStream = false; 45 | end 46 | 47 | if UseGlobalStream 48 | y = sqrt(N0/2)*complex(randn(M,N),randn(M,N)); 49 | else 50 | y = sqrt(N0/2)*complex(randn(rs,M,N),randn(rs,M,N)); 51 | end 52 | 53 | % [EOF] 54 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/dbtomag.m: -------------------------------------------------------------------------------- 1 | function out = dbtomag(in) 2 | %This function is used temporarily until constant timeouts are fixed 3 | 4 | % Copyright 2011-2012 The MathWorks, Inc. 5 | 6 | %#codegen 7 | 8 | coder.extrinsic('db2mag'); 9 | out = coder.internal.const(db2mag(in)); 10 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/deg2rad.m: -------------------------------------------------------------------------------- 1 | function angleInRadians = deg2rad(angleInDegrees) 2 | 3 | % Copyright 2009 The MathWorks, Inc. 4 | 5 | %#codegen 6 | 7 | angleInRadians = (pi/180) * angleInDegrees; 8 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/directivityFromPattern.m: -------------------------------------------------------------------------------- 1 | function d = directivityFromPattern(pat,az,el) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %directivityFromPattern Compute directivity from pattern 5 | % D = phased.interna.directivityFromPattern(PAT,AZ,EL) computes the 3D 6 | % directivity pattern, d (in dBi), from the 3D field pattern PAT. PAT is 7 | % defined across angles defined in azimuth and elevation angles (in 8 | % degrees) given by AZ and EL. Note that PAT is assumed to cover the entire 9 | % 3D space. 10 | % 11 | % PAT can be either a matrix or a struct. If PAT is a matrix, it represents 12 | % the field pattern. PAT has a dimension of PxQ where P is the number of 13 | % angles in EL and Q is the number of angles in AZ. D has the same 14 | % dimensions as PAT. Both AZ and EL is assumed to be uniformly sampled. If 15 | % PAT is a struct, then it has two fields, H and V, and each field contains 16 | % a PXQ matrix representing the field pattern in the corresponding 17 | % polarization. The D will have two fields too where each field contains 18 | % the directivity pattern in the corresponding polarization. 19 | 20 | % Copyright 2016 The MathWorks, Inc. 21 | 22 | %#codegen 23 | daz = deg2rad(mean(diff(az))); 24 | del = deg2rad(mean(diff(el))); 25 | elr = deg2rad(el(:)); 26 | pat2 = abs(pat).^2; 27 | intpat2 = phased.internal.integratePattern(pat2,elr,daz,del); 28 | d = phased.internal.normalizeIntegratedPower(pat2,intpat2,true); 29 | d = pow2db(d); 30 | 31 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/elemdelay.m: -------------------------------------------------------------------------------- 1 | function tau = elemdelay(pos,c,ang) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %ELEMDELAY Delay among sensor elements in a sensor array 5 | % TAU = phased.internal.elemdelay(POS,C,ANG) returns the delay among 6 | % sensor elements in a sensor array for a given direction specified in 7 | % ANG. 8 | % 9 | % POS is a 3-row matrix representing the positions of the elements. 10 | % Each column of POS is in the form of [x;y;z] (in meters). C is a scalar 11 | % representing the propagation speed (in m/s). ANG is a 2-row matrix 12 | % representing the incident directions. Each column of ANG is in the form 13 | % of [azimuth;elevation] form (in degrees). Azimuth angles must be within 14 | % [-180 180] and elevation angles must be within [-90 90]. TAU is an NxM 15 | % matrix where N is the number of columns in POS and M is the number of 16 | % columns in ANG. 17 | % 18 | % Example: 19 | % % Calculate the delay for a 4-element ULA in the direction of 30 20 | % % degrees azimuth. 21 | % 22 | % ha = phased.ULA(4); 23 | % tau = phased.internal.elemdelay(getElementPosition(ha),3e8,[30;0]) 24 | 25 | % Copyright 2011 The MathWorks, Inc. 26 | 27 | %#codegen 28 | 29 | azang = ang(1,:); 30 | elang = ang(2,:); 31 | 32 | % angles defined in local coordinate system 33 | incidentdir = [-cosd(elang).*cosd(azang);... 34 | -cosd(elang).*sind(azang);... 35 | -sind(elang)]; 36 | tau = pos.'*incidentdir/c; 37 | 38 | 39 | % [EOF] 40 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/ellipsepts.m: -------------------------------------------------------------------------------- 1 | function epts = ellipsepts(focal1,focal2,r,ang) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % This function is only in support of ArrayProcessingForMIMOExample. It may 5 | % be removed in a future release. 6 | 7 | % Copyright 2016 The MathWorks, Inc. 8 | 9 | % r is the total path length, note r = 2a 10 | % focal 1, [x;y] 11 | % focal 2, [x;y] 12 | % ang, angles where points are, for full ellipse, use -180;180 13 | % epts, points on the ellipse [x;y] 14 | 15 | %#codegen 16 | 17 | c = norm(focal1-focal2)/2; 18 | elipang = atand((focal2(2)-focal1(2))/(focal2(1)-focal1(1))); 19 | elipcenter = (focal1+focal2)/2; 20 | a = r/2; 21 | b = sqrt(a^2-c^2); 22 | posx = a*cosd(ang); 23 | posy = b*sind(ang); 24 | epts = [posx;posy]; 25 | epts = [cosd(elipang) -sind(elipang);sind(elipang) cosd(elipang)]*epts; 26 | epts = epts+elipcenter; 27 | 28 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/fogattcoeff.m: -------------------------------------------------------------------------------- 1 | function Kl = fogattcoeff(f,T) 2 | 3 | % f: frequency (Hz) row vector 4 | % T: temperature (K) scalar 5 | % Kl: attenuation coefficient (db/km)/(g/m^3) 6 | 7 | fGHz = f/1e9; 8 | 9 | theta = 300/T; 10 | epsilon0 = 77.66+103.3*(theta-1); 11 | epsilon1 = 0.0671*epsilon0; 12 | epsilon2 = 3.52; 13 | 14 | fpGHz = 20.20-146*(theta-1)+316*(theta-1).^2; 15 | fsGHz = 39.8*fpGHz; 16 | 17 | epsilon2p = fGHz.*(epsilon0-epsilon1)./(fpGHz.*(1+(fGHz./fpGHz).^2)) + ... 18 | fGHz.*(epsilon1-epsilon2)./(fsGHz.*(1+(fGHz./fsGHz).^2)); 19 | epsilon1p = (epsilon0-epsilon1)./(1+(fGHz./fpGHz).^2) + ... 20 | (epsilon1-epsilon2)./(1+(fGHz./fsGHz).^2) + epsilon2; 21 | 22 | eta = (2+epsilon1p)./epsilon2p; 23 | Kl = 0.819*fGHz./(epsilon2p.*(1+eta.^2)); 24 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/frankcode.m: -------------------------------------------------------------------------------- 1 | function x = frankcode(Nchip) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %FRANKCODE Frank code 5 | % X = phased.internal.frankcode(M) returns an M-length Frank code in X. M 6 | % must be a perfect square. X is a column vector. 7 | % 8 | % Example: 9 | % % Generate a 16-chip Frank code. 10 | % 11 | % x = phased.internal.frankcode(16); 12 | 13 | % Copyright 2011 The MathWorks, Inc. 14 | 15 | % Assume Nchip is already validated as a perfect square. 16 | 17 | %#codegen 18 | 19 | Nsqrt = sqrt(Nchip); 20 | chipidx = (0:(Nsqrt-1)).'; 21 | phasemat = chipidx*chipidx.'; 22 | x = exp(1i*2*pi*phasemat.'/Nsqrt); 23 | x = x(:); 24 | 25 | 26 | 27 | % [EOF] 28 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/fspl.m: -------------------------------------------------------------------------------- 1 | function L = fspl(R,lambda) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % Copyright 2015 The MathWorks, Inc. 5 | 6 | %fspl Free space path loss 7 | % L = fspl(R,LAMBDA) returns the free space path loss L (in dB) suffered 8 | % by a signal with wavelength LAMBDA (in meters) when it is propagated in 9 | % free space for a distance of R (in meters). R can be a length-M vector 10 | % and LAMBDA can be a length-N vector. L has the same dimensionality as 11 | % MxN. Each element in L is the free space path loss for the 12 | % corresponding propagation distance specified in R. 13 | % 14 | % Note that the best case is lossless so the loss is always greater than 15 | % or equal to 0 dB. 16 | % 17 | % % Example: 18 | % % Calculate the free space loss for a signal whose wavelength is 30 19 | % % cm. The signal is propagated for 1 km. 20 | % 21 | % L = phased.internal.fspl(1000,0.3) 22 | % 23 | % See also phased, phased.FreeSpace. 24 | 25 | 26 | % Reference 27 | % [1] John Proakis, Digital Communications, 4th Ed., McGraw-Hill, 2001 28 | 29 | %#codegen 30 | %#ok<*EMCA 31 | 32 | L = 4*pi*R(:)*(1./lambda(:).'); 33 | % L(L<1) = 1; 34 | L = validateLoss(L); 35 | L = mag2db(L); 36 | 37 | end 38 | 39 | function L = validateLoss(L) 40 | for m = 1:numel(L) 41 | if L(m)<1 42 | L(m)=1; % Loss cannot be less than 1 43 | end 44 | end 45 | end 46 | 47 | 48 | 49 | % [EOF] 50 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/global2localcoordjac.m: -------------------------------------------------------------------------------- 1 | function A = global2localcoordjac(tgtpos, sensorpos, laxes) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % global2localcoord Calculates the Jacobian of the global2localcoord 5 | % A = global2localcoordjac(tgtpos, sensorpos, laxes) when 6 | % tgtpos and sensorpos are in global rectangular coordinates and the 7 | % Jacobian is of the correponding spherical coordinates. laxes is the 8 | % matrix that defines the orinetation of the sensor. 9 | 10 | % Copyright 2016 The MathWorks, Inc. 11 | 12 | % internal function, no error checking is performed 13 | 14 | %#codegen 15 | 16 | relpos = tgtpos - sensorpos; 17 | relposlocal = laxes' * relpos; 18 | xrel = relposlocal(1); 19 | yrel = relposlocal(2); 20 | zrel = relposlocal(3); 21 | xysq = xrel^2 + yrel^2; 22 | xyzsq = xrel^2 + yrel^2 + zrel^2; 23 | A = zeros(3,3); 24 | 25 | if xyzsq == 0 % The target and the sensor are colocated 26 | A = laxes * [zeros(2,3); ones(1,3)]; 27 | elseif xysq == 0 % The target has the same (x,y) but not the same z 28 | x = -1 / zrel * 180 / pi; 29 | A = laxes * [zeros(1,3); [x x 0]; [0 0 1]]; 30 | else % The normal case 31 | % Since the local coordinates depend on the global coordinates, need to 32 | % use the chain rule to account for the partial derivatives of local 33 | % coordinates with respect to global coordinates. 34 | A(1,:) = laxes * [-yrel; xrel; 0]/xysq; 35 | A(2,:) = laxes * [-xrel*zrel; -yrel*zrel; xysq]/sqrt(xysq)/xyzsq; 36 | A(3,:) = laxes * [xrel; yrel; zrel]/sqrt(xyzsq); 37 | A(1:2, :) = A(1:2, :) * 180 / pi; %convert to degrees 38 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/global2localvec.m: -------------------------------------------------------------------------------- 1 | function lclVec = global2localvec(gVec,lclAxes) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %global2localvec Convert vector from global to local coordinate system 5 | % LVEC = phased.internal.global2localvec(GVEC,LAXES) converts the vector 6 | % represented in the global coordinate system, GVEC, to its corresponding 7 | % representation, LVEC, in the local coordinate system. GVEC is a 3-row 8 | % matrix whose columns represent vectors in (x,y,z) form. LVEC has the 9 | % same dimension as GVEC whose columns contain the corresponding vectors, 10 | % in the form of (x,y,z), in the local coordinate system. LAXES is a 3x3 11 | % matrix whose columns specify the x, y, and z axes of the local 12 | % coordinate system, respectively. 13 | % 14 | % % Example: 15 | % % Find the corresponding representation of vector [1;2;3] in the 16 | % % local coordinate system. Assuming the local coordinate system is 17 | % % given by [0 0 1;1 0 0;0 1 0]. 18 | % 19 | % lvec = phased.internal.global2localvec([1;2;3],[0 0 1;1 0 0;0 1 0]) 20 | 21 | % Copyright 2012 The MathWorks, Inc. 22 | 23 | %#codegen 24 | %#ok<*EMCA> 25 | 26 | % must be rectangular to rectangular 27 | % vectors are specified in 3xN matrices, each column is a vector 28 | 29 | lclVec = lclAxes'*gVec; 30 | 31 | 32 | % [EOF] 33 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/integratePattern.m: -------------------------------------------------------------------------------- 1 | function intpat = integratePattern(pat,el,daz,del) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %integratePattern integrate radiation pattern 5 | % IPAT = phased.internal.integratePattern(PAT,EL,DeltaAZ,DeltaEl) returns 6 | % the integrated pattern, IPAT, based on the pattern, PAT, defined on an 7 | % azimuth and elevation grid. PAT is a pxqxr matrix whose pages are 8 | % patterns measured on p elevation angles and q azimuth angles. Elevation 9 | % angles are specified in a px1 vector, EL (in radians). DeltaAZ and 10 | % DeltaEl are azimuth and elevation angle steps (in radians) for each 11 | % measurement. IPAT is a 1xr vector whose entries are integrated patterns 12 | % corresponding to pages in PAT. 13 | 14 | % Copyright 2013 The MathWorks, Inc. 15 | 16 | %#ok<*EMCLS> 17 | %#ok<*EMCA> 18 | %#codegen 19 | 20 | % del is px1 or scalar, in radian 21 | % daz is 1xq or scalar, in radian 22 | % el is px1, in radian 23 | % pat is pxqxk 24 | % intpat is 1xk 25 | 26 | intpat = squeeze(sum(sum(bsxfun(@times,pat,(del.*cos(el))*daz),1),2)).'; 27 | 28 | 29 | % [EOF] 30 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/isAngleAtBack.m: -------------------------------------------------------------------------------- 1 | function idx = isAngleAtBack(ang) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %ISANGLEATBACK Test if an angle is in back lobe 5 | % IND = phased.internal.isAngleAtBack(ANG) returns whether angles 6 | % specified in ANG that are at the backside. ANG is a 2xM matrix whose 7 | % columns are the angles in the form of [azimuth; elevation] (in 8 | % degrees). IND is a length-M logical vector indicating whether the 9 | % corresponding angle is at the back side. For angles that are beyond +/- 10 | % 90 degrees in azimuth, the corresponding entries in IND are set to 11 | % true. 12 | % 13 | % % Example: 14 | % % Check if given angles are at the back side. 15 | % ang = [-91 -90 0 90 91;0 0 0 0 0]; 16 | % ind = phased.internal.isAngleAtBack(ang); 17 | 18 | % Copyright 2016 The MathWorks, Inc. 19 | 20 | %#codegen 21 | 22 | % set all azimuth beyond +/- 90 to 0 23 | % note elevation +/- 90 should not be set to 0 even if azimuth is beyond 24 | % +/- 90 because all elevation 90 is the same point. 25 | % Need tolerance to deal with numerical round-offs. 26 | 27 | idx = ((ang(1,:)<(-90-sqrt(eps))) | (ang(1,:)>(90+sqrt(eps)))) ... 28 | & (abs(abs(ang(2,:))-90)>sqrt(eps)); 29 | 30 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/kel2cel.m: -------------------------------------------------------------------------------- 1 | function C = kel2cel(K) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | % Copyright 2015 The MathWorks, Inc. 5 | 6 | %kel2cel Convert Kelvin to Celsius 7 | 8 | %#codegen 9 | %#ok<*EMCA> 10 | 11 | C = K-273.15; -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/local2globalvec.m: -------------------------------------------------------------------------------- 1 | function gVec = local2globalvec(lclVec,lclAxes) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %local2globalvec Convert vector from local to global coordinate system 5 | % GVEC = phased.internal.local2globalvec(LVEC,LAXES) converts the vector 6 | % represented in the local coordinate system, LVEC, to its corresponding 7 | % representation, GVEC, in the global coordinate system. LVEC is a 3-row 8 | % matrix whose columns represent vectors in (x,y,z) form. GVEC has the 9 | % same dimension as LVEC whose columns contain the corresponding vectors, 10 | % in the form of (x,y,z), in the global coordinate system. LAXES is a 3x3 11 | % matrix whose columns specify the x, y, and z axes of the local 12 | % coordinate system, respectively. 13 | % 14 | % % Example: 15 | % % Find the corresponding representation of vector [1;2;3] in the 16 | % % global coordinate system. Assuming the local coordinate system is 17 | % % given by [0 0 1;1 0 0;0 1 0]. 18 | % 19 | % gvec = phased.internal.local2globalvec([1;2;3],[0 0 1;1 0 0;0 1 0]) 20 | 21 | % Copyright 2012 The MathWorks, Inc. 22 | 23 | %#codegen 24 | %#ok<*EMCA> 25 | 26 | % must be rectangular to rectangular 27 | % vectors are specified in 3xN matrices, each column is a vector 28 | 29 | gVec = lclAxes*lclVec; 30 | 31 | 32 | % [EOF] 33 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/magtodb.m: -------------------------------------------------------------------------------- 1 | function out = magtodb(in) 2 | %This function is used temporarily until constant timeouts are fixed 3 | 4 | % Copyright 2011-2012 The MathWorks, Inc. 5 | 6 | %#codegen 7 | 8 | coder.extrinsic('mag2db'); 9 | out = coder.internal.const(mag2db(in)); 10 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/narginchk.m: -------------------------------------------------------------------------------- 1 | function narginchk(low,high,nargin) 2 | 3 | % Copyright 2009-2011 The MathWorks, Inc. 4 | 5 | %#codegen 6 | 7 | cond = nargin >= low; 8 | if ~cond 9 | coder.internal.assert(cond,'MATLAB:narginchk:notEnoughInputs'); 10 | end 11 | 12 | cond = nargin <= high; 13 | if ~cond 14 | coder.internal.assert(cond,'MATLAB:narginchk:tooManyInputs'); 15 | end 16 | 17 | end 18 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/p1code.m: -------------------------------------------------------------------------------- 1 | function x = p1code(Nchip) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %P1CODE P1 code 5 | % X = phased.internal.p1code(M) returns an M-length P1 code in X. M must 6 | % be a perfect square. X is a column vector. 7 | % 8 | % Example: 9 | % % Generate a 16-chip P1 code. 10 | % 11 | % x = phased.internal.p1code(16); 12 | 13 | % Copyright 2011 The MathWorks, Inc. 14 | 15 | % Assume Nchip is already validated as a perfect square. 16 | 17 | %#codegen 18 | 19 | Nsqrt = sqrt(Nchip); 20 | chipidx = (0:Nsqrt-1).'; 21 | temp = (Nsqrt-1)/2-chipidx; 22 | phasemat = -(repmat(temp.*(chipidx*Nsqrt),1,Nsqrt) + ... 23 | temp*chipidx.'); 24 | x = exp(1i*2*pi*phasemat.'/Nsqrt); 25 | x = x(:); 26 | 27 | 28 | 29 | % [EOF] 30 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/p2code.m: -------------------------------------------------------------------------------- 1 | function x = p2code(Nchip) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %P2CODE P2 code 5 | % X = phased.internal.p2code(M) returns an M-length P2 code in X. M must 6 | % be an even perfect square. X is a column vector. 7 | % 8 | % Example: 9 | % % Generate a 16-chip P2 code. 10 | % 11 | % x = phased.internal.p2code(16); 12 | 13 | % Copyright 2011 The MathWorks, Inc. 14 | 15 | % Assume Nchip is already validated as a perfect square. 16 | % Assume Nchip is also validated as a even number 17 | 18 | %#codegen 19 | x = phased.internal.pxcode(Nchip); 20 | 21 | 22 | 23 | % [EOF] 24 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/p3code.m: -------------------------------------------------------------------------------- 1 | function x = p3code(Nchip) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %P3CODE P3 code 5 | % X = phased.internal.p3code(M) returns an M-length P3 code in X. M must 6 | % be a positive integer. X is a column vector. 7 | % 8 | % Example: 9 | % % Generate a 16-chip P3 code. 10 | % 11 | % x = phased.internal.p3code(16); 12 | 13 | % Copyright 2011 The MathWorks, Inc. 14 | 15 | %#codegen 16 | 17 | m = (0:Nchip-1).'; 18 | phasevec = m.^2/2; 19 | x = exp(1i*2*pi*phasevec/Nchip); 20 | 21 | 22 | 23 | % [EOF] 24 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/p4code.m: -------------------------------------------------------------------------------- 1 | function x = p4code(Nchip) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %P4CODE P4 code 5 | % X = phased.internal.p4code(M) returns an M-length P4 code in X. M must 6 | % be a positive integer. X is a column vector. 7 | % 8 | % Example: 9 | % % Generate a 16-chip P4 code. 10 | % 11 | % x = phased.internal.p4code(16); 12 | 13 | % Copyright 2011 The MathWorks, Inc. 14 | 15 | %#codegen 16 | 17 | m = (0:Nchip-1).'; 18 | phasevec = m.*(m-Nchip)/2; 19 | x = exp(1i*2*pi*phasevec/Nchip); 20 | 21 | 22 | 23 | % [EOF] 24 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/pxcode.m: -------------------------------------------------------------------------------- 1 | function x = pxcode(Nchip) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %PXCODE Px code 5 | % X = phased.internal.pxcode(M) returns an M-length Px code in X. M must 6 | % be a perfect square. X is a column vector. 7 | % 8 | % Example: 9 | % % Generate a 16-chip Px code. 10 | % 11 | % x = phased.internal.pxcode(16); 12 | 13 | % Copyright 2011 The MathWorks, Inc. 14 | 15 | % Assume Nchip is already validated as a perfect square. 16 | 17 | %#codegen 18 | 19 | Nsqrt = sqrt(Nchip); 20 | chipidx = (0:Nsqrt-1).'; 21 | if rem(Nsqrt,2) 22 | % Nsqrt odd 23 | phasemat = ((Nsqrt-1)/2-chipidx)*(Nsqrt/2-1-chipidx).'; 24 | else 25 | % Nsqrt even 26 | temp = (Nsqrt-1)/2-chipidx; 27 | phasemat = temp*temp.'; 28 | end 29 | x = exp(1i*2*pi*phasemat.'/Nsqrt); 30 | x = x(:); 31 | 32 | 33 | 34 | % [EOF] 35 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/quantizePhase.m: -------------------------------------------------------------------------------- 1 | function pq = quantizePhase(p,n,cycle) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %quantizePhase Quantize the phase value 5 | % PQ = phased.internal.quantizePhase(P,N,PMAX) computes the quantized 6 | % phase value, PQ, corresponding to the input phase, P. N is the number 7 | % of quantization bits and PMAX is the maximum phase value represented by 8 | % the quantization bits. 9 | % 10 | % % Example: 11 | % % Quantize the 25 degree and 350 degree phase shifts on a 3-bit 12 | % % quantizer. Assume 360 degree is the maximum phase. 13 | % 14 | % pq = phased.internal.quantizePhase([25 350],3,360) 15 | 16 | % Copyright 2015 The MathWorks, Inc. 17 | 18 | %#codegen 19 | 20 | N = 2^n; 21 | pstep = 1/N; 22 | ptemp = p/cycle; 23 | pq = round(mod(ptemp,1)/pstep)*pstep*cycle; 24 | pq(abs(pq-cycle) 12 | %#ok<*EMCA> 13 | %#codegen 14 | 15 | st = N/sr; 16 | 17 | 18 | % [EOF] 19 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/samptime2rate.m: -------------------------------------------------------------------------------- 1 | function sr = samptime2rate(st,N) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %SAMPTIME2RATE Translate sample time to sample rate 5 | % SR = phased.internal.samptime2rate(ST,N) converts the sample time (in 6 | % second), ST, of a length-N signal vector to the corresponding sample 7 | % rate (in Hz), SR, for each signal sample. 8 | 9 | % Copyright 2014 The MathWorks, Inc. 10 | 11 | %#ok<*EMCLS> 12 | %#ok<*EMCA> 13 | %#codegen 14 | 15 | sr = N/st; 16 | 17 | 18 | % [EOF] 19 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/saveDirectivityIntegrationPatternSamples.m: -------------------------------------------------------------------------------- 1 | function saveDirectivityIntegrationPatternSamples 2 | % This function is for internal use only. It may be removed in the future. 3 | 4 | %getDirectivityIntegrationPatternSamples 5 | % [az,el,ds] = getDirectivityIntegrationPatternSamples returns the 6 | % sampling points for calculating integrated field pattern. These points 7 | % are roughly uniformly distributed over the sphere. 8 | 9 | load([matlabroot ('/toolbox/antenna/antenna/+em/@EmStructures/spherenew.mat')]); 10 | c_s = bsxfun(@rdivide,Center_s,sqrt(sum(Center_s.^2))); 11 | %c_s = Center_s; 12 | [phi,theta] = cart2sph(c_s(1,:),c_s(2,:),c_s(3,:)); 13 | az_samp = wrapTo180(phased.internal.rad2deg(phi)); 14 | el_samp = phased.internal.rad2deg(theta); 15 | area_samp = Area_s; 16 | save IntegratedFieldSamplePoints az_samp el_samp area_samp 17 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/subbandCenterFrequency.m: -------------------------------------------------------------------------------- 1 | function freq = subbandCenterFrequency(fc,fs,Nbands) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %subbandCenterFrequency Compute center frequencies for subbands 5 | % FREQ = phased.internal.subbandCenterFrequency(FC,FS,NB) returns the 6 | % center frequencies FREQ as a column vector. FC is the carrier 7 | % frequency, FS is the sample rate and NB is the number of bands. The 8 | % function divides [FC-FS/2,FC+FS/2] into NB equal-width subbands. 9 | % 10 | % Note FREQ is returned corresponding to the result of fft. If one wants 11 | % to order FREQ from smallest to the greatest, one may want to use 12 | % fftshift on FREQ. 13 | % 14 | % % Example 15 | % % Compute center frequencies for subbands 16 | % 17 | % fc = 3e8; fs = 3e6; nb = 64; 18 | % freq = phased.internal.subbandCenterFrequency(fc,fs,nb) 19 | % 20 | % See also phased, phased.internal.SubbandDivider, 21 | % phased.internal.SubbandCombiner. 22 | 23 | % Copyright 2015 The MathWorks, Inc. 24 | 25 | %#ok<*EMCA> 26 | %#codegen 27 | 28 | binBound = floor(Nbands/2); 29 | freqBinsR = ((1:Nbands)-binBound-1)*fs/Nbands; 30 | freqBinsC = freqBinsR(:); 31 | freqBins = ifftshift(freqBinsC); 32 | freq = freqBins+fc; 33 | 34 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/unitarymat.m: -------------------------------------------------------------------------------- 1 | function Q = unitarymat(M) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %unitarymat Unitary transformation matrix Q 5 | % Q = unitarymat(Hdoa,M) returns a unitary transformation matrix Q 6 | % that transforms a signal covariance matrix Sx with dimension M x M to a 7 | % Real Symmetric Matrix Sq. 8 | 9 | % Copyright 2009 The MathWorks, Inc. 10 | 11 | %#codegen 12 | 13 | half = floor(M/2); 14 | I = eye(half); 15 | J = fliplr(I); 16 | 17 | if rem(M,2), 18 | % M odd 19 | O = zeros(half,1); 20 | Qmid = [O.' sqrt(2) O.']; 21 | else 22 | % M even 23 | O = []; Qmid = []; 24 | end 25 | Q = 1/sqrt(2)*[I O 1i*I;Qmid;J O -1i*J]; % Eq (7.58) and (7.59) in [1] 26 | 27 | end 28 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+internal/zadoffchucode.m: -------------------------------------------------------------------------------- 1 | function x = zadoffchucode(Nchip,SeqIdx) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %ZADOFFCHUCODE Zadoff-Chu code 5 | % X = phased.internal.zadoffchucode(M,SEQIDX) returns an M-length 6 | % Zadoff-Chu code with sequence index SEQIDX in X. M must be a positive 7 | % integer and SEQIDX must be prime to M. X is a column vector. 8 | % 9 | % Example: 10 | % % Generate a 16-chip Zadoff-Chu code. 11 | % 12 | % x = phased.internal.zadoffchucode(16,1); 13 | 14 | % Copyright 2011 The MathWorks, Inc. 15 | 16 | % Assume it is already validated that Nchip and SeqIdx is prime to each 17 | % other 18 | 19 | %#codegen 20 | 21 | m = (0:Nchip-1).'; 22 | if rem(Nchip,2) 23 | % Nchip odd 24 | phasevec = m.*(m+1)/2; 25 | else 26 | % Nchip even 27 | phasevec = m.^2/2; 28 | end 29 | phasevec = SeqIdx*phasevec; 30 | x = exp(1i*2*pi*phasevec/Nchip); 31 | 32 | 33 | 34 | % [EOF] 35 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/IntensitySystemScopeSpecification.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/IntensitySystemScopeSpecification.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/IntensityVisual.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/IntensityVisual.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioAnnotationDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioAnnotationDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioCameraDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioCameraDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioSceneDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioSceneDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioSettingsDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioSettingsDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioViewerSpecification.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioViewerSpecification.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioVisual.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ScenarioVisual.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ZBasePlane.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/ZBasePlane.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/clearb.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/clearb.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/intensitysystemscope.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/intensitysystemscope.cfg -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/scenarioviewer.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/+phased/+scopes/scenarioviewer.cfg -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/private/privgpuCosAntElemResp.m: -------------------------------------------------------------------------------- 1 | function epat = privgpuCosAntElemResp(az, el, azPow, elPow) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %PRIVGPUCOSANTELEMRESP - computes the element response of a 5 | %CosineAntennaElement for a given az,el (in radians) and Azimuth Power 6 | %(azPow) and Elevation Power (elPow). 7 | 8 | % Copyright 2012 The MathWorks, Inc. 9 | 10 | 11 | if isvector(az), 12 | az = reshape(az, 1,1,[]); 13 | el = reshape(el, [], 1,1); 14 | end 15 | 16 | epat = arrayfun(@gpuCosResp, az, el, azPow, elPow); 17 | 18 | end 19 | 20 | function resp = gpuCosResp(az, el, azPow, elPow) 21 | %Computes the cosine response 22 | ninety = pi/2; 23 | 24 | if (az >= -1*ninety) && (az <= ninety) 25 | resp = (cos(az).^azPow) .* (cos(el).^elPow); 26 | else 27 | resp = 0; 28 | end 29 | end 30 | 31 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/private/privgpuCrossedDipoleAntElemResp.m: -------------------------------------------------------------------------------- 1 | function epat = privgpuCrossedDipoleAntElemResp(az,el, epat) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %PRIVGPUCROSSEDDIPOLEANTELEMRESP - computes the element response of a 5 | %CrossedDipoleAntennaElement for a given az,el (in radians). 6 | 7 | % Copyright 2013 The MathWorks, Inc. 8 | 9 | scalefactor = sqrt(3/2); 10 | 11 | %H-response 12 | h = -1i.*cos(az); 13 | %V-response 14 | fh = @(x,y) -cos(y) + 1i.*sin(y).*sin(x); 15 | v = bsxfun(fh, az, el); 16 | epat(:) = scalefactor.*bsxfun(@hypot,h,v); 17 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/private/privgpuIsoAntElemResp.m: -------------------------------------------------------------------------------- 1 | function epat = privgpuIsoAntElemResp(az, el, backbaffled) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %PRIVGPUISOANTELEMRESP - computes the element response of a 5 | %IsotropicAntennaElement for a given az,el (in radians). 6 | 7 | % Copyright 2012 The MathWorks, Inc. 8 | 9 | if backbaffled, 10 | if isvector(az), 11 | az = reshape(az, 1,1,[]); 12 | el = reshape(el, [], 1,1); 13 | end 14 | epat = arrayfun(@gpuIsoResp, az, el); 15 | 16 | else 17 | 18 | if isvector(az) 19 | epat = gpuArray.ones(numel(el), 1, numel(az)); 20 | else 21 | epat = gpuArray.ones(size(el)); 22 | end 23 | end 24 | 25 | end 26 | 27 | function resp = gpuIsoResp(az, el) 28 | %Computes the isotropic response 29 | ninety = pi/2; 30 | 31 | rooteps = sqrt(eps); 32 | 33 | tf = (az < (-1*ninety - rooteps)) | ... 34 | (az > (ninety + rooteps)) & ... 35 | (abs(abs(el) - ninety) > rooteps); 36 | 37 | if tf 38 | resp = 0; 39 | else 40 | resp = 1; 41 | end 42 | 43 | 44 | end 45 | 46 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/+phased/private/privgpuShortDipoleAntElemResp.m: -------------------------------------------------------------------------------- 1 | function epat = privgpuShortDipoleAntElemResp(az,el, axisDir, epat) 2 | %This function is for internal use only. It may be removed in the future. 3 | 4 | %PRIVGPUSHORTDIPOLEANTELEMRESP - computes the element response of a 5 | %ShortDipoleAntennaElement for a given az,el (in radians). 6 | 7 | % Copyright 2013 The MathWorks, Inc. 8 | 9 | scalefactor = sqrt(3/2); 10 | 11 | %H-response 12 | if strcmp(axisDir,'Y') 13 | h = -cos(az); 14 | else 15 | h = epat; 16 | end 17 | 18 | %V-response 19 | if strcmp(axisDir,'Y') 20 | fh = @(x,y) sin(x).*sin(y); 21 | v = bsxfun(fh, az,el); 22 | else 23 | v = -cos(el); 24 | end 25 | 26 | epat(:) = scalefactor.*bsxfun(@hypot, h,v); 27 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/BasicMonostaticRadarExampleData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/BasicMonostaticRadarExampleData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/BicyclistLegsAngles.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/BicyclistLegsAngles.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/DesktopToolset.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | sensorArrayAnalyzer 11 | 12 | 13 | 14 | 15 | 16 | radarEquationCalculator 17 | 18 | 19 | 20 | 21 | 22 | sonarEquationCalculator 23 | 24 | 25 | 26 | 27 | 28 | radarWaveformAnalyzer 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/IntegratedFieldSamplePoints.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/IntegratedFieldSamplePoints.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/RTIDTIExampleData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/RTIDTIExampleData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/RangeAngleResponseExampleData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/RangeAngleResponseExampleData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/RangeDopplerEstimatorData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/RangeDopplerEstimatorData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/RangeDopplerExampleData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/RangeDopplerExampleData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/RangeDopplerResponseExampleData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/RangeDopplerResponseExampleData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/RangeResponseExampleData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/RangeResponseExampleData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/STAPExampleData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/STAPExampleData.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/aboutphasedtbx.m: -------------------------------------------------------------------------------- 1 | function aboutphasedtbx 2 | %ABOUTPHASEDTBX About the Phased Array System Toolbox. 3 | % ABOUTPHASEDTBX Displays the version number of the Phased Array System 4 | % Toolbox and the copyright notice in a modal dialog box. 5 | 6 | % Copyright 2012 The MathWorks, Inc. 7 | 8 | load('aboutphased.mat','respdb'); 9 | tlbx = ver('phased'); 10 | str = sprintf([tlbx.Name ' ' tlbx.Version '\n',... 11 | getString(message('phased:phased:phasedCopyright',... 12 | datestr(tlbx.Date,10)))]); 13 | msgbox(str,tlbx.Name,'custom',respdb,jet(64),'modal'); 14 | 15 | % [EOF] 16 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/aperture2gain.m: -------------------------------------------------------------------------------- 1 | function g = aperture2gain(Ae,lambda) 2 | %aperture2gain Convert effective aperture to gain 3 | % G = aperture2gain(A,LAMBDA) converts the effective aperture A (in 4 | % square meters) of an antenna to the corresponding gain G (in dB) when 5 | % the antenna is used to capture an electromagnetic wave with wavelength 6 | % LAMBDA (in meters). A can be a vector but LAMBDA must be a scalar. G 7 | % has the same dimensionality as A with each entry in G representing the 8 | % gain for the corresponding effective aperture in A. 9 | % 10 | % % Example: 11 | % % An antenna has an effective aperture of 3 square meters. Find its 12 | % % gain when used to capture an electromagnetic wave with a wavelength 13 | % % of 10 cm. 14 | % 15 | % g = aperture2gain(3,0.1) 16 | % 17 | % See also phased, gain2aperture. 18 | 19 | % Copyright 2010 The MathWorks, Inc. 20 | 21 | % Reference 22 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Ed., 2001 23 | 24 | %#codegen 25 | %#ok<*EMCA> 26 | 27 | phased.internal.narginchk(2,2,nargin); 28 | eml_assert_no_varsize(2,Ae,lambda); 29 | sigdatatypes.validateDistance(lambda,'aperture2gain','LAMBDA',... 30 | {'scalar','positive'}); 31 | sigdatatypes.validateArea(Ae,'aperture2gain','A',... 32 | {'vector'}); 33 | g = 4*pi*Ae./(lambda^2); 34 | g = pow2db(g); 35 | 36 | end 37 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/array_analysis_app_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/array_analysis_app_16.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/array_analysis_app_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/array_analysis_app_24.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/az2broadside.m: -------------------------------------------------------------------------------- 1 | function bsd = az2broadside(az,el) 2 | %az2broadside Convert azimuth to broadside angle 3 | % BSANG = az2broadside(AZ,EL) returns the broadside angle BSANG 4 | % corresponding to azimuth AZ and elevation EL. Both AZ and EL are in the 5 | % local coordinate system. The angles are all in degrees. The azimuth 6 | % must be within [-180 180] and the elevation must be within [-90 90]. 7 | % The returned broadside angle is within [-90 90]. 8 | % 9 | % AZ and EL can be either scalars or vectors. If both of them are 10 | % vectors, their dimensions must match. 11 | % 12 | % BSANG = az2broadside(AZ) returns the broadside angle for 0 elevation. 13 | % 14 | % % Example: 15 | % % Calculate the broadside angle corresponding to azimuth 45 degrees 16 | % % and elevation 20 degrees. 17 | % 18 | % bsang = az2broadside(45,20) 19 | % 20 | % See also phased, broadside2az. 21 | 22 | % Copyright 2010-2011 The MathWorks, Inc. 23 | % 24 | 25 | %#codegen 26 | %#ok<*EMCA> 27 | 28 | phased.internal.narginchk(1,2,nargin); 29 | if nargin < 2 30 | el = 0; 31 | end 32 | sigdatatypes.validateAngle(az,'az2broadside','AZ',... 33 | {'vector','>=',-180,'<=',180}); 34 | sigdatatypes.validateAngle(el,'az2broadside','EL',... 35 | {'vector','>=',-90,'<=',90}); 36 | cond = (numel(az)>1) && (numel(el)>1) && any(size(az)~=size(el)); 37 | if cond 38 | coder.internal.errorIf(cond, ... 39 | 'phased:system:DimensionMismatch','AZ','EL'); 40 | end 41 | 42 | 43 | bsd = asind(sind(az).*cosd(el)); 44 | 45 | 46 | % [EOF] 47 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/azel2uv.m: -------------------------------------------------------------------------------- 1 | function uv = azel2uv(azel) 2 | %AZEL2UV Convert angles from az/el format to u/v format 3 | % UV = azel2uv(AzEl) converts the azimuth/elevation angle pairs to their 4 | % corresponding u/v values. AzEl is a 2-row matrix whose columns are 5 | % angles specified in [azimuth;elevation] (in degrees) form. UV has the 6 | % same dimension as AzEl. The columns of UV are angles specified in [u;v] 7 | % format. 8 | % 9 | % Assume the boresight is the X-axis. The azimuth angle is defined as the 10 | % angle from the X-axis toward the Y-axis, ranging from -90 to 90 11 | % degrees. The elevation angle is the angle from the X-Y plane toward the 12 | % Z-axis, ranging from -90 to 90 degrees. The phi angle is the angle from 13 | % the Y-axis to the Z-axis, ranging from 0 to 360 degrees. The theta 14 | % angle is the angle from the X-axis toward the Y-Z plane, ranging from 0 15 | % to 90 degrees. The value u is defined as sin(theta)*cos(phi) and the 16 | % value v is defined as sin(theta)*sin(phi). 17 | % 18 | % % Example: 19 | % % Find the corresponding u and v representation for 30 degrees 20 | % % azimuth and 0 degrees elevation. 21 | % 22 | % uv = azel2uv([30;0]) 23 | % 24 | % See also azel2phitheta, azel2uvpat, uv2azel, uv2azelpat. 25 | 26 | % Copyright 2011 The MathWorks, Inc. 27 | 28 | %#codegen 29 | %#ok<*EMCA> 30 | 31 | sigdatatypes.validateAzElAngle(azel,'azel2uv','AzEl'); 32 | 33 | az = azel(1,:); 34 | el = azel(2,:); 35 | 36 | % az should be limited between [-90 90] 37 | validateattributes(az,{'double'},{'>=',-90,'<=',90},... 38 | 'azel2uv', 'angle az'); 39 | 40 | u = cosd(el).*sind(az); 41 | v = sind(el); 42 | 43 | uv = [u;v]; 44 | 45 | % [EOF] 46 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/azelaxes.m: -------------------------------------------------------------------------------- 1 | function ax = azelaxes(az,el) 2 | %AZELAXES Axes at given azimuth and elevation direction 3 | % AX = azelaxes(AZ,EL) returns the components of the set of three 4 | % orthonormal basis vectors at a point on the unit sphere. The basis 5 | % vectors are unit vectors in the radial, azimuthal, and elevation 6 | % directions. The point on the sphere is specified by the azimuth angle 7 | % AZ (in degrees) and the elevation angle EL (in degrees). 8 | % 9 | % AX is a 3x3 matrix whose columns contain the unit vectors in the 10 | % radial, azimuthal, and elevation directions, respectively. 11 | % 12 | % % Example: 13 | % % Determine the basis vectors at a point on the sphere given by 30 14 | % % degrees azimuth and 0 degrees elevation. 15 | % 16 | % ax = azelaxes(30,0) 17 | 18 | % Copyright 2012 The MathWorks, Inc. 19 | 20 | %#codegen 21 | %#ok<*EMCA> 22 | 23 | eml_assert_no_varsize(1:nargin, az,el); 24 | sigdatatypes.validateAngle(az,'azelaxes','AZ',{'scalar','<=',180,'>=',-180}); 25 | sigdatatypes.validateAngle(el,'azelaxes','EL',{'scalar','<=',90,'>=',-90}); 26 | 27 | ax = phased.internal.azelcoord(az,el); 28 | ax = ax(:,[3 1 2]); 29 | 30 | % [EOF] 31 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/basicmonostaticradardemodata.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/basicmonostaticradardemodata.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/bw2range.m: -------------------------------------------------------------------------------- 1 | function r = bw2range(bw,varargin) 2 | %bw2range Convert bandwidth to range resolution 3 | % R = bw2range(BW) returns the range resolution, R (in meters), for the 4 | % bandwidth specified in BW (in Hz). The propagation is assumed to be 5 | % two way, as in a monostatic radar system. BW must be positive and R has 6 | % the same dimensionality as BW. 7 | % 8 | % R = bw2range(BW,C) specifies the signal propagation speed, C (in 9 | % meters/second), as a positive scalar. The default value of C is the 10 | % speed of light. 11 | % 12 | % % Example: 13 | % % Calculate the range resolution of a monostatic radar operating with 14 | % % a system bandwidth of 150 MHz. 15 | % 16 | % bw = 150e6; c = 3e8; 17 | % res = bw2range(bw,c) 18 | % 19 | % See also phased, range2bw, time2range, range2time. 20 | 21 | % Copyright 2016 The MathWorks, Inc. 22 | 23 | % References 24 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Edition, 25 | % McGraw-Hill, 2001 26 | 27 | %#codegen 28 | %#ok<*EMCA> 29 | 30 | narginchk(1,2); 31 | 32 | if nargin < 2 33 | c = physconst('lightspeed'); 34 | else 35 | c = varargin{1}; 36 | end 37 | 38 | sigdatatypes.validateDistance(bw,'bw2range','BW',{'positive'}); 39 | sigdatatypes.validateSpeed(c,'bw2range','C',{'positive','scalar'}); 40 | 41 | r = c./(2*bw); 42 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/dataClusterDBSCAN.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/dataClusterDBSCAN.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/dopsteeringvec.m: -------------------------------------------------------------------------------- 1 | function dpstv = dopsteeringvec(dp,numpulses,prf) 2 | %dopsteeringvec Steering vector for Doppler 3 | % DSTV = dopsteeringvec(DOP,NUMPULSES) returns the steering vector in the 4 | % time domain corresponding to the Doppler frequency DOP (in Hz). The 5 | % number of pulses is specified in NUMPULSES and the pulse repetition 6 | % frequency (PRF) is assumed to be 1 Hz. If DOP is a row vector, DSTV is 7 | % a matrix with each column containing the steering vector for the 8 | % corresponding element of DOP. 9 | % 10 | % DSTV = dopsteeringvec(...,PRF) specifies the pulse repetition frequency 11 | % PRF (in Hz). 12 | % 13 | % % Example: 14 | % % Calculate the steering vector corresponding to a Doppler frequency 15 | % % of 200 Hz, assuming there are 10 pulses and the PRF is 1 kHz. 16 | % 17 | % dstv = dopsteeringvec(200,10,1000) 18 | % 19 | % See also phased, speed2dop, dop2speed. 20 | 21 | % Copyright 2008-2010 The MathWorks, Inc. 22 | 23 | % Reference 24 | % [1] J. R. Guerci, Space-Time Adaptive Processing for Radar, Artech 25 | % House, 2003 26 | 27 | %#codegen 28 | %#ok<*EMCA> 29 | 30 | phased.internal.narginchk(2,3,nargin); 31 | if nargin < 3 32 | prf = 1; 33 | end 34 | eml_assert_no_varsize(2:3, dp,numpulses,prf); 35 | sigdatatypes.validateIndex(numpulses,'dopsteeringvec','NUMPULSES',{'scalar'}); 36 | sigdatatypes.validateFrequency(prf,'dopsteeringvec','PRF',{'scalar'}); 37 | validateattributes(dp, {'numeric'},... 38 | {'finite','nonnan','real','vector','>=',-prf/2,'<=',prf/2},... 39 | 'dopsteeringvec','DOP'); 40 | 41 | % dp could be a vector, make it a row 42 | dp = dp(:).'; 43 | dpstv = exp(1i*2*pi*(0:numpulses-1)'*dp/prf); 44 | 45 | 46 | 47 | % [EOF] 48 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/eml_assert_no_varsize.m: -------------------------------------------------------------------------------- 1 | function eml_assert_no_varsize(varargin) 2 | %MATLAB Code Generation Library Function 3 | 4 | %#codegen -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/gain2aperture.m: -------------------------------------------------------------------------------- 1 | function Ae = gain2aperture(g, lambda) 2 | %gain2aperture Convert gain to effective aperture 3 | % A = gain2aperture(G,LAMBDA) converts the gain G (in dB) of an antenna 4 | % to the corresponding effective aperture A (in square meters) when the 5 | % antenna is used to capture an electromagnetic wave with wavelength 6 | % LAMBDA (in meters). G can be a vector but LAMBDA must be a scalar. A 7 | % has the same dimensionality as G with each entry in A representing the 8 | % effective aperture for the corresponding gain in G. 9 | % 10 | % % Example: 11 | % % An antenna has a gain of 3 dB. Calculate its effective aperture 12 | % % when used to capture an electromagnetic wave with a wavelength of 13 | % % 10 cm. 14 | % 15 | % a = gain2aperture(3,0.1) 16 | % 17 | % See also phased, aperture2gain. 18 | 19 | % Copyright 2010 The MathWorks, Inc. 20 | 21 | % Reference 22 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Ed., 2001 23 | 24 | 25 | %#codegen 26 | %#ok<*EMCA 27 | 28 | phased.internal.narginchk(2,2,nargin); 29 | eml_assert_no_varsize(2, g, lambda); 30 | validateattributes(g,{'numeric'},{'real','nonempty','vector'},... 31 | 'gain2aperture','G'); 32 | sigdatatypes.validateDistance(lambda,'gain2aperture','LAMBDA',{'scalar','positive'}); 33 | 34 | Ae = db2pow(g)*lambda^2/(4*pi); 35 | 36 | % [EOF] 37 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/horizonrange.m: -------------------------------------------------------------------------------- 1 | function Rh = horizonrange(platformHeight, Re) 2 | %horizonrange Horizon range 3 | % RH = horizonrange(H) returns the horizon range (in meters), RH, of a 4 | % radar system located at a height of H (in meters) above the surface. 5 | % The calculation uses 4/3 of earth radius as the effective earth radius. 6 | % 7 | % RH = horizonrange(H,RE) specifies the effective earth radius (in 8 | % meters) as a positive scalar, RE, where the default is 4/3 of the earth 9 | % radius. 10 | % 11 | % % Example: 12 | % % Determine the horizon range of an antenna that is 30 meters above 13 | % % the ground. 14 | % 15 | % Rh = horizonrange(30) 16 | % 17 | % See also effearthradius, grazingang, depressionang. 18 | 19 | % Copyright 2008-2011 The MathWorks, Inc. 20 | % 21 | 22 | % Reference 23 | % [1] James Ward, Space-Time Adaptive Processing for Airborne Radar, 1994 24 | % [2] Long, Radar Reflectivity of Land and Sea, 2001 25 | 26 | %#codegen 27 | %#ok<*EMCA> 28 | 29 | 30 | phased.internal.narginchk(1,2,nargin); 31 | 32 | if nargin < 2 33 | Re = effearthradius; 34 | end 35 | 36 | sigdatatypes.validateDistance(platformHeight,'horizonrange','H',{'vector'}); 37 | sigdatatypes.validateDistance(Re,'horizonrange','RE',{'scalar','positive'}); 38 | 39 | Rh = sqrt(2.*platformHeight.*Re+platformHeight.^2); 40 | 41 | 42 | 43 | % [EOF] 44 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/info.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | R2011a 7 | Phased Array System 8 | toolbox 9 | $toolbox/matlab/icons/matlabicon.gif 10 | $docroot/toolbox/phased 11 | 12 | 13 | 14 | 15 | 16 | doc phased 17 | $toolbox/matlab/icons/book_mat.gif 18 | 19 | 20 | 21 | 22 | demo toolbox phased 23 | $toolbox/matlab/icons/demoicon.gif 24 | 25 | 26 | 27 | 28 | web http://www.mathworks.com/products/phased-array/ -browser; 29 | $toolbox/matlab/icons/webicon.gif 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/noisepow.m: -------------------------------------------------------------------------------- 1 | function npow = noisepow(nbw,nf,reftemp) 2 | %noisepow Noise power at the receiver 3 | % NPOWER = noisepow(NBW,NF,REFTEMP) calculates the noise power NPOWER (in 4 | % Watts) based on the noise bandwidth, NBW (in Hz), the noise figure, NF 5 | % (in dB), and the reference temperature, REFTEMP (in kelvin). 6 | % 7 | % % Example: 8 | % % Calculate the noise power of a receiver whose noise bandwidth is 10 9 | % % kHz, noise figure is 1 dB, and reference temperature is 300 K. 10 | % 11 | % npower = noisepow(10e3,1,300) 12 | % 13 | % See also phased, phased.ReceiverPreamp, systemp. 14 | 15 | % Copyright 2010 The MathWorks, Inc. 16 | 17 | % Reference 18 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Ed., 19 | % McGraw-Hill, 2001 20 | 21 | %#codegen 22 | %#ok<*EMCA> 23 | 24 | phased.internal.narginchk(1,3,nargin); 25 | 26 | if nargin < 3 27 | reftemp = 290; 28 | end 29 | if nargin < 2 30 | nf = 0; 31 | end 32 | eml_assert_no_varsize(1:nargin,nbw,nf,reftemp); 33 | sigdatatypes.validateFrequency(nbw,'noisepow','NBW',{'scalar'}); 34 | sigdatatypes.validateTemperature(reftemp,'noisepow','REFTEMP',{'scalar'}); 35 | validateattributes(nf,{'double'},... 36 | {'nonempty','nonnan','scalar','nonnegative'},'noisepow','NF'); 37 | 38 | B = physconst('Boltzmann'); 39 | npow = B * systemp(nf,reftemp) * nbw; 40 | 41 | 42 | % [EOF] 43 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phasedbflib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phasedbflib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phaseddetectlib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phaseddetectlib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phaseddoalib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phaseddoalib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phasedenvlib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phasedenvlib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phasedlib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phasedlib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phasedmisclib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phasedmisclib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phasedstaplib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phasedstaplib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phasedtxrxlib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phasedtxrxlib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/phasedwavlib.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/phasedwavlib.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/polratio.m: -------------------------------------------------------------------------------- 1 | function P = polratio(fv) 2 | %polratio Polarization ratio 3 | % P = polratio(FV) returns the polarization ratio, P, of the field FV. FV 4 | % must be a 2-row matrix. Each column of FV represents the field in the 5 | % form of [Eh;Ev], where Eh is the horizontal component of the field and 6 | % Ev is the vertical component of the field. P is a row vector whose 7 | % number of columns is the same as the number of columns in FV. Each 8 | % entry in P contains the polarization ratio of the corresponding field 9 | % in FV. 10 | % 11 | % The polarization ratio is defined as Ev/Eh. 12 | % 13 | % % Example: 14 | % % Calculate the polarization ratio of a 45-degree linear 15 | % % polarization. 16 | % 17 | % fv = [1;1]; 18 | % p = polratio(fv) 19 | % 20 | % See also phased, polellip, pol2circpol, circpol2pol, stokes. 21 | 22 | % Copyright 2012 The MathWorks, Inc. 23 | 24 | % References: 25 | % [1] Harold Mott, Polarization in Antennas and Radar, John Wiley & Sons, 26 | % 1986 27 | 28 | %#codegen 29 | %#ok<*EMCA> 30 | 31 | validateattributes(fv,{'double'},{'finite','2d','nrows',2},... 32 | 'polratio','FV'); 33 | 34 | Eh = fv(1,:); 35 | Ev = fv(2,:); 36 | 37 | EhZeroIdx = (Eh==0); 38 | if any(EhZeroIdx&(Ev==0)) 39 | coder.internal.errorIf(any(EhZeroIdx&(Ev==0)),'phased:phased:zeroColumns','FV'); 40 | end 41 | 42 | if isreal(fv) 43 | P = inf(1,size(fv,2)); 44 | else 45 | P = complex(inf(1,size(fv,2))); 46 | end 47 | 48 | idx = ~EhZeroIdx; 49 | P(idx) = Ev(idx)./Eh(idx); 50 | 51 | % [EOF] 52 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/private/aboutphased.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/private/aboutphased.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/private/privrocplot.m: -------------------------------------------------------------------------------- 1 | function privrocplot(funcname,xval,yval,param,plotfun,xlabeltext,paramtext,paramunit,typeintitle) 2 | %PRIVROCPLOT plot roc curve 3 | % PRIVROCPLOT(xval,yval,param,plotfun,xlabeltext,typeintitle) plots the 4 | % roc curve as yval vs. xval with changing parameter param. The plot 5 | % uses the function handle plotfun as the plotting method. xlabeltext, 6 | % paramtext, paramunit and typeintitle are used to form x axis label and 7 | % figure title. 8 | 9 | % Copyright 2008-2010 The MathWorks, Inc. 10 | 11 | % Reference 12 | % [1] Mark Richards, Fundamentals of Radar Signal Processing, pg 329 13 | 14 | %#codegen 15 | 16 | if ~isempty(coder.target) 17 | coder.internal.assert(false,'phased:rocsnr:invalidCodegenOutput',funcname); 18 | end 19 | xval = xval(:); 20 | paramlen = length(param); 21 | legendstr{paramlen}=0; % preallocate 22 | h = plotfun(xval,yval); 23 | ax = get(h,'parent'); 24 | if iscell(ax) 25 | ax = ax{1}; 26 | end 27 | ylim = get(ax,'YLim'); 28 | textyinc = (ylim(2)-ylim(1))*0.5/paramlen; 29 | textystart = (ylim(2)+ylim(1))*0.5; 30 | for k = 1:paramlen, 31 | legendstr{k} = [paramtext,'=',num2str(param(k)),paramunit]; 32 | texty = textystart + textyinc*(k-1); 33 | [~,textxidx] = min(abs(yval(:,k)-texty)); 34 | textx = xval(textxidx); 35 | text(textx,texty,legendstr{k}); 36 | end 37 | grid on; 38 | 39 | typeintitle = regexprep(typeintitle,'Nonfluctuating','Nonfluctuating '); 40 | title({typeintitle, ' Receiver Operating Characteristic (ROC) Curves'}); 41 | xlabel(xlabeltext); 42 | ylabel('P_d'); 43 | 44 | 45 | % [EOF] 46 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/private/radareqvalidateoptionalinput.m: -------------------------------------------------------------------------------- 1 | function radareqvalidateoptionalinput(funName,RCS,Ts,Gain,Loss) 2 | %radareqvalidateoptionalinput Validate optional inputs 3 | 4 | % Copyright 2007-2010 The MathWorks, Inc. 5 | 6 | %#codegen 7 | %#ok<*EMCA> 8 | 9 | validateattributes(RCS,{'double'},{'positive','nonempty','scalar','finite'},... 10 | funName,'RCS'); 11 | 12 | validateattributes(Ts,{'double'},{'positive','nonempty','scalar','finite'},... 13 | funName,'Ts'); 14 | 15 | validateattributes(Gain,{'double'},{'real','nonempty'},... 16 | funName,'Gain'); 17 | 18 | cond = numel(Gain) <= 2; 19 | if ~cond 20 | coder.internal.assert(cond,'phased:radareq:invalidDimension','Gain'); 21 | end 22 | 23 | validateattributes(Loss,{'double'},{'real','nonempty','scalar'},... 24 | funName,'Loss'); 25 | 26 | % [EOF] 27 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/radar_equation_app_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/radar_equation_app_16.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/radar_equation_app_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/radar_equation_app_24.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/range2bw.m: -------------------------------------------------------------------------------- 1 | function bw = range2bw(r,c) 2 | %range2bw Convert range resolution to required bandwidth 3 | % BW = range2bw(R) returns the bandwidth, BW (in Hz), needed to 4 | % distinguish two targets separated by the range specified in R (in 5 | % meters). Such capability is often referred to as range resolution. The 6 | % propagation is assumed to be two way, as in a monostatic radar system. 7 | % R must be positive and BW has the same dimensionality as R. 8 | % 9 | % BW = range2bw(R,C) specifies the signal propagation speed, C (in 10 | % meters/second), as a positive scalar. The default value of C is the 11 | % speed of light. 12 | % 13 | % % Example: 14 | % % Calculate the required pulse width for a rectangular waveform used 15 | % % in a monostatic radar system so that it can achieve a range 16 | % % resolution of 10 m. 17 | % 18 | % delta_r = 10; c = 3e8; 19 | % tau = 1/range2bw(delta_r,c) 20 | % 21 | % See also phased, time2range, range2time. 22 | 23 | % Copyright 2012 The MathWorks, Inc. 24 | 25 | % References 26 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Edition, 27 | % McGraw-Hill, 2001 28 | 29 | %#codegen 30 | %#ok<*EMCA> 31 | 32 | phased.internal.narginchk(1,2,nargin); 33 | 34 | if nargin < 2 35 | c = physconst('lightspeed'); 36 | end 37 | 38 | sigdatatypes.validateDistance(r,'range2bw','R',{'positive'}); 39 | sigdatatypes.validateSpeed(c,'range2bw','C',{'positive','scalar'}); 40 | 41 | bw = c./(2*r); 42 | 43 | 44 | % [EOF] 45 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/range2time.m: -------------------------------------------------------------------------------- 1 | function t = range2time(r,c) 2 | %range2time Convert propagation distance to propagation time 3 | % T = range2time(R) returns the time, T (in seconds), that a signal takes 4 | % to propagate given ranges specified in R (in meters). The propagation 5 | % is assumed to be two way, as in a monostatic radar system. R must be 6 | % nonnegative and T has the same dimensionality as R. 7 | % 8 | % T = range2time(R,C) specifies the signal propagation speed, C (in 9 | % meters/second), as a positive scalar. The default value of C is the 10 | % speed of light. 11 | % 12 | % % Example: 13 | % % Calculate the required PRF for a monostatic radar system so that it 14 | % % can have a maximum unambiguous range of 15 km. 15 | % 16 | % rmax = 15e3; c = 3e8; 17 | % prf = 1/range2time(rmax,c) 18 | % 19 | % See also phased, time2range, range2bw. 20 | 21 | % Copyright 2012 The MathWorks, Inc. 22 | 23 | % References 24 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Edition, 25 | % McGraw-Hill, 2001 26 | 27 | %#codegen 28 | %#ok<*EMCA> 29 | 30 | phased.internal.narginchk(1,2,nargin); 31 | 32 | if nargin < 2 33 | c = physconst('lightspeed'); 34 | end 35 | 36 | sigdatatypes.validateDistance(r,'range2time','R'); 37 | sigdatatypes.validateSpeed(c,'range2time','C',{'positive','scalar'}); 38 | 39 | t = 2*r/c; 40 | 41 | 42 | % [EOF] 43 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/rotx.m: -------------------------------------------------------------------------------- 1 | function rotmat = rotx(alpha) 2 | %rotx Rotation matrix around x-axis 3 | % ROTMAT = rotx(ALPHA) returns the rotation matrix, ROTMAT, that rotates 4 | % a point around the x-axis for an angle ALPHA (in degrees). The point is 5 | % specified in the form of [x;y;z], with the x, y, and z axes forming a 6 | % right-handed Cartesian coordinate system. With the x axis pointing 7 | % towards the observer, ALPHA is measured counter-clockwise in the y-z 8 | % plane. 9 | % 10 | % ROTMAT is a 3x3 matrix. The rotation of the point can be achieved by 11 | % left-multiplying ROTMAT with the point's coordinate vector [x;y;z]. 12 | % 13 | % % Example: 14 | % % Rotate a point, (0,1,0), around x-axis 45 degrees 15 | % % counter-clockwise. 16 | % 17 | % p = [0;1;0]; 18 | % p = rotx(45)*p 19 | 20 | % Copyright 2012 The MathWorks, Inc. 21 | 22 | % References: 23 | % [1] James Foley, et. al. Computer Graphics Principles and Practices in 24 | % C, 2nd Edition, Addison-Wesley, 1995 25 | 26 | %#codegen 27 | %#ok<*EMCA> 28 | 29 | eml_assert_no_varsize(1,alpha); 30 | sigdatatypes.validateAngle(alpha,'rotx','ALPHA',{'scalar'}); 31 | % rotate in the direction of y->z, counter-clockwise 32 | rotmat = [1 0 0;0 cosd(alpha) -sind(alpha); 0 sind(alpha) cosd(alpha)]; 33 | 34 | % [EOF] 35 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/roty.m: -------------------------------------------------------------------------------- 1 | function rotmat = roty(beta) 2 | %roty Rotation matrix around y-axis 3 | % ROTMAT = roty(BETA) returns the rotation matrix, ROTMAT, that rotates 4 | % a point around the y-axis for an angle BETA (in degrees). The point is 5 | % specified in the form of [x;y;z], with the x, y, and z axes forming a 6 | % right-handed Cartesian coordinate system. With the y axis pointing 7 | % towards the observer, BETA is measured counter-clockwise in the z-x 8 | % plane. 9 | % 10 | % ROTMAT is a 3x3 matrix. The rotation of the point can be achieved by 11 | % left-multiplying ROTMAT with the point's coordinate vector [x;y;z]. 12 | % 13 | % % Example: 14 | % % Rotate a point, (0,1,0), around y-axis 45 degrees 15 | % % counter-clockwise. 16 | % 17 | % p = [1;0;0]; 18 | % p = roty(45)*p 19 | 20 | % Copyright 2012 The MathWorks, Inc. 21 | 22 | % References: 23 | % [1] James Foley, et. al. Computer Graphics Principles and Practices in 24 | % C, 2nd Edition, Addison-Wesley, 1995 25 | 26 | 27 | %#codegen 28 | %#ok<*EMCA> 29 | 30 | eml_assert_no_varsize(1,beta); 31 | sigdatatypes.validateAngle(beta,'roty','BETA',{'scalar'}); 32 | % rotate in the direction of z->x, counter-clockwise 33 | rotmat = [cosd(beta) 0 sind(beta); 0 1 0; -sind(beta) 0 cosd(beta)]; 34 | 35 | 36 | 37 | % [EOF] 38 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/rotz.m: -------------------------------------------------------------------------------- 1 | function rotmat = rotz(gamma) 2 | %rotz Rotation matrix around z-axis 3 | % ROTMAT = rotz(GAMMA) returns the rotation matrix, ROTMAT, that rotates 4 | % a point around the z-axis for an angle GAMMA (in degrees). The point is 5 | % specified in the form of [x;y;z], with the x, y, and z axes forming a 6 | % right-handed Cartesian coordinate system. With the z axis pointing 7 | % towards the observer, GAMMA is measured counter-clockwise in the x-y 8 | % plane. 9 | % 10 | % ROTMAT is a 3x3 matrix. The rotation of the point can be achieved by 11 | % left-multiplying ROTMAT with the point's coordinate vector [x;y;z]. 12 | % 13 | % % Example: 14 | % % Rotate a point, (0,1,0), around z-axis 45 degrees 15 | % % counter-clockwise. 16 | % 17 | % p = [0;1;0]; 18 | % p = rotz(45)*p 19 | 20 | % Copyright 2012 The MathWorks, Inc. 21 | 22 | % References: 23 | % [1] James Foley, et. al. Computer Graphics Principles and Practices in 24 | % C, 2nd Edition, Addison-Wesley, 1995 25 | 26 | %#codegen 27 | %#ok<*EMCA> 28 | 29 | eml_assert_no_varsize(1,gamma); 30 | sigdatatypes.validateAngle(gamma,'rotz','GAMMA',{'scalar'}); 31 | % rotate in the direction of x->y, counter-clockwise 32 | rotmat = [cosd(gamma) -sind(gamma) 0; sind(gamma) cosd(gamma) 0; 0 0 1]; 33 | 34 | 35 | % [EOF] 36 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/sensordet_targets.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/sensordet_targets.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/slblocks.m: -------------------------------------------------------------------------------- 1 | function blkStruct = slblocks 2 | %SLBLOCKS Defines the Simulink library block representation 3 | % for the Phased Array System Toolbox. 4 | 5 | % Copyright 2013 The MathWorks, Inc. 6 | 7 | blkStruct.Name = sprintf('Phased Array\nSystem\nToolbox'); 8 | blkStruct.OpenFcn = 'phasedlib'; 9 | blkStruct.MaskInitialization = ''; 10 | 11 | % Define the library list for the Simulink Library browser. 12 | % Return the name of the library model and the name for it 13 | Browser(1).Library = 'phasedlib'; 14 | Browser(1).Name = 'Phased Array System Toolbox'; 15 | Browser(1).IsFlat = 0; % Is this library "flat" (i.e. no subsystems)? 16 | 17 | blkStruct.Browser = Browser; 18 | 19 | % Define information for model updater 20 | % blkStruct.ModelUpdaterMethods.fhSeparatedChecks = @spblksUpdateModel; 21 | % blkStruct.ModelUpdaterMethods.fhDetermineBrokenLinks = @spblksBrokenLinksMapping; 22 | 23 | % End of slblocks.m 24 | 25 | 26 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/sonar_equation_app_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/sonar_equation_app_16.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/sonar_equation_app_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/sonar_equation_app_24.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/speed2dop.m: -------------------------------------------------------------------------------- 1 | function dp = speed2dop(sp,lambda) 2 | %speed2dop Convert speed to Doppler shift 3 | % DOP = speed2dop(V,LAMBDA) converts the speed V (in m/s) to the 4 | % corresponding Doppler frequency shift DOP (in Hz). LAMBDA is a scalar 5 | % representing the signal wavelength (in meters). The function assumes 6 | % the Doppler shift is associated with one way wave propagation. 7 | % 8 | % % Example: 9 | % % Calculate the Doppler shift corresponding to the speed of 300 m/s. 10 | % % The signal wavelength is 3 m. 11 | % 12 | % sp = 300; wavelen = 3; 13 | % dp = speed2dop(sp,wavelen) 14 | % 15 | % See also phased, dop2speed, dopsteeringvec. 16 | 17 | % Copyright 2010 The MathWorks, Inc. 18 | 19 | % Reference 20 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Ed., 21 | % McGraw-Hill, 2001 22 | % [2] Theodore Rappaport, Wireless Communications Principles & Practices, 23 | % Prentice Hall, 1996 24 | 25 | %#codegen 26 | %#ok<*EMCA> 27 | 28 | phased.internal.narginchk(2,2,nargin); 29 | 30 | validateattributes(sp,{'double'},{'real','finite'},'speed2dop','SPEED'); 31 | validateattributes(lambda,{'double'},{'scalar','positive','finite'},'speed2dop','LAMBDA'); 32 | 33 | dp = sp/lambda; 34 | 35 | % [EOF] 36 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/systemp.m: -------------------------------------------------------------------------------- 1 | function stemp = systemp(nf,reftemp) 2 | %systemp Receiver system noise temperature 3 | % STEMP = systemp(NF) calculates the effective system noise temperature, 4 | % STEMP (in kelvin), based on the noise figure, NF (in dB). The reference 5 | % temperature is assumed to be 290 kelvin. 6 | % 7 | % STEMP = systemp(NF,REFTEMP) specifies the reference temperature (in 8 | % kelvin) as a nonnegative scalar, REFTEMP, where the default is 290. 9 | % 10 | % % Example: 11 | % % Calculate the system noise temperature of a receiver with a 300 K 12 | % % reference temperature and a 5 dB noise figure. 13 | % 14 | % stemp = systemp(5,300) 15 | % 16 | % See also phased, phased.ReceiverPreamp, noisepow. 17 | 18 | % Copyright 2010-2012 The MathWorks, Inc. 19 | 20 | % Reference 21 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Ed., 22 | % McGraw-Hill, 2001 23 | 24 | %#codegen 25 | %#ok<*EMCA> 26 | 27 | phased.internal.narginchk(1,2,nargin); 28 | if nargin < 2 29 | reftemp = 290; 30 | end 31 | 32 | sigdatatypes.validateTemperature(reftemp,'systemp','REFTEMP',{'scalar'}); 33 | validateattributes(nf,{'double'},... 34 | {'nonempty','nonnan','scalar','nonnegative'},'systemp','NF'); 35 | 36 | stemp = reftemp * db2pow(nf); 37 | 38 | 39 | % [EOF] 40 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/time2range.m: -------------------------------------------------------------------------------- 1 | function r = time2range(t,c) 2 | %time2range Convert propagation time to propagation distance 3 | % R = time2range(T) returns the distance propagated, R (in meters), of a 4 | % signal during the time specified in T (in seconds). The propagation is 5 | % assumed to be two way, as in a monostatic radar system. T must be 6 | % positive and R has the same dimensionality as T. 7 | % 8 | % R = time2range(T,C) specifies the signal propagation speed, C (in 9 | % meters/second), as a positive scalar. The default value of C is the 10 | % speed of light. 11 | % 12 | % % Example: 13 | % % Calculate the minimum detectable range for a monostatic radar 14 | % % system where the pulse width is set to 2 ms. 15 | % 16 | % tau = 2e-3; c = 3e8; 17 | % rmin = time2range(tau,c) 18 | % 19 | % See also phased, range2time, range2bw. 20 | 21 | % Copyright 2012 The MathWorks, Inc. 22 | 23 | % References 24 | % [1] Merrill Skolnik, Introduction to Radar Systems, 3rd Edition, 25 | % McGraw-Hill, 2001 26 | 27 | %#codegen 28 | %#ok<*EMCA> 29 | 30 | phased.internal.narginchk(1,2,nargin); 31 | 32 | if nargin < 2 33 | c = physconst('lightspeed'); 34 | end 35 | 36 | sigdatatypes.validateDuration(t,'time2range','T'); 37 | sigdatatypes.validateSpeed(c,'time2range','C',{'positive','scalar'}); 38 | 39 | r = c*t/2; 40 | 41 | % [EOF] 42 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/unigrid.m: -------------------------------------------------------------------------------- 1 | function y = unigrid(a,step,b,option) 2 | %unigrid Generate a uniform grid 3 | % Y = unigrid(t1,STEP,t2) returns a uniformly sampled grid Y from closed 4 | % interval [t1,t2], starting from t1. STEP specifies the step size. This 5 | % is the same as calling t1:STEP:t2. 6 | % 7 | % Y = unigrid(...,OPTION) specifies the interval openness. OPTION can be: 8 | % '[]': Close at both start and end. (Default) 9 | % '[)': Close at start and open at end. 10 | % 11 | % Note that closed end does not necessarily mean Y will have a sample on 12 | % t2. Whether t2 is present in Y also depends on the value of STEP. 13 | % 14 | % % Example: 15 | % % Generate a grid on [1:2) with step size 0.1. 16 | % 17 | % y = unigrid(1,0.1,2,'[)') 18 | % 19 | % See also phased, val2ind. 20 | 21 | % Copyright 2010-2018 The MathWorks, Inc. 22 | 23 | %#codegen 24 | %#ok<*EMCA> 25 | 26 | phased.internal.narginchk(3,4,nargin); 27 | 28 | if nargin < 4 29 | option = '[]'; 30 | end 31 | 32 | validateattributes(a,{'numeric'},{'nonempty','scalar','finite'},... 33 | 'unigrid','t1'); 34 | validateattributes(step,{'numeric'},{'nonempty','scalar','finite'},... 35 | 'unigrid','STEP'); 36 | validateattributes(b,{'numeric'},{'nonempty','scalar','finite'},... 37 | 'unigrid','t2'); 38 | option = validatestring(option,{'[]','[)'},'unigrid','OPTION'); 39 | tmp = a:step:b; 40 | if ~isempty(tmp) && tmp(end) == b && option(2) == ')' 41 | y = tmp(1:end-1); 42 | else 43 | y = tmp; 44 | end 45 | 46 | 47 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/waveform_analysis_app_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/waveform_analysis_app_16.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phased/waveform_analysis_app_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phased/waveform_analysis_app_24.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATArbitraryGeometry.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATArbitraryGeometry.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATCircularPlanar.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATCircularPlanar.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATConcentric.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATConcentric.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATCylindrical.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATCylindrical.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATSpherical.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATSpherical.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformCircular.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformCircular.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformHexagonal.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformHexagonal.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformLinear.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformLinear.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformRectangular.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ATUniformRectangular.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayCharDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayCharDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayDir2dOps.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayDir2dOps.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayDir3dOps.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayDir3dOps.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraph.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraph.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraph2D.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraph2D.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraph3D.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraph3D.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraphGeometry.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraphGeometry.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraphGratingLobe.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayGraphGratingLobe.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayType.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ArrayType.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/AxesController.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/AxesController.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ElementType.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ElementType.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/SensorArrayViewer.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/SensorArrayViewer.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/SettingsDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/SettingsDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/TaperType.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/TaperType.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ViewType.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/ViewType.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/VisualizationDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/VisualizationDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/makeEqualLength.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+SensorArrayViewer/makeEqualLength.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/AxesController.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/AxesController.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/SettingsDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/SettingsDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/ViewType.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/ViewType.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/VisualizationDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/VisualizationDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguityContour.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguityContour.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguityDelayCut.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguityDelayCut.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguityDopplerCut.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguityDopplerCut.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguitySurface.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAmbiguitySurface.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAutocorrelationFunction.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGAutocorrelationFunction.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGMagnitudeAndPhase.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGMagnitudeAndPhase.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGRealAndImaginary.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGRealAndImaginary.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGSpectrogram.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGSpectrogram.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGSpectrum.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WGSpectrum.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTFMCW.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTFMCW.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTLinearFM.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTLinearFM.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTPhaseCoded.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTPhaseCoded.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTRectangular.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTRectangular.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTSteppedFM.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WTSteppedFM.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformCharDialog.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformCharDialog.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformGraph.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformGraph.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformType.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformType.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformViewer.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/+WaveformViewer/WaveformViewer.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+phased/+apps/+internal/Contents.m: -------------------------------------------------------------------------------- 1 | function Contents 2 | % This is a package for internal use only. The contents in this package may 3 | % be modified or removed without notification. 4 | 5 | % Copyright 2010 The MathWorks, Inc. 6 | 7 | 8 | 9 | % [EOF] 10 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+scopext/registerPhasedExtensions.m: -------------------------------------------------------------------------------- 1 | function registerPhasedExtensions(ext) 2 | % registerPhasedExtensions Register extensions for phased array scopes. 3 | 4 | % Copyright 2014 The MathWorks, Inc. 5 | 6 | r = ext.add('Visuals', 'PhasedMatrix', 'phased.scopes.MatrixVisual'); 7 | r.Visible = false; 8 | r = ext.add('Visuals', 'IntensityVisual', 'phased.scopes.IntensityVisual', ... 9 | getString(message('phased:scopes:IntensityDescription')), ... 10 | getString(message('phased:scopes:IntensityLabel'))); 11 | r.Visible = false; 12 | r = ext.add('Visuals', 'ScenarioVisual', 'phased.scopes.ScenarioVisual'); 13 | r.Visible = false; 14 | % [EOF] 15 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+slexportprevious/+preprocess/CustAnt.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+slexportprevious/+preprocess/CustAnt.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/+slexportprevious/+preprocess/SubarrayCustomSteering.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/+slexportprevious/+preprocess/SubarrayCustomSteering.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/radarWaveformAnalyzer.m: -------------------------------------------------------------------------------- 1 | function radarWaveformAnalyzer 2 | %radarWaveformAnalyzer Analyze performance characteristics of pulsed, 3 | %frequency modulated, and phase coded waveforms 4 | % radarWaveformAnalyzer is an interactive app for the analysis of radar 5 | % and sonar pulsed and continuous waveforms. It allows the user to 6 | % select a waveform from a list, change its parameters and interact with 7 | % several updated plots, such as the magnitude and phase response, the 8 | % ambiguity function, spectrum and spectrogram. The app also calculates 9 | % several waveform characteristics. The user can generate MATLAB code 10 | % which would create plots similar to the current app view. 11 | 12 | % Copyright 2012-2013 The MathWorks, Inc. 13 | 14 | phased.apps.internal.WaveformViewer.WaveformViewer; 15 | end 16 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/sensorArrayAnalyzer.m: -------------------------------------------------------------------------------- 1 | function sensorArrayAnalyzer 2 | %sensorArrayAnalyzer Analyze beam pattern of linear, planar, and conformal 3 | %sensor arrays 4 | % sensorArrayAnalyzer is an interactive app for the analysis and 5 | % visualization of phased arrays. It allows the user to select an array 6 | % from a list, change its parameters and interact with several updated 7 | % plots, such as the array geometry, the array response pattern. The app 8 | % also calculates several array characteristics like array gain, array 9 | % span and the total number of elements. The user can generate MATLAB 10 | % code which would create plots similar to the current app view. 11 | 12 | % Copyright 2012-2014 The MathWorks, Inc. 13 | 14 | phased.apps.internal.SensorArrayViewer.SensorArrayViewer; 15 | end 16 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phasedapps/slexportprevious.rules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phasedapps/slexportprevious.rules -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/+phased/+scopes/MatrixViewerSpecification.m: -------------------------------------------------------------------------------- 1 | classdef MatrixViewerSpecification < matlabshared.scopes.SystemObjectScopeSpecification 2 | %MatrixViewerSpecification Define the MatrixViewerSpecification class. 3 | 4 | % Copyright 2013 The MathWorks, Inc. 5 | % $Revision: 1.1.6.1 $ $Date: 2013/05/28 03:41:50 $ 6 | 7 | methods 8 | 9 | function this = MatrixViewerSpecification(varargin) 10 | %MatrixViewerSpecification Construct the 11 | %MatrixViewerSpecification class. 12 | 13 | mlock; 14 | 15 | this@matlabshared.scopes.SystemObjectScopeSpecification(varargin{:}); 16 | end 17 | 18 | function cfgFile = getConfigurationFile(~) 19 | cfgFile = 'phasedmatrixviewer.cfg'; 20 | end 21 | 22 | function args = getHelpArgs(~, ~) 23 | args = ''; 24 | end 25 | 26 | function appName = getAppName(~) 27 | appName = 'Matrix Viewer'; 28 | end 29 | 30 | function hgRoot = getHGRoot(~) 31 | hgRoot = groot; 32 | end 33 | 34 | function b = isToolbarCompact(~, tag) 35 | b = strcmp(tag, 'autoscale'); 36 | end 37 | end 38 | 39 | methods (Hidden) 40 | function b = useMCOSExtMgr(~) 41 | b = true; 42 | end 43 | end 44 | end 45 | 46 | % [EOF] 47 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/+phased/+scopes/MatrixViewerValidator.m: -------------------------------------------------------------------------------- 1 | classdef MatrixViewerValidator < matlabshared.scopes.Validator 2 | %MatrixViewerValidator Define the MatrixViewerValidator class. 3 | 4 | % Copyright 2013 The MathWorks, Inc. 5 | % $Revision: 1.1.6.1 $ $Date: 2013/05/28 03:41:51 $ 6 | 7 | properties (Constant) 8 | Scale = @(val) ~(val <= 0 || ~isscalar(val) || isnan(val) || isinf(val) || ~isreal(val)); 9 | Start = @(val) ~(~isscalar(val) || isnan(val) || isinf(val) || ~isreal(val)); 10 | Invert = @(val) ~(~islogical(val) || ~isscalar(val)); 11 | end 12 | end 13 | 14 | % [EOF] 15 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/+slstart/+internal/PhasedArraySystemToolboxFeaturedExampleProvider.m: -------------------------------------------------------------------------------- 1 | classdef PhasedArraySystemToolboxFeaturedExampleProvider < slstart.internal.FeaturedExampleProvider 2 | % Stub implementation of slstart.internal.FeaturedExampleProvider for 3 | % a product with no feature examples. 4 | 5 | % Copyright 2015 The MathWorks, Inc. 6 | 7 | properties (GetAccess = public, SetAccess = private) 8 | % The customer visible product name this example ships with 9 | Product = 'Phased Array System Toolbox'; 10 | 11 | % The short name for this product as used by the Help Browser. 12 | ProductShortName = 'phased'; 13 | 14 | % Names of featured examples in this product. 15 | FeaturedExamples = {'slexMonostaticRadarExampleExample',... 16 | 'slexBistaticExampleExample',... 17 | 'slexFMCWExampleExample',... 18 | 'slexMicrophoneBeamformerExampleExample',... 19 | 'slexBeamformerExampleExample',... 20 | 'slexBeamscanMVDRDOAExampleExample',... 21 | 'slexSTAPExampleExample'}; 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/ArrayResponseVisual2DPolar.m: -------------------------------------------------------------------------------- 1 | function this = ArrayResponseVisual2DPolar(varargin) 2 | %PHASEDVISUAL Construct a PHASEDVISUAL object 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | this = phaseddemoscope.ArrayResponseVisual2DPolar; 7 | this.initVisual(varargin{:}); 8 | 9 | % [EOF] 10 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/chkvectorinput.m: -------------------------------------------------------------------------------- 1 | function [angles, response] = chkvectorinput(this) 2 | 3 | % Copyright 2011 The MathWorks, Inc. 4 | 5 | Nresp = validateinputs(this); 6 | % Loop through all the responses. 7 | for cnt = 1:Nresp, 8 | angles(:,cnt) = this(cnt).Angle; %#ok % the property angle is not included here 9 | response(:,cnt) = this(cnt).Pattern; %#ok 10 | end 11 | end 12 | 13 | function [Nresp] = validateinputs(this) 14 | %VALIDATEINPUTS Validate inputs. 15 | % Validates inputs, and pre-allocates memory. 16 | 17 | Nresp = numel(this); 18 | dataLen = numel(this(1).Pattern); % Cache length of 1 data set to compare against. 19 | 20 | % Validate inputs and error if necessary. 21 | validateresponses(this,Nresp,dataLen); 22 | end 23 | 24 | function validateresponses(this,Nresp,dataLen) 25 | %VALIDATERESPONSES Validate the array responses. 26 | % Verify that all the responses are the same length. 27 | for k = 2:Nresp, 28 | validateattributes(this(k).Pattern,{'double'},{'numel',dataLen},... 29 | '','array response'); 30 | end 31 | end -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/getPropertyDb.m: -------------------------------------------------------------------------------- 1 | function propertyDb = getPropertyDb 2 | %GETPROPERTYDB Get the propertyDb. 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | propertyDb =uiscopes.AbstractLineVisual.getPropertyDb; 7 | propertyDb.add('XLimits', 'mxArray', [-180 180]); 8 | propertyDb.add('Polar', 'bool', true); 9 | 10 | % [EOF] 11 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/onDataSourceChanged.m: -------------------------------------------------------------------------------- 1 | function onDataSourceChanged(this) 2 | %ONDATASOURCECHANGED 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | % If we aren't rendered, we don't need to do anything here. 7 | source = this.Application.DataSource; 8 | if ~ishghandle(this.Axes) || isempty(source) 9 | return; 10 | end 11 | 12 | this.NewDataListener = addNewDataListener(this.Application, makeOnNewData(this)); 13 | 14 | % ------------------------------------------------------------------------- 15 | function cb = makeOnNewData(this) 16 | 17 | cb = @(hSource) onNewData(this, hSource); 18 | 19 | % [EOF] -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/propertyChanged.m: -------------------------------------------------------------------------------- 1 | function propertyChanged(this, eventData) 2 | %PROPERTYCHANGED React to changes in the contained property objects. 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | if ~ischar(eventData) 7 | eventData = get(eventData.AffectedObject, 'Name'); 8 | end 9 | 10 | switch eventData 11 | case 'xlimits' 12 | set(this.Axes, 'XLim', this.getPropValue('XLimits')); 13 | case 'polar' 14 | keyboard 15 | end 16 | 17 | % [EOF] 18 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/schema.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/schema.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/setup.m: -------------------------------------------------------------------------------- 1 | function setup(this, hVisualParent) 2 | %SETUP Create basic ui elements for the visualization 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | setupAxes(this, hVisualParent); 7 | 8 | %% for 2D polar 9 | if this.polarplot 10 | setpolaraxes(this); 11 | 12 | % Set the YTicks. 13 | set(this.Axes,'YLim',[-1 1]); 14 | set(this.Axes,'XLim',[-1 1]); 15 | set(this.Axes,'Visible','off'); 16 | 17 | ylbl = 'Normalized Response Pattern '; 18 | hylbl = get(this.Axes,'YLabel'); 19 | set(hylbl,'String',ylbl); 20 | set(hylbl,'Visible','on'); 21 | else 22 | % Set the X and Y axes labels. 23 | ylbl = 'Normalized Response Pattern'; 24 | set(get(this.Axes,'YLabel'),'String',ylbl); 25 | xlabel(this.Axes, 'Angle (degrees)'); 26 | 27 | % Set the YTicks. 28 | set(this.Axes,'YLim',[-180 180]); 29 | set(this.Axes,'XLim',[0 1]); 30 | end 31 | end 32 | % [EOF] 33 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/update.m: -------------------------------------------------------------------------------- 1 | function update(this) 2 | %UPDATE 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | % Cache the new frame data 7 | source = this.Application.DataSource; 8 | 9 | % get data, we only show the last frame 10 | 11 | newData = source.getRawData; 12 | if isempty(newData) 13 | return; 14 | end 15 | 16 | %% line display, add data to scope 17 | 18 | newData = newData{1}; 19 | theta1 = -180:180; 20 | theta = theta1.*pi./180; 21 | if all(newData==0) 22 | [xx, yy] = pol2cart(theta',1); 23 | else 24 | [xx, yy] = pol2cart (theta',newData); 25 | end 26 | 27 | if isempty(this.Lines) 28 | this.Lines = line('Parent',this.Axes,... 29 | 'XData',xx ,'YData',yy,'Color','b'); 30 | else 31 | set(this.Lines,'XData',xx,'YData',yy,'Color','b'); 32 | end 33 | end 34 | 35 | 36 | % [EOF] 37 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/@ArrayResponseVisual2DPolar/validate.m: -------------------------------------------------------------------------------- 1 | function varargout = validate(hDlg) 2 | %VALIDATE Returns true if this object is valid 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | % Ask the super class to check the properties it adds. 7 | [b, exception] = uiscopes.AbstractLineVisual.validate(hDlg); 8 | %b = true; 9 | %exception = MException.empty; % if b is true, the exception should be an empty exception object 10 | PhaseString = hDlg.getWidgetValue([hDlg.getSource.Register.Name 'DisplayPhase']); 11 | 12 | % The source data should be non-negative value, check that the phase range 13 | % is a valid variable 14 | [~, errid, errmsg] = uiservices.evaluate(PhaseString); 15 | if ~isempty(errid) 16 | b=false; 17 | exception = MException(errid,errmsg); 18 | end 19 | 20 | if nargout 21 | varargout = {b, exception}; 22 | elseif ~b 23 | throw(exception); 24 | end 25 | 26 | % [EOF] 27 | 28 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/schema.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/schema.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddemoscope/scopext.m: -------------------------------------------------------------------------------- 1 | function scopext(ext) 2 | %SCOPEXT 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | % There exist two ways to add src-dcv pairs to Visual object: 7 | % available at http://inside.mathworks.com/wiki/Scope_Source_Visual_API 8 | % We can add more visual plugin's but not needed for this project 9 | 10 | % Source 11 | h = ext.add('Visuals', 'Array Polar Response', 'phaseddemoscope.ArrayResponseVisual2DPolar', ... 12 | 'Array Response Pattern'); 13 | h.Visible = false; 14 | 15 | % [EOF] -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddialog/@MatrixViewer/MatrixViewer.m: -------------------------------------------------------------------------------- 1 | function this = MatrixViewer(block,varargin) 2 | %MatrixViewer constructs phaseddialog.MatrixViewer object. 3 | % MatrixViewer(block) creates a phaseddialog.MatrixViewer dialog object associated with 4 | % a MatrixViewer block. block may be an MatrixViewer block path (gcb), 5 | % block handle (gcbh) or associated UDD object. 6 | 7 | % Copyright 2014 The MathWorks, Inc. 8 | 9 | this = phaseddialog.MatrixViewer(block); 10 | this.init(block); 11 | this.loadFromBlock; 12 | 13 | %[EOF] 14 | 15 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddialog/@MatrixViewer/loadFromBlock.m: -------------------------------------------------------------------------------- 1 | function loadFromBlock(h) 2 | %loadFromBlock loads parameters from Simulink block. 3 | % LOADFROMBLOCK(h) loads Matrix Viewer specific parameters 4 | % into object h from the associated SL block. 5 | 6 | % Copyright 1995-2003 The MathWorks, Inc. 7 | 8 | % Image Prop Tab 9 | h.CMapStr = h.Block.CMapStr; 10 | h.YMin = h.Block.YMin; 11 | h.YMax = h.Block.YMax; 12 | h.DataLimits = h.Block.DataLimits; 13 | h.XData = h.Block.XData; 14 | h.YData = h.Block.YData; 15 | h.AxisColorbar = strcmpi(h.Block.AxisColorbar,'on'); 16 | % Axis Prop tab 17 | h.AxisOrigin = h.Block.AxisOrigin; 18 | h.XLabel = h.Block.XLabel; 19 | h.YLabel = h.Block.YLabel; 20 | h.ZLabel = h.Block.ZLabel; 21 | h.FigPos = h.Block.FigPos; 22 | h.AxisZoom = strcmpi(h.Block.AxisZoom,'on'); 23 | 24 | % [EOF] 25 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddialog/@MatrixViewer/schema.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddialog/@MatrixViewer/schema.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddialog/schema.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/@phaseddialog/schema.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/ArrayResponseDemo2DPolarScope.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/ArrayResponseDemo2DPolarScope.cfg -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/ArrayResponseDemo2DPolarScope.m: -------------------------------------------------------------------------------- 1 | classdef ArrayResponseDemo2DPolarScope < matlabshared.scopes.UnifiedSystemScope 2 | % ArrayResponseDemo2DPolarScope 2D polar array response scope 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | properties 7 | % Name Caption to display on scope window 8 | % Specify the caption to display on the scope window as any string. 9 | % The default value of this property is 'Phased Response Pattern 10 | % Scope'. This property is tunable. 11 | Name = 'Array Response Pattern 2-D Polar Scope'; 12 | end 13 | 14 | 15 | methods 16 | function this=ArrayResponseDemo2DPolarScope(varargin) 17 | this@matlabshared.scopes.UnifiedSystemScope(varargin{:}); 18 | end 19 | function set.Name(this, value) 20 | setScopeName(this, value); 21 | this.Name = value; 22 | end 23 | end 24 | 25 | methods 26 | function desc = getDescription(~) 27 | desc = 'Array Response Pattern 2-D Polar Scope'; 28 | end 29 | end 30 | methods (Access = protected) 31 | function hScopeCfg = getScopeCfg (~) 32 | hScopeCfg = ArrayResponseDemo2DPolarScopeCfg; 33 | end 34 | end 35 | end 36 | 37 | 38 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/ArrayResponseDemo2DPolarScopeCfg.m: -------------------------------------------------------------------------------- 1 | classdef ArrayResponseDemo2DPolarScopeCfg < scopeextensions.AbstractSystemObjectScopeCfg 2 | % define the phased scope config class 3 | 4 | % Copyright 2010-2011 The MathWorks, Inc. 5 | 6 | methods 7 | function this = ArrayResponseDemo2DPolarScopeCfg(varargin) 8 | 9 | this@scopeextensions.AbstractSystemObjectScopeCfg(varargin{:}); 10 | end 11 | end 12 | 13 | methods 14 | function c = getHiddenTypes(~) 15 | c = {}; 16 | end 17 | function appName = getAppName(~) 18 | %getAppName Returns the simple application name. 19 | appName = 'Array Response Pattern 2-D Polar Scope'; 20 | end 21 | 22 | 23 | function cfgFile = getConfigurationFile(~) 24 | cfgFile = 'ArrayResponseDemo2DPolarScope.cfg'; 25 | end 26 | 27 | function helpArgs = getHelpArgs(this,key) %#ok 28 | helpArgs = []; 29 | end 30 | 31 | end 32 | 33 | end 34 | 35 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/cluttersignaldemo.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/cluttersignaldemo.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperBuildPhasedDemoMex.m: -------------------------------------------------------------------------------- 1 | function helperBuildPhasedDemoMex(inputFileName) 2 | % This function helperBuildPhasedDemoMex is only in support of 3 | % RadarStreamExample. It may be removed in a future release. 4 | 5 | tempDir = tempname; 6 | if ~exist(tempDir,'dir') 7 | mkdir(tempDir); 8 | end 9 | 10 | currentDir = cd(tempDir); 11 | codegen(inputFileName) 12 | dotidx = strfind(inputFileName,'.'); 13 | if isempty(dotidx) 14 | dotidx = length(inputFileName)+1; 15 | end 16 | mexFileName = sprintf('%s_mex.*',inputFileName(1:dotidx-1)); 17 | copyfile(mexFileName,currentDir); 18 | cd(currentDir); 19 | 20 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperCylinderRCSPattern.m: -------------------------------------------------------------------------------- 1 | function [rcs,az,el] = helperCylinderRCSPattern(c,fc,az,el) 2 | % This function helperCylinderRCSPattern is only in support of 3 | % TargetRCSExample and slexWidebandMonostaticRadarExample. It may change in 4 | % a future release. 5 | 6 | % Copyright 2015-2016 The MathWorks, Inc. 7 | 8 | % Reference 9 | % [1] Bassem Mahafza, Radar Systems Analysis and Design Using MATLAB, 2nd 10 | % Ed. Chapman & Hall/CRC, 2005 11 | 12 | if nargin<3 || isempty(az) 13 | az = -180:180; 14 | end 15 | if nargin<4 || isempty(el) 16 | el = -90:90; 17 | end 18 | 19 | r = 1; % cylinder radius 20 | H = 10; % cylinder height 21 | 22 | [elg,~,fcg] = ndgrid(el(:),az(:),fc(:)); 23 | lambda = c./fcg; 24 | 25 | rcs = lambda.*(r*cosd(elg))./(8*pi*sind(elg).^2); 26 | ind0 = elg==0; 27 | rcs(ind0) = 2*pi*H^2*r./lambda(ind0); % [1] eq 13.50 & 13.51 28 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperPlotChannelAngularResponse.m: -------------------------------------------------------------------------------- 1 | function helperPlotChannelAngularResponse(txarraypos,rxarraypos,Hmat,channelstr) 2 | % This function is only in support of ArrayProcessingForMIMOExample. It may 3 | % be removed in a future release. 4 | 5 | % Copyright 2016 The MathWorks, Inc. 6 | 7 | ang = -90:90; 8 | txstv = steervec(txarraypos,ang); 9 | rxstv = steervec(rxarraypos,ang); 10 | resp = abs(txstv.'*Hmat*conj(rxstv)); % matrix NtxNr 11 | % respspan = max(resp(:))-min(resp(:)); 12 | % C = (resp-min(resp(:)))/respspan; 13 | h = surf(ang,ang,resp); 14 | h.EdgeColor = 'none'; 15 | view(0,90); 16 | xlabel('Arrival Angle (deg)'); 17 | ylabel('Departure Angle (deg)'); 18 | title(sprintf('Angular Response of %s Channel',channelstr)); 19 | axis tight 20 | 21 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperRadarStreamRun_mex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperRadarStreamRun_mex.mexw64 -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperslexBeamformerInterferenceParam.m: -------------------------------------------------------------------------------- 1 | function helperslexBeamformerInterferenceParam 2 | % This function is only in support of slexBeamscanMVDRDOAExample. 3 | % It may be removed in a future release. 4 | 5 | % Copyright 2014-2016 The MathWorks, Inc. 6 | 7 | % Environment 8 | prop_speed = physconst('LightSpeed'); % Propagation speed 9 | fc = 100e6; % Operating frequency 10 | lambda = prop_speed/fc; % Wavelength 11 | paramBeamformerI.propSpeed = prop_speed; 12 | paramBeamformerI.fc = fc; 13 | 14 | % Antenna 15 | paramBeamformerI.Antenna = phased.ULA('NumElements',10,'ElementSpacing',0.5*lambda); 16 | 17 | % Pulse 18 | fs = 1000; %1khz 19 | paramBeamformerI.fs = fs; 20 | prf = 1/.3; 21 | paramBeamformerI.prf = prf; 22 | paramBeamformerI.samplesPerFrame = fs/prf; 23 | 24 | % LCMV Constraint Matrix 25 | steeringvec = phased.SteeringVector('SensorArray',paramBeamformerI.Antenna); 26 | paramBeamformerI.cMatrix = steeringvec(fc,[43 45 47]); 27 | 28 | assignin('base','paramBeamformerI',paramBeamformerI); 29 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperslexFMCWMultiTargetsDOAParam.m: -------------------------------------------------------------------------------- 1 | paramFMCWRSA.Fs = 150e6; 2 | paramFMCWRSA.T = 5.5*400/3e8; 3 | paramFMCWRSA.ppow = 0.00316227766016838; 4 | paramFMCWRSA.TxGain = 36.0042142909402; 5 | paramFMCWRSA.RadarVel = [ 65*1600/3600; 0; 0]; 6 | paramFMCWRSA.RadarPos = [0;0;0]; 7 | paramFMCWRSA.Fc = 77e9; 8 | paramFMCWRSA.RCS = [100 100 100]; 9 | paramFMCWRSA.CarVel = [70*1600/3600 80*1600/3600 55*1600/3600;0 0 0;0 0 0]; 10 | paramFMCWRSA.CarPos = [80 40 20;2 -2 0;0 0 0]; 11 | paramFMCWRSA.C = 3e8; 12 | paramFMCWRSA.NF = 4.5; 13 | paramFMCWRSA.RxGain = 42.0042142909402; 14 | paramFMCWRSA.lambda = paramFMCWRSA.C/paramFMCWRSA.Fc; -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperslexFMCWMultiTargetsParam.m: -------------------------------------------------------------------------------- 1 | function helperslexFMCWMultiTargetsParam 2 | % This function helperslexFMCWMultiTargetsParam is only in support of 3 | % slexFMCWMultiTargetsExample. It may be removed in a future release. 4 | 5 | % Copyright 2014 The MathWorks, Inc. 6 | 7 | paramFMCWMT.Fs = 150e6; 8 | paramFMCWMT.bw = 150e6; 9 | paramFMCWMT.T = 5.5*400/3e8; 10 | paramFMCWMT.ppow = 0.00316227766016838; 11 | paramFMCWMT.TxGain = 36.0042142909402; 12 | paramFMCWMT.RadarVel = [ 100*1000/3600; 0; 0]; 13 | paramFMCWMT.RadarPos = [0;0;0]; 14 | paramFMCWMT.Fc = 77e9; 15 | paramFMCWMT.RCS = 50; 16 | paramFMCWMT.CarVel = [ 60*1000/3600; 0; 0]; 17 | paramFMCWMT.CarPos = [50;0;0]; 18 | paramFMCWMT.C = 3e8; 19 | paramFMCWMT.NF = 4.5; 20 | paramFMCWMT.RxGain = 42.0042142909402; 21 | paramFMCWMT.slope = paramFMCWMT.bw/paramFMCWMT.T; 22 | paramFMCWMT.lambda = paramFMCWMT.C/paramFMCWMT.Fc; 23 | paramFMCWMT.TruckRCS = 1000; 24 | paramFMCWMT.TruckVel = [ 130*1000/3600; 0; 0]; 25 | paramFMCWMT.TruckPos = [150;0;0]; 26 | paramFMCWMT.NRangeFFT = 2048; 27 | paramFMCWMT.NDopplerFFT = 256; 28 | paramFMCWMT.NBuffer = 64; 29 | 30 | assignin('base','paramFMCWMT',paramFMCWMT) -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/helperslexFMCWParam.m: -------------------------------------------------------------------------------- 1 | function helperslexFMCWParam 2 | % This function helperslexFMCWParam is only in support of 3 | % slexFMCWExample. It may be removed in a future release. 4 | 5 | % Copyright 2014 The MathWorks, Inc. 6 | 7 | paramFMCW.Fs = 150e6; 8 | paramFMCW.T = 5.5*400/3e8; 9 | paramFMCW.ppow = 0.00316227766016838; 10 | paramFMCW.TxGain = 36.0042142909402; 11 | paramFMCW.RadarVel = [ 100*1000/3600; 0; 0]; 12 | paramFMCW.RadarPos = [0;0;0]; 13 | paramFMCW.Fc = 77e9; 14 | paramFMCW.RCS = 100; 15 | paramFMCW.CarVel = [ 96*1000/3600; 0; 0]; 16 | paramFMCW.CarPos = [43;0;0]; 17 | paramFMCW.C = 3e8; 18 | paramFMCW.NF = 4.5; 19 | paramFMCW.RxGain = 42.0042142909402; 20 | 21 | assignin('base','paramFMCW',paramFMCW) -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/html/Pattern_fmcw_patch_at_76_5_GHz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/html/Pattern_fmcw_patch_at_76_5_GHz.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/html/Pattern_fmcw_patch_at_77_6_GHz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/html/Pattern_fmcw_patch_at_77_6_GHz.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/html/RFPropagationExample_tworay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/html/RFPropagationExample_tworay.png -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/mtiradardemoclutter.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/mtiradardemoclutter.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/phasedmatrixviewer.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/phasedmatrixviewer.cfg -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/radarTask.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/radarTask.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWExample.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWExample.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWExample_sfun.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWExample_sfun.mexw64 -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsDOAExample.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsDOAExample.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsDOAExample_sfun.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsDOAExample_sfun.mexw64 -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsExample.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsExample.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsExample_sfun.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWMultiTargetsExample_sfun.mexw64 -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWRFExample.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWRFExample.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWRFExample_sfun.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexFMCWRFExample_sfun.mexw64 -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexPRFSelectionSEExample.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexPRFSelectionSEExample.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexPRFSelectionSEExample_sfun.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexPRFSelectionSEExample_sfun.mexw64 -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexWidebandMonostaticRadarExample.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexWidebandMonostaticRadarExample.slx -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexWidebandMonostaticRadarExample_sfun.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/slexWidebandMonostaticRadarExample_sfun.mexw64 -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/phased/phaseddemos/twospeeches.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/phased/phaseddemos/twospeeches.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/adjust_angles.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/adjust_angles.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/calc_intersection.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/calc_intersection.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/cr_build_scene.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/cr_build_scene.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/cr_reorder_clusters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/cr_reorder_clusters.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/ray_tracer_ant1.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/ray_tracer_ant1.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/ray_tracer_ant2.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/ray_tracer_ant2.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/reflect_0.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/reflect_0.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/reflect_1.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/reflect_1.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/ray_tracer/reflect_2.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/ray_tracer/reflect_2.p -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_arm_leg_400k.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_arm_leg_400k.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_arm_leg_400k_50.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_arm_leg_400k_50.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_human_arm.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_human_arm.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_human_arm_leg.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_human_arm_leg.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_human_arm_leg_forward.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_human_arm_leg_forward.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_human_arm_leg_forward_jie.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_human_arm_leg_forward_jie.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_human_run.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_human_run.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/6000_100_standing.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/6000_100_standing.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/Real_Ch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/Real_Ch.jpg -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/Real_Ch.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/Real_Ch.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/Real_Ch_.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/Micro_Doppler_Radar_Simulator/work/Real_Ch_.mat -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/cr_ch_model.m: -------------------------------------------------------------------------------- 1 | % /************************************************************************************* 2 | % Intel Corp. 3 | % 4 | % Project Name: Conference Room Channel Model 5 | % File Name: cr_ch_model.m 6 | % Authors: A. Lomayev, R. Maslennikov, Y.Gagiev 7 | % Version: 1.0 8 | % History: May 2010 created 9 | % April 2016 updated 10 | % 11 | % ************************************************************************************* 12 | % Description: 13 | % 14 | % function returns channel impulse response for Conference Room (CR) environment 15 | % 16 | % [imp_res] = cr_ch_model() 17 | % 18 | % Inputs: 19 | % 20 | % no inputs, parameters are set in cr_ch_cfg.m configuration file 21 | % 22 | % Outputs: 23 | % 24 | % 1. imp_res - channel impulse response 25 | % 26 | % Update: changed function interfaces 27 | % *************************************************************************************/ 28 | function [imp_res] = cr_ch_model(Radar_x,Radar_y,Radar_z) 29 | 30 | % load configuration structure <- cr_ch_cfg.m 31 | cfg = cr_ch_cfg; 32 | 33 | % generate space-time channel impulse response realization 34 | [ch] = gen_cr_ch(cfg,Radar_x,Radar_y,Radar_z); 35 | 36 | % apply beamforming algorithm 37 | [imp_res] = beamforming(cfg.bf, ch); 38 | 39 | % continuous time to descrete time conversion 40 | [imp_res] = digitize(cfg.bf.ant_type, cfg.sample_rate, imp_res); 41 | 42 | % normalization according to Pnorm parameter 43 | [imp_res] = normalize(cfg.bf.ant_type, cfg.Pnorm, imp_res); 44 | -------------------------------------------------------------------------------- /Micro_Doppler_Radar_Simulator/work/cr_test.m: -------------------------------------------------------------------------------- 1 | % /************************************************************************************* 2 | % Intel Corp. 3 | % 4 | % Project Name: Conference Room Channel Model 5 | % File Name: cr_test.m 6 | % Authors: A. Lomayev, R. Maslennikov, Y. Gagiev 7 | % Version: 1.0 8 | % History: May 2010 created 9 | % 10 | % ************************************************************************************* 11 | % Description: 12 | % 13 | % test 14 | % 15 | % *************************************************************************************/ 16 | clear all 17 | clc 18 | 19 | seed = 1; 20 | randn('state',seed); 21 | rand('state',seed); 22 | for iter = 1 : 10 23 | [imp_res] = cr_ch_model; 24 | 25 | figure; 26 | stem(abs(imp_res.h11),'b') 27 | grid on 28 | title('example of channel impulse response h11 realization','FontSize',8,'FontWeight','bold') 29 | xlabel('samples','FontSize',8,'FontWeight','bold'); 30 | set(gca,'FontSize',8,'FontWeight','bold'); 31 | end 32 | 33 | -------------------------------------------------------------------------------- /README.assets/DAHC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/README.assets/DAHC.png -------------------------------------------------------------------------------- /README.assets/channel_simulation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/README.assets/channel_simulation.png -------------------------------------------------------------------------------- /README.assets/image-20231116131857577.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/README.assets/image-20231116131857577.png -------------------------------------------------------------------------------- /zed_pose/.gitignore: -------------------------------------------------------------------------------- 1 | data_18/ 2 | data_34/ 3 | data_70/ 4 | monostatic_radar_-3m_0m_-4m/ 5 | monostatic_radar_0m_0m_-8m/ 6 | monostatic_radar_0m_0m_0m/ 7 | -------------------------------------------------------------------------------- /zed_pose/README.md: -------------------------------------------------------------------------------- 1 | This folder contains simulation codes for spectrogram for zed skeletons. 2 | -------------------------------------------------------------------------------- /zed_pose/rcsellipsoid.m: -------------------------------------------------------------------------------- 1 | function rcs = rcsellipsoid(a,b,c,phi_i,theta_i,phi_s,theta_s) 2 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3 | % This program calculates the bistatic (or monostatic) RCS of an ellipsoid 4 | % with semi-axis lengths of a, b, and c. 5 | % phi_i, theta_i: the aspect and azimuth angles of incident waves. 6 | % phi_s, theta_s: the aspect and azimuth angles of scattered waves. 7 | % Seeing details for ellipsoid rcs settings, please refer to 8 | % https://rzy0901.github.io/post/rcs/#bistatic-rcs-estimation-of-an-ellipsoid5-6 9 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 10 | if nargin ~=5 && nargin ~= 7 11 | nargin 12 | error("Please use correct input parameters.") 13 | end 14 | if nargin == 5 % monostatic rcs 15 | rcs = (pi*a^2*b^2*c^2)/(a^2*(sin(theta_i))^2*(cos(phi_i))^2+b^2*(sin(theta_i))^2*(sin(phi_i))^2+c^2*(cos(theta_i))^2)^2; 16 | end 17 | if nargin == 7 % bistatic rcs 18 | rcs = (4*pi*a^2*b^2*c^2)*((1+cos(theta_i)*cos(theta_s))*cos(phi_s-phi_i)+sin(theta_i)*sin(theta_s))^2/ ... 19 | (a^2*(sin(theta_i)*cos(phi_i)+sin(theta_s)*cos(phi_s))^2+ ... 20 | b^2*(sin(theta_i)*sin(phi_i)+sin(theta_s)*sin(phi_s))^2+ ... 21 | c^2*(cos(theta_i)+cos(theta_s))^2 ... 22 | )^2; 23 | end -------------------------------------------------------------------------------- /zed_pose/test.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rzy0901/testSpectrogram/763aee8daa386cacffb7b8946fad73fd91bfab61/zed_pose/test.gif --------------------------------------------------------------------------------