用matlab写用线性卷积法分别求两个系统对输入信号 的输出响应,并画出波形。
时间: 2024-11-30 10:14:11 浏览: 21
在MATLAB中,你可以使用`conv`函数来计算线性卷积。这个函数用于求解两个序列的卷积,通常这两个序列代表滤波器 impulse response 和输入 signal。
以下是一个基本步骤来完成这个任务:
1. **准备信号**:
- 首先,你需要定义你要卷积的两个信号。假设它们分别是 `filter`(滤波器的冲激响应)和 `input`(输入信号)。
```matlab
filter = [1 0.5]; % 示例滤波器,长度可以自定
input = rand(100); % 输入信号,随机生成一个示例
```
2. **计算卷积**:
- 使用 `conv` 函数,它返回的是两序列的卷积结果。
```matlab
output = conv(filter, input);
```
3. **绘制波形**:
- 可以使用 `plot` 函数来显示原始信号、滤波器、以及卷积后的输出信号。
```matlab
figure;
subplot(3,1,1), plot(input, 'b', '-o', 'LineWidth', 2), title('Input Signal');
subplot(3,1,2),.stem(filter, 'k'), hold on, grid on, title('Filter Impulse Response');
subplot(3,1,3), plot(output, 'r', '-o', 'LineWidth', 2), title('Output Signal (Convolution Result)');
legend('Input', 'Filter', 'Output');
hold off;
```
以上代码将创建一个新的图形窗口,展示输入信号、滤波器和卷积输出。
4. **运行代码**:
- 将上述代码复制到MATLAB的工作区,然后运行它即可得到结果。
阅读全文