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

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?

 採用された回答

Honglei Chen
Honglei Chen 2012 年 12 月 27 日

0 投票

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 件のコメント

AR
AR 2012 年 12 月 30 日
編集済み: Honglei Chen 2013 年 1 月 4 日
Thank you for the help, I am attaching my code
%%%%%
clear, clc, close all
c = 3e8;
hw = phased.FMCWWaveform('SweepBandwidth',1e7,...
'SampleRate',2e7,'SweepDirection','Up',...
'NumSweeps',2)
xref = step(hw);
tau = 400;
x = [zeros( tau,1); xref(1:end-tau)];
y = dechirp(x,xref);
hspec = dsp.SpectrumAnalyzer('SampleRate',hw.SampleRate,'TwoSidedSpectrum',true ,...
'Title','Spectrum for received and dechirped signal',...
'LegendSource','Auto');
step(hspec,[y])
release(hspec);
% slope = hw.SweepBandwidth/hw.SweepTime;
% range = beat2range(0.495e6,slope)
% sample_time = inv(hw.SampleRate);
% delay = sample_time*tau
% range = delay*c/2
spectrogram(xref,100,50,1536,hw.SampleRate,'yaxis');
hold on
spectrogram(x,100,50,1536,hw.SampleRate,'yaxis');
hold on
spectrogram(y,48,24,24,hw.SampleRate,'yaxis');
Fs = hw.SampleRate;
sizey = size(y)
L = sizey(1,1);
NFFT = 2^nextpow2(L);
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
figure
plot(f,2*abs(Y(1:NFFT/2+1)))
%%%%%%%
I should get two beat frequencies , f1=2MHz, and f2=8MHz, but in spectrum analyzer im getting f2=-8MHz, and in spectrogram i am getting f2 =12MHz. I am not sure why it is happening???
Honglei Chen
Honglei Chen 2013 年 1 月 4 日
Sorry I didn't see this earlier. First all, what you see in spectrum analyzer and spectrogram are consistent. It's just that in spectrum analyzer you are plotting from -10 MHz to 10 MHz, so 12 MHz in spectrogram becomes -8 MHz in spectrum analyzer.
I'm not sure why you think the second beat frequency should be in 8 MHz though, because looks to me it should be -8 MHz since the decrhip operation subtract the returning signal frequency from the transmitted frequency. Therefore, between 0.1 and 0.12 ms, the difference is -8 MHz.
AR
AR 2013 年 3 月 13 日
編集済み: AR 2013 年 3 月 13 日
<http://www.flickr.com/photos/31340493@N06/8554191926/in/photostream> see the attached image, two beat frequencies calculated should be 2Mz and 8Mhz
Honglei Chen
Honglei Chen 2013 年 3 月 13 日
cannot see the picture

サインインしてコメントする。

その他の回答 (1 件)

Nadir HEFHAF
Nadir HEFHAF 2017 年 9 月 10 日
編集済み: Honglei Chen 2017 年 9 月 11 日
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 件のコメント

Honglei Chen
Honglei Chen 2017 年 9 月 11 日
What version of MATLAB are you using? I cannot reproduce the error on my end.
Harwanto Zidqi Putro
Harwanto Zidqi Putro 2020 年 8 月 12 日
編集済み: Harwanto Zidqi Putro 2020 年 8 月 12 日
I have version 2016a, and its error with same problem
PATRICK UWIGIZE
PATRICK UWIGIZE 2021 年 12 月 30 日
編集済み: PATRICK UWIGIZE 2021 年 12 月 30 日
Upgrade you MATLAB to a newer version

サインインしてコメントする。

質問済み:

AR
2012 年 12 月 27 日

編集済み:

2021 年 12 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by