reflect
Reflected signal from walking pedestrian
Description
returns the reflected signal, Y = reflect(pedestrian,X,ANG)Y, from incident signals,
X, on a pedestrian. The reflected signal is the sum of signals from
all body segments. ANG defines the directions of the incident and
reflected signals with respect to the body segments.
Examples
Compute the reflected radar signal from a pedestrian moving along the x-axis away from the origin. The radar operates at 24 GHz and is located at the origin. The pedestrian is initially 100 meters from the radar. Transmit a linear FM waveform having a 300 MHz bandwidth. The reflected signal is captured at the moment the pedestrian starts to move and at two seconds into the motion.
Create a linear FM waveform and a free space channel to propagate the waveform.
c = physconst('Lightspeed'); bw = 300.0e6; fs = bw; fc = 24.0e9; wav = phased.LinearFMWaveform('SampleRate',fs,'SweepBandwidth',bw); x = wav(); channel = phased.FreeSpace('OperatingFrequency',fc,'SampleRate',fs, ... 'TwoWayPropagation',true);
Create the pedestrian object. Set the initial position of the pedestrian to 100 m on the x-axis with initial heading along the positive x-direction. The pedestrian height is 1.8 m and the pedestrian is walking at 0.5 meters per second.
pedest = backscatterPedestrian( 'Height',1.8, ... 'OperatingFrequency',fc,'InitialPosition',[100;0;0], ... 'InitialHeading',0,'WalkingSpeed',0.5);
The first call to the move function returns the initial position, initial velocity, and initial orientation of all body segments and then advances the pedestrian motion two seconds ahead.
[bppos,bpvel,bpax] = move(pedest,2,0);
Transmit the first pulse to the pedestrian. Create 16 replicas of the signal and propagate them to the positions of the pedestrian body segments. Use the rangeangle function to compute the arrival angle of each replica at the corresponding body segment. Then use the reflect function to return the coherent sum of all the reflected signals from the body segments at the pedestrian initial position.
radarpos = [0;0;0]; xp = channel(repmat(x,1,16),radarpos,bppos,[0;0;0],bpvel); [~,ang] = rangeangle(radarpos,bppos,bpax); y0 = reflect(pedest,xp,ang);
Obtain the position, velocity, and orientation of each body segment then advance the pedestrian motion another two seconds.
[bppos,bpvel,bpax] = move(pedest,2,0);
Transmit and propagate the second pulse to the new position of the pedestrian.
radarpos = [0;0;0]; xp = channel(repmat(x,1,16),radarpos,bppos,[0;0;0],bpvel); [~,ang] = rangeangle(radarpos,bppos,bpax); y1 = reflect(pedest,xp,ang);
Match-filter and plot both of the reflected pulses. The plot shows the increased delay of the matched filter output as the pedestrian walks away.
filter = phased.MatchedFilter('Coefficients',getMatchedFilter(wav)); ymf = filter([y0 y1]); t = (0:size(ymf,1)-1)/fs; plot(t*1e6,abs(ymf)) xlabel('Time (microsec)') ylabel('Magnitude') title('Match-Filtered Reflected Signals') legend('Signal 1','Signal 2')

Zoom in and show the time delays for each signal.
plot(t*1e6,abs(ymf)) xlabel('Time (microsec)') ylabel('Magnitude') title('Matched-Filtered Reflected Signals') axis([50.65 50.7 0 .0026]) legend('Signal 1','Signal 2')

Input Arguments
Pedestrian target model, specified as a backscatterPedestrian
object.
Incident radar signals on each body segment, specified as a complex-valued M-by-16 matrix. M is the number of samples in the signal. See Body Segment Indices for the column representing the incident signal at each body segment.
Data Types: double
Complex Number Support: Yes
Directions of incident signals on the body segments, specified as a real-valued
2-by-16 matrix. Each column of ANG specifies the incident direction
of the signal to the corresponding body part. Each column takes the form of an
azimuth-elevation pair, [AzimuthAngle;ElevationAngle]. Units are in
degrees. See Body Segment Indices for the column
representing the incident direction at each body segment.
Data Types: double
Output Arguments
Combined reflected radar signals, returned as a complex-valued
M-by-1 column vector. M equals the same number of
samples as in the input signal, X.
Data Types: double
Complex Number Support: Yes
More About
Body segment indices define which columns in X and
ANG contain the data for a specific body segment. For example, column
3 of X contains sample data for the left lower leg. Column 3 of
ANG contains the arrival angle of the signal at the left lower
leg.
| Body Segment | Index | |
|---|---|---|
| Left foot | 1 |
|
| Right foot | 2 | |
| Left lower leg | 3 | |
| Right lower leg | 4 | |
| Left upper leg | 5 | |
| Right upper leg | 6 | |
| Left hip | 7 | |
| Right hip | 8 | |
| Left lower arm | 9 | |
| Right lower arm | 10 | |
| Left upper arm | 11 | |
| Right upper arm | 12 | |
| Left shoulder | 13 | |
| Right shoulder | 14 | |
| Head | 15 | |
| Torso | 16 | |
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2019a
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
