Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'m trying to simulate Range in MATLAB, the following code is giving me the fol

ID: 3644320 • Letter: I

Question

I'm trying to simulate Range in MATLAB, the following code 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)));

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));

Explanation / Answer

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)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote