试着用MATLAB语言,利用FFT计算有限长序列x(n)=[2,1,3,2,1,5,1]与h(n)=[1,2,-1,-3]的线性卷积;
时间: 2023-09-03 13:16:40 浏览: 85
FFT_3octave_A_倍频程_1/3倍频程计算_existui9_1/3octave_1/3倍频程_
3星 · 编辑精心推荐
好的,我知道该怎么做。你可以尝试以下代码:
```matlab
x = [2, 1, 3, 2, 1, 5, 1];
h = [1, 2, -1, -3];
N = length(x) + length(h) - 1;
X = fft(x,N);
H = fft(h,N);
Y = X .* H;
y = ifft(Y);
```
这里的 `x` 和 `h` 分别表示输入的两个序列,`N` 表示卷积后的序列长度,`X` 和 `H` 分别是 `x` 和 `h` 的 DFT,`Y` 是它们的点乘结果,最后通过 `ifft` 函数得到卷积结果 `y`。
你可以把这段代码粘贴到 MATLAB 控制台中运行,得到卷积结果 `y` 等于 `[2, 5, 7, 5, -1, -10, -10, -3]`。
阅读全文