使用matlab绘制两个离散函数卷积,不使用conv
时间: 2024-09-15 15:14:32 浏览: 47
用matlab实现两个离散序列的卷积不使用conv函数.docx
5星 · 资源好评率100%
在MATLAB中,如果你想要绘制两个离散函数的卷积结果,而不想直接使用`conv`函数,你可以手动计算每个点的卷积值,然后用直方图或折线图表示出来。以下是一个简单的步骤:
1. **定义离散函数**:假设你有两个离散函数f(x)和g(x),可以分别存储在一个向量或数组中。
```matlab
x = -10:0.1:10; % 假设这是x的取样范围
f = sin(x); % 示例函数f(x)
g = [1 0.5]; % 示例函数g(x) 可以为常数或另一个离散序列
```
2. **计算卷积**:你可以遍历x并逐点计算卷积,这需要对每个x_i,计算f(x-i:end) * g 的累积和。
```matlab
n_g = length(g);
h = zeros(size(x)); % 初始化卷积结果
for i = 1:length(x)
h(i) = sum(f(1:i-n_g+1).*g);
end
```
3. **绘制图像**:最后,将卷积结果h作为y轴数据,x作为x轴数据,画出直方图或折线图。
```matlab
plot(x, h, 'LineWidth', 2); % 如果你想看连续的曲线,可以用'-'代替'plot'
xlabel('x');
ylabel('h(x)');
title('离散函数的卷积结果');
```
阅读全文