matlab信号产生子程序
时间: 2023-07-13 19:23:02 浏览: 84
下面是一个简单的 MATLAB 信号产生子程序,可以生成正弦、余弦、三角波、方波和锯齿波等不同形式的信号:
```matlab
function [t, y] = signal_generator(signal_type, amplitude, frequency, duration, sampling_rate)
% 信号产生子程序
% signal_type: 信号类型,可以是 'sin'、'cos'、'triangle'、'square'、'sawtooth'
% amplitude: 信号幅值
% frequency: 信号频率
% duration: 信号持续时间
% sampling_rate: 采样率
% 生成时间轴
t = 0:1/sampling_rate:duration;
switch signal_type
case 'sin'
% 生成正弦波
y = amplitude*sin(2*pi*frequency*t);
case 'cos'
% 生成余弦波
y = amplitude*cos(2*pi*frequency*t);
case 'triangle'
% 生成三角波
y = 2*amplitude/pi*asin(sin(2*pi*frequency*t));
case 'square'
% 生成方波
y = amplitude*square(2*pi*frequency*t);
case 'sawtooth'
% 生成锯齿波
y = amplitude*sawtooth(2*pi*frequency*t);
otherwise
error('Unsupported signal type!');
end
end
```
使用方法:
```matlab
% 生成正弦波信号
[t, y] = signal_generator('sin', 1, 1000, 1, 44100);
plot(t, y);
title('Sinusoidal Signal');
xlabel('Time (s)');
ylabel('Amplitude');
% 生成方波信号
[t, y] = signal_generator('square', 1, 1000, 1, 44100);
plot(t, y);
title('Square Wave Signal');
xlabel('Time (s)');
ylabel('Amplitude');
```
注意:这只是一个简单的信号产生子程序,可以根据需要进行修改和扩展。