编写调用阶跃函数stepseq.m,两个函数相乘函数sigmult.m,冲激序列δ(n-k)函数delta.m,绘图表示 (1) 门函数;
时间: 2024-11-03 14:15:43 浏览: 16
MATLAB常用函数.pdf
5星 · 资源好评率100%
在MATLAB中,你可以通过自定义函数`stepseq.m`, `sigmult.m`以及`delta.m`来分别实现阶跃函数、两个函数相乘和冲激序列。首先,让我们解释一下这些函数:
1. **stepseq.m** (阶跃序列函数) - 这通常是一个简单的阶梯函数,其值在特定时间点从0变为1。例如:
```matlab
function y = stepseq(n, k)
y = zeros(1, n);
y(k+1:end) = 1;
end
```
2. **sigmult.m** (两个信号相乘) - 如果是两个阶跃函数相乘,这将创建一个新的信号,其中非零区域只出现在它们同时为1的地方。假设输入有两个阶跃序列:
```matlab
function y = sigmult(x, y)
y = x.*y; % Element-wise multiplication
end
```
3. **delta.m** (冲激序列函数) - 冲击函数δ(n-k)是一个在n=k处为无穷大,在其他位置为0的序列。在MATLAB中,我们通常不会直接处理实际的"δ"函数,而是用单位脉冲函数代替:
```matlab
function y = delta(n, k)
y = heaviside(n - k); % MATLAB的Heaviside函数,等于1 for n >= k, 0 otherwise
end
```
为了绘制这些函数,我们可以这样做:
```matlab
% 创建一些示例变量
n = 0:10;
k = 5;
% 调用并组合函数
step_signal = stepseq(n, k);
impulse = delta(n, k);
% 相乘得到阶跃函数乘以冲激序列
product = sigmult(step_signal, impulse);
% 绘制结果
figure;
subplot(2, 1, 1);
plot(n, step_signal, 'r', 'LineWidth', 2, 'DisplayName', 'Step Function');
hold on;
plot(n, product, 'g--', 'DisplayName', 'Product');
title('Step Sequence and Product');
legend('show');
subplot(2, 1, 2);
plot(n, impulse, 'b', 'LineWidth', 2, 'DisplayName', 'Impulse at n = k');
hold off;
xlabel('Time (n)');
ylabel('Amplitude');
title('Impulse Function');
```
运行这段代码,你会看到一个包含阶梯函数、它们的乘积和单独的冲激序列的图形。
阅读全文