What is the difference between "phased.Li​nearFMWave​form" and "phased.FMCWWaveform"

4 views (last 30 days)
1. What is the difference between "phased.LinearFMWaveform" and "phased.FMCWWaveform" in Phased Array System Toolbox except for that Triangle waveform generation is possible in P"phased.LinearFMWaveform" function.
2. My other concern is I want to sweep bandwidth of 10Mhz from start frequency of 10 MHz and End Frequency 20MHz. How can i do that in "phased.LinearFMWaveform" function.
3. When i dechirp the received signal from transmitted signal of saw-tooth waveform, i should get 2 beat frequencies (according to "New ideas in FM Radar by H. D. Griffiths"). but i get only 1 beat frequency, why?

Accepted Answer

Honglei Chen
Honglei Chen on 27 Dec 2012
Hi Ali,
LinearFMWaveform is a pulse waveform, meaning that in general the system only transmit a very short period of time during one cycle and uses the rest of cycle to receive. On the other hand, FMCWWaveform is a continuous waveform, so the system transmits and receives at the same time and the duty cycle for the waveform is always 1.
Currently you cannot specify the starting and ending frequencies in LinearFMWaveform. However, depending on the system setup, you may still be able to simulate your case. For example, if your system's center frequency is 15 MHz, then your situation is just a symmetric sweeping over a 10MHz range.
I don't have that particular paper handy so I cannot comment much on your third question without seeing some code snippet.
HTH
  4 Comments

Sign in to comment.

More Answers (1)

Nadir HEFHAF
Nadir HEFHAF on 10 Sep 2017
Edited: Honglei Chen on 11 Sep 2017
i have problem also in this program
close all
clc
clear all
L = 50;
N = 4;
rxULA = phased.ULA('Element',phased.OmnidirectionalMicrophoneElement,...
'NumElements',N);
rxpos1 = [0;0;0];
rxvel1 = [0;0;0];
rxax1 = azelaxes(90,0);
rxpos2 = [L;0;0];
rxvel2 = [0;0;0];
rxax2 = rxax1;
srcpos = [30;100;0];
srcvel = [0;0;0];
srcax = azelaxes(-90,0);
srcULA = phased.OmnidirectionalMicrophoneElement;
fc = 300e3; % 300 kHz
c = 1500; % 1500 m/s
dmax = 150; % 150 m
pri = (2*dmax)/c;
prf = 1/pri;
bw = 100.0e3; % 100 kHz
fs = 2*bw;
waveform = phased.LinearFMWaveform('SampleRate',fs,'SweepBandwidth',bw,...
'PRF',prf,'PulseWidth',pri/10);
signal = waveform();
nfft = 128;
radiator = phased.WidebandRadiator('Sensor',srcULA,...
'PropagationSpeed',c,'SampleRate',fs,...
'CarrierFrequency',fc,'NumSubbands',nfft);
collector1 = phased.WidebandCollector('Sensor',rxULA,...
'PropagationSpeed',c,'SampleRate',fs,...
'CarrierFrequency',fc,'NumSubbands',nfft);
collector2 = phased.WidebandCollector('Sensor',rxULA,...
'PropagationSpeed',c,'SampleRate',fs,...
'CarrierFrequency',fc,'NumSubbands',nfft);
channel1 = phased.WidebandFreeSpace('PropagationSpeed',c,...
'SampleRate',fs,'OperatingFrequency',fc,'NumSubbands',nfft);
channel2 = phased.WidebandFreeSpace('PropagationSpeed',c,...
'SampleRate',fs,'OperatingFrequency',fc,'NumSubbands',nfft);
[~,ang1t] = rangeangle(rxpos1,srcpos,srcax);
[~,ang2t] = rangeangle(rxpos2,srcpos,srcax);
sigt = radiator(signal,[ang1t ang2t]);
sigp1 = channel1(sigt(:,1),srcpos,rxpos1,srcvel,rxvel1);
sigp2 = channel2(sigt(:,2),srcpos,rxpos2,srcvel,rxvel2);
[~,ang1r] = rangeangle(srcpos,rxpos1,rxax1);
[~,ang2r] = rangeangle(srcpos,rxpos2,rxax2);
sigr1 = collector1(sigp1,ang1r);
sigr2 = collector2(sigp2,ang2r);
doa1 = phased.GCCEstimator('SensorArray',rxULA,'SampleRate',fs,...
'PropagationSpeed',c);
doa2 = phased.GCCEstimator('SensorArray',rxULA,'SampleRate',fs,...
'PropagationSpeed',c);
angest1 = doa1(sigr1);
angest2 = doa2(sigr2);
yest = L/(abs(tand(angest1)) + abs(tand(angest2)));
xest = yest*abs(tand(angest1));
zest = 0;
srcpos_est = [xest;yest;zest]
the problem is
Array formation and parentheses-style indexing with objects of class 'phased.LinearFMWaveform' is not allowed. Use objects of class 'phased.LinearFMWaveform' only as scalars or use a cell array.
Error in program11 (line 27) signal = waveform();
  3 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!