代码报错错误使用 plot 向量长度必须相同。wc = 5;T = 0.1*pi/wc;N = 100*2*pi/wc/T;w = (0:N-1).' * 2*pi/N;M = floor(wc/(2*pi/N));H = [ones(2*M+1, 1); zeros(N-4*M-1, 1); ones(2*M+1, 1)];h = ifft(H, 'symmetric');t = (-T*N/2:T*N/2-1).' * T/N;plot(t, h); xlabel('t'); ylabel('h(t)');
时间: 2023-12-16 19:05:12 浏览: 107
报错 代码 经验
这个报错是由于 `t` 和 `h` 的长度不一致导致的。你可以检查一下它们的长度是否相同。
在这个代码中,`N` 表示的是频域采样点的数量,而 `T` 表示的是时域采样间隔。因此,在计算 `t` 时,需要将时间轴的长度设置为 `N`,而不是 `N-1`。
下面是修改后的代码:
```
wc = 5;
T = 0.1*pi/wc;
N = 100*2*pi/wc/T;
w = (0:N-1).' * 2*pi/N;
M = floor(wc/(2*pi/N));
H = [ones(2*M+1, 1); zeros(N-4*M-1, 1); ones(2*M+1, 1)];
h = ifft(H, 'symmetric');
t = (-T*N/2 : T/N : T*N/2-T/N).';
plot(t, h); xlabel('t'); ylabel('h(t)');
```
在这个实现中,将时间轴的长度设置为 `N`,使用了 `:` 运算符来生成等间隔的时间点,同时在最后减去了 `T/N`,以保证 `t` 的长度和 `h` 的长度一致。
阅读全文