理论知识:
由上述的公式可知,在matlab中如果要生成频率为 f 的正弦波信号可以用如下代码:
t=0:0.0005:1;%定义一个数组[0, 0.0005, 0.001, 0.0015, 0.002,...,0.9995, 1.000], 代表生成的横坐标,其中的 0.0005代表横坐标的间隔,越小,代表横坐标越密集
f=sin(2*pi* f *t);
plot(t,f,'r','LineWidth',3);
grid on;%开启网格线
假设频率为5
如果想更改初相位,可以使用如下代码
t=0:0.0005:1;%定义一个数组[0, 0.0005, 0.001, 0.0015, 0.002,...,0.9995, 1.000], 代表生成的横坐标,其中的 0.0005代表横坐标的间隔,越小,代表横坐标越密集
f=sin(2*pi* f *t+a);
plot(t,f,'r','LineWidth',3);
grid on;%开启网格线
假设频率为5,初相位为 pi/2
补充:
针对一些网友反应的问题,这里再说明,如果你要生成的正弦波的频率很高,比如 100 Hz 以上,那么如果只是更改上面代码中的频率为100,那生成出来的图形会是全红色,原因是在横坐标[0, 1]内的波形太过密集,而且 LineWidth 过大造成的。
所以,对于高频的正弦波形的生成和显示,你需要按照下面几个步骤生成:
- 修改横坐标的间隔,原来是 0.0005 ,现在你需要把它降低,比如降低到 0.00000001,这个间隔已经足够小
- 修改横坐标的上限,原来是1,对于高频正弦波来说太大了,现在修改为 0.01
- 修改频率,比如修改频率为 1500, f=sin(2pi 1500 *t);
- 修改线的宽度,原来的 ‘LineWidth’ 为 3 ,现在可以把它设置为 1
下面是生成频率为 1500Hz 的正弦波的代码文章来源:https://www.toymoban.com/news/detail-600945.html
t=0:0.00000001:0.01;%定义一个数组[0, 0.00000001, 0.00000002, 0.00000003, ...,0.00999999, 0.01]
f=sin(2*pi* 1500 *t);% 频率为 1500 Hz
plot(t,f,'r','LineWidth',1);%横坐标数据为 t,对应的纵坐标数据为 f,波形的颜色为 red,波形线条的宽度为 1
grid on;%开启网格线
文章来源地址https://www.toymoban.com/news/detail-600945.html
到了这里,关于matlab 生成正弦波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!