编写调用阶跃函数stepseq.m,两个函数相乘函数sigmult.m,冲激序列δ(n-k)函数delta.m,实现,绘制图形(stem函数)
时间: 2024-11-03 22:14:31 浏览: 32
在MATLAB中,你可以编写三个函数分别用于阶跃函数、两个函数相乘以及冲激序列,然后利用`stem`函数绘制图形。这里是一个简单的示例:
首先,创建阶跃函数`stepseq.m`:
```matlab
function y = stepseq(n)
% Step sequence function
y = zeros(1, n);
y(1:n/2) = 1; % 半周期的阶跃序列
end
```
接着,创建函数相乘`sigmult.m`:
```matlab
function y = sigmult(x, k)
% Function multiplication for plotting
y = x .* stepseq(k); % Element-wise multiplication
end
```
再创建冲激序列`delta.m`,注意冲激函数在数学上不是一个实际的函数,但在MATLAB中可以用数组表示:
```matlab
function delta_output = delta(n, k)
% Impulse sequence with delay
delta_output = ones(1, n);
delta_output(n - k + 1) = 0; % Set value to zero at position k
end
```
现在你可以调用并绘制这两个函数:
```matlab
% Test the functions and plot the result
x = 0:0.1:10; % Sampling points
k = 2; % Delay parameter
y = sigmult(x, k); % Multiply stepseq by a shifted impulse sequence
delta_k = delta(x, k); % Create impulse sequence at position k
figure
stem(x, y, 'filled'); % Plot the product of stepseq and delta
hold on
stem(x, delta_k, 'r', 'filled'); % Plot the impulse sequence separately
legend('Step Sequence * Impulse', 'Impulse');
xlabel('Time (s)');
ylabel('Amplitude');
title('Multiplication of Step Sequence and Shifted Impulse');
grid on
```
这个例子展示了阶跃函数和延迟后的冲激序列的乘积,并用红色标记了冲激序列的位置。`hold on`命令允许你在同一个图中添加多个`stem`系列。
阅读全文