产生两个采样率为8000次每秒的正弦信号,时长为1秒(8000点),正弦信号的幅度为0.6,频率分别为500Hz和50Hz,并用gnuplot作图。
正弦波表达式为: s(t) = 0.6 sin( 2π 50t ) 和s(t) = 0.6 sin( 2π 500t )
第一步:用C语言生成数据
f=50HZ时:
#include<stdio.h> #include<math.h> #define pi 3.14159 int main() { double t,s; for (int i=0; i<8000; i++) { t=i/8000.0; s=0.6*sin(2*pi*50*t); printf("%e\t%e\n",t,s); } }f=500HZ时:
#include<stdio.h> #include<math.h> #define pi 3.14159 int main() { double t,s; for (int i=0; i<8000; i++) { t=i/8000.0; s=0.6*sin(2*pi*500*t); printf("%e\t%e\n",t,s); } }用tcc编译,分别输出为wave.exe和wave1.exe, 执行后从屏幕输出8000行数据:
第二步:用gnuplot画出波形图
1.gnuplot下载地址: https://sourceforge.net/projects/gnuplot/files/gnuplot/5.2.6/
gnuplot的安装: 下载完成后,解压并找到gnuplot.exe,只需要将gnuplot.exe所在路径添加到电脑环境变量“Path”下即可使用。
2. gnuplot的使用常识
gnuplot软件绘图的一些基本设定:
1)线型(linetype ) 此类型主要设定线条的颜色,具体对应如下:
n0123456linetypeblackredgreenbluepinklight blueyellow2)点型(pointtype) 此类型设定点的形状,共有14种,对应如下:
n012345678910111213pointtypenone+×*□■○●△▲▽▼◇◆3)w lp( with linepoint )
即描出数据点,并且将数据点连线。with 后的属性参数有多个选择,对应不同的作图方式。在指令窗口输入 hplp with 或者 help style就可以查到可供选择的 style 参数。常用的作图方式参数及其对应含义如下:
style参数简写含义linel将相邻点连线pointp将每一点用一符号标记linepointlp将每一点用一符号标记,并将相邻点连线impulsesi将每一点画一垂直线至x轴stepsst用垂直线及水平线各一条来连接两点,形成台阶状图形boxes以x坐标为中心做柱状图errorbarse对每一点坐标值(x,y),画一由(x,ylow) 至(x,yhigh) 的线段。并在线段两端做上 tic markboxerrorbars结合errorbars与boxes两者功能4)lt 1(linetype 1) 规定了连线的类型,-1对应黑虚线,0对应黑虚线,而大于0的整数对应的是实线:
n12345678linetype 1紫色绿色蓝色橙色黄色深蓝色红色黑色(大于8的数字对应的颜色与其对8的余数对应的颜色相同)
5)lw 2
即 linewidth 2 ,规定了线的宽度,数字越大线越宽。
6)pt 4
即 pointtype 4,规定了标记点的类型
4.命令窗口分别执行wave.exe和wave1.exe:
输入命令:
gnuplot>plot "<wave.exe" w l gnuplot>plot "<wave1.exe" w l波形图如下: 50HZ
500HZ
第三步:将两个正弦波相加并作图
s(t) = 0.6 [ sin( 2π 50t ) + sin( 2π 500t ) ]
tcc编译输出为wave2.exe
gnuplot作图如下(截取其中一部分):