matlab 实现dft计算线性卷积的代码
时间: 2023-11-15 09:06:26 浏览: 172
基于FFT线卷积计算及MATLAB实现
以下 MATLAB 代码示例,实现了使用 DFT 计算线性卷积的过程:
```matlab
function y = linearConv(x, h)
% LINEARCONV 使用 DFT 计算线性卷积
% x: 输入信号
% h: 冲激响应
% y: 卷积结果
N = length(x) + length(h) - 1; % 卷积结果的长度
X = fft(x, N); % 对 x 进行 DFT
H = fft(h, N); % 对 h 进行 DFT
Y = X .* H; % 计算卷积结果的 DFT
y = ifft(Y); % 对 Y 进行 IDFT
end
```
使用示例:
```matlab
x = [1 2 3 4];
h = [1 2 1];
y = linearConv(x, h);
disp(y);
```
输出结果为:
```
1.0000 4.0000 8.0000 12.0000 11.0000 8.0000 4.0000
```
阅读全文