MATLAB雷达仿真报错

MATLAB报错,不知道错误在哪
代码:

maxR = 200;           % 雷达最大探测目标的距离
rangeRes = 1;         % 雷达的距离分率
maxV = 70;            % 雷达最大检测目标的速度
fc= 77e9;             % 雷达工作频率 载频
c = 3e8;              % 光速

r0 = 90; % 目标距离设置 (max = 200m)
v0 = 10; % 目标速度设置 (min =-70m/s, max=70m/s)

B = c / (2*rangeRes);       % 发射信号带宽 (y-axis)  B = 150MHz
Tchirp = 5.5 * 2 * maxR/c;  % 扫频时间 (x-axis), 5.5= sweep time should be at least 5 o 6 times the round trip time
endle_time=6.3e-6;          %空闲时间
slope = B / Tchirp;         %调频斜率
f_IFmax= (slope*2*maxR)/c ; %最高中频频率
f_IF=(slope*2*r0)/c ;       %当前中频频率

Nd=128;          %chirp数量           
Nr=1024;         %ADC采样点数
vres=(c/fc)/(2*Nd*(Tchirp+endle_time));%速度分辨率
Fs=Nr/Tchirp;                 %模拟信号采样频率
t=linspace(0,Nd*Tchirp,Nr*Nd); %发射信号和接收信号的采样时间

Tx=zeros(1,length(t)); %发射信号
Rx=zeros(1,length(t)); %接收信号
Mix = zeros(1,length(t)); %差频、差拍、拍频、中频信号

Tx(i) = cos(2*pi*(fc*t(i) + (slope*t(i)^2)/2)); % 发射信号 实数信号

plot(Tx(1:1024));
xlabel('点数');
ylabel('幅度');
title('TX发射信号时域图');

 if i<=1024
         freq(i)=fc+slope*i*Tchirp/Nr; %发射信号时频图 只取第一个chirp
         freq_echo(i)=fc+slope*i*Tchirp/Nr;%回波信号频谱延迟
    end

plot(t(1:1024),freq);
xlabel('时间');
ylabel('频率');
title('TX发射信号时频图');


img

这段代码存在多个错误。

1、变量i没有定义,因此在Tx(i)和freq(i)中会出现未定义的变量。需要先定义i。

2、在定义Tx时,应该使用for循环来迭代计算每个时间点上的发射信号,否则只有Tx的最后一个元素会被赋值,其他元素的值都为0。

3、在计算freq和freq_echo时,需要使用for循环来迭代计算每个时间点上的频率,否则只有freq和freq_echo的前1024个元素会被赋值,其他元素的值都为0。

4、在计算freq和freq_echo时,应该先将它们初始化为长度为Nd的向量,否则如果i大于1024时,会出现“数组下标越界”的错误。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^