Range Simulation for a Portable radar
Afficher commentaires plus anciens
I'm trying to simulate Range with the following scrip but is giving me the following error:
Index exceeds matrix dimensions.
Error in RangeSimulation (line 35) [Y1,I1] = max(abs(spec(Fs/2+2:Fs+1)));
Need help. Here is the code:
clc; clear all; format long e;
% Declare constants
Fs = 40000; % Sampling freruency
T = 1/Fs; % Period
osf = 100;
T0 = 100e-6;
t = (0:T/osf:T0);
w = 2 * pi * 2.4e9; % Angular frequency
fm = 50; df = 330e6;
alpha = .1;
d = 4; % Target distance in m
c = 3e8;
delay = 2 * d / c;
lambda = c / (w / 2 / pi);
dr = c / 2 / df; % Range resolution
% Calculate range r = 2*pi*df * sawtooth(2*pi*fm*t,0.5); % r = 2*pi*df * sawtooth(2*pi*fm*t,1); Tx = cos((w+r).*t); Yx = alpha * cos((w+r).*(t-delay)); %Rx = awgn(Yx,3); % Add white Gaussian noise Rx = Yx; Sx = Tx .* Rx; tay = taylorwin(length(Sx)); %tay = hamming(length(Sx)); A = tay .* Sx'; X = fftshift(fft(A)); spec = fftshift(fft(Sx)); f = (-Fs/2:1/T0/osf:Fs/2);
% Calculate weighted-mean beat frequency %fb1 = abs(spec(Fs/2+2:Fs+1))*f(Fs/2+2:Fs+1)'; %fb = fb1 / Fs / 2; [Y1,I1] = max(abs(spec(Fs/2+2:Fs+1))); [Y2,I2] = max(abs(X(Fs/(2+2):Fs+1))); fb1 = f(Fs/2+I1); fb2 = f(Fs/2+I2);
% Plot the figure subplot(3,1,1); plot(f,abs(spec)/Y1); title('No windowing'); title('Normalized Spectrum of Mixed Signal w/ Stationary Target (R = 2 m)'); xlabel('Frequency (Hz)'); ylabel('Magnitude'); % subplot(3,1,1); plot(t,Tx); % subplot(3,1,2); plot(t,Rx); % subplot(3,1,3); plot(t,Sx); subplot(3,1,2); plot(f,abs(X)/Y2); title('With windowing'); R1 = c * fb1 / 8 / df / fm; R2 = c * fb2 / 8 / df / fm; subplot(3,1,3); title('Difference in FFTs'); plot(f,(abs(X)'/Y1)-(abs(spec)/Y1)); a1 = mean(abs(A)); a2 = mean(abs(Sx));
2 commentaires
Walter Roberson
le 26 Mai 2012
http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup
Image Analyst
le 26 Mai 2012
Edit. Highlight your code. Click the "Code" icon. Resubmit.
Run it again, with the debugger, to see what the size of all the variables is. Make intermediate variables if you have to, like
sf = spec(Fs/2+2:Fs+1)
size_of_sf = size(sf)
Réponses (0)
Catégories
En savoir plus sur Radar and EW Systems dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!