% 设置参数 fs = 1e6; % 采样率 f0 = 10e3; % 基带频率 B = 100e3; % 跳频带宽 N = 100; % 跳频数 T = 1e-3; % 信号时长 % 计算跳频序列 hop_seq = randi(N, round(fs*T/B), 1); % 将索引强制转换为整数类型 idx = round(t*B); % 生成线性调频信号 f = f0 + B*t.*(hop_seq(idx)-1)/N; % % 计算跳频序列 % hop_seq = randi(N, round(fs*T/B), 1); % % % 检查跳频序列长度是否够用 % if length(hop_seq) < round(fs*T/B) % error('跳频序列长度不够'); % end % % % 生成线性调频信号 % t = 0:1/fs:T-1/fs; % f = f0 + B*t.*(hop_seq(ceil(t*B))-1)/N; % x = cos(2*pi*f.*t); % 绘制信号图形 plot(t, x); xlabel('Time (s)'); ylabel('Amplitude'); title('Linear Frequency Modulated Radar Signal'); 下标索引必须为正整数类型或逻辑类型。 出错 LFM (line 18) f = f0 + B*t.*(hop_seq(ceil(t*B))-1)/N;
时间: 2023-12-10 15:05:44 浏览: 289
Xilinx spratan3 xcs100E(VGA PS2).7z
这个错误是因为在计算跳频序列时,idx应该使用ceil函数取整,而不是round函数。修改代码为:
```
idx = ceil(t*B);
```
即可解决这个问题。
阅读全文