Zaloguj się
Blog na Matlablog
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Modelowanie i symulacja pracy radaru FMCW
Forum MATLAB Strona Główna-> Sterowanie i modelowanie systemów
Post Wysłany: 2 Sierpnia 2014, Sob 7:22 pm Temat postu: Modelowanie i symulacja pracy radaru FMCW Odpowiedz z cytatem
 
AUTOR:
karol93
Początki pisania


Dołączył: 02 Sie 2014
Posty: 5


Ogląda profil użytkownika Wyślij prywatną wiadomość
Witam. W oparciu o tutorial http://www.mathworks.com/help/phased/examples/automotive-adaptive-cruise-control-using-fmcw-technology.html chcę zrobić własną symulację, jednak zawierającą 2 cele (lub więcej) podobny przykład był dla radaru impulsowego i tak wyglądało to trochę prościej, bo opierało się o zliczanie impulsów. http://www.mathworks.com/matlabcentral/fileexchange/41021-radar-system-design-and-analysis-with-matlab--webinar/content/RadarSystemDesign_Webinar_Examples/html/rangeDopplerStreamExample.html
Jak jednak zastosować podobną ideę dla fali ciągłej? Poniżej zamieszczam kod. Na 'Range Doppler Map' mam dobrze wskazane położenia(odległości) celów, jednak nie wiem, jak wyświetlić ich prędkość. Ktoś coś podpowie?
Kod:

close all
clear all
clc

fr
= 77e9;
c = 3e8;
lambda = c/fr;
maxRange = 200;
tm = 5.9*range2time(maxRange,c);
rangeRes = 1;
bw = range2bw(rangeRes,c);
sweepSlope = bw/tm;
fr_max = range2beat(maxRange,sweepSlope,c);
v_max = 230*1000/3600;
fd_max = speed2dop(2*v_max,lambda);

fb_max = fr_max+fd_max;
fs = max(2*fb_max,bw);
signal = phased.FMCWWaveform('SweepTime',tm,'SweepBandwidth',bw,...
    
'SampleRate',fs);
s = step(signal);
figure('WindowStyle','docked'),
subplot(211); plot(0:1/fs:tm-1/fs,real(s));
xlabel('Time (s)'); ylabel('Amplitude (v)');
title('FMCW signal'); axis tight;
subplot(212); spectrogram(s,32,16,32,fs,'yaxis');
title('FMCW signal spectrogram');

tgt{1}=phased.RadarTarget('MeanRCS',40,'OperatingFrequency',fr,'Model','Swerling3');
sTgtMotion{1} = phased.Platform('InitialPosition',[150; 0; 0],'Velocity',[120; 0; 0]);
channel{1} = phased.FreeSpace('SampleRate',fs,'TwoWayPropagation',true,'OperatingFrequency',fr);

tgt{2}=phased.RadarTarget('MeanRCS',30,'OperatingFrequency',fr,'Model','Swerling3');
sTgtMotion{2} = phased.Platform('InitialPosition',[90; 0; 0],'Velocity',[60; 0; 0]);
channel{2} = phased.FreeSpace('SampleRate',fs,'TwoWayPropagation',true,'OperatingFrequency',fr);

%
collector = phased.Collector('Sensor',ant,'Wavefront','Plane','OperatingFrequency',fr);

ant_aperture = 6.06e-4;                         % in square meter
ant_gain
= aperture2gain(ant_aperture,lambda);  % in dB

tx_ppower
= db2pow(5)*1e-3;                     % in watts
tx_gain
= 9+ant_gain;                           % in dB

rx_gain
= 15+ant_gain;                          % in dB
rx_nf
= 4.5;                                    % in dB

htx
= phased.Transmitter('PeakPower',tx_ppower,'Gain',tx_gain);
hrx = phased.ReceiverPreamp('Gain',rx_gain,'NoiseFigure',rx_nf,...
    
'NoiseBandwidth',bw,'SampleRate',fs);
radar_speed = 72*1000/3600;
hradarplatform = phased.Platform('Velocity',[radar_speed;0;0],'InitialPosition',[0;0;0]);


hrdresp = phased.RangeDopplerResponse('PropagationSpeed',c,...
    
'DopplerOutput','Speed','OperatingFrequency',fr,...
    
'SampleRate',fs,'RangeMethod','Dechirp','SweepSlope',sweepSlope,...
    
'RangeFFTLengthSource','Property','RangeFFTLength',256,...
    
'DopplerFFTLengthSource','Property','DopplerFFTLength',256);


Nsweep = 256;
xr =complex(zeros(1180,Nsweep));
xd=complex(zeros(1180,Nsweep));
rsig=zeros(1180,Nsweep);
for
m = 1:Nsweep
    
[radar_pos,radar_vel] = step(hradarplatform,signal.SweepTime);     
    for
n = 1:2
        
[tgt_pos(:,n),tgt_vel(:,n)] = step(sTgtMotion{n},signal.SweepTime);               
        
x = step(signal);
        
tsig(:,n)=step(htx,x); %,ang(:,n)
        
tsig(:,n)=step(channel{n},tsig(:,n),radar_pos,tgt_pos(:,n), radar_vel,tgt_vel(:,n));
        
tsig(:,n)=step(tgt{n},tsig(:,n),true); 
    
end   
    rsig
= step(hrx,tsig);
    
    
xd = dechirp(rsig,x);                       
    
xd = sum(xd,2);
    [
rdmap,rangeGrid,speedGrid] = step(hrdresp,xd);
end

for a=1:2
    xr
(:,a) = xd;
end

figure
('WindowStyle','docked'),
plotResponse(hrdresp,xr);                     
axis([-v_max v_max 0 maxRange])
fb_rng = rootmusic(pulsint(xr,'coherent'),1,fs);
rng_est = beat2range(fb_rng,sweepSlope,c)


Z góry dziękuję!


 

Post Wysłany: 27 Lipca 2015, Pon 10:11 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
janedakdoy



Dołączył: 27 Lip 2015
Posty: 2


Ogląda profil użytkownika Wyślij prywatną wiadomość
This story teaches many readers do not read. I know that I'm getting really good at it.


 

Forum MATLAB Strona Główna-> Sterowanie i modelowanie systemów
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 40931575
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Mamuśka (Mom) {S05E11} online PL napisy 5x11 CDA  (18 Styczenia 2018, Czw 11:50 pm)
Nashville {S06E03} online PL napisy 6x03 CDA/Zalukaj  (18 Styczenia 2018, Czw 11:49 pm)
Damnation {S01E10} online PL napisy 1x10 CDA/Zalukaj  (18 Styczenia 2018, Czw 11:48 pm)
S.W.A.T. – jednostka specjalna {S01E11} online napisy PL  (18 Styczenia 2018, Czw 11:47 pm)
Beyond {S02E02} online PL napisy 2x02 CDA/Zalukaj  (18 Styczenia 2018, Czw 11:46 pm)
Beyond {S02E01} online PL napisy 2x01 CDA/Zalukaj  (18 Styczenia 2018, Czw 11:45 pm)
Young Sheldon {S01E12} online napisy PL 1x12 CDA  (18 Styczenia 2018, Czw 11:38 pm)
SposĂłb na morderstwo (HTGAWM) {S04E09} online PL CDA  (18 Styczenia 2018, Czw 11:37 pm)
Chicago Fire {S06E09} online PL napisy 6x09 CDA  (18 Styczenia 2018, Czw 11:35 pm)
Supernatural (Nie z tego świata) {S13E10} online napisy PL  (18 Styczenia 2018, Czw 11:31 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum