以经验看来你是要做单片机方面波形输出,DAC输出,或者做模拟示波器什么的。
目前成都创新互联已为1000多家的企业提供了网站建设、域名、网络空间、网站托管、服务器托管、企业网站设计、砀山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
有两种办法:
一是查表法,优点是计算量少,占用RAM少,算法简单,缺点是占用储存内存较多,参数比较固定。
查表法的基本思路就是,通过把sin函数进行采样,得到的值记录成一个表,将表以数组的形式放在程序中,通过循环读取数组的值达到查表的目的。
二是计算值法,优缺点跟查表法恰好相反。
计算值法的基本思路是通过特定算法,将特定时间所需的特定值计算出来。
这里给你提供一个计算值法的核心代码,作为指导建议,根据实际情况修调。
double SinWave(double scale,int cycle_time)
{
int a;
double PI = 3.1416;
int resolution_ratio = 100;//分辨率,描述采样量,越高的分辨率计算越多
for(a=0;aresolution_ratio;a++)
{
DAC_OUT(scale * sin(2*PI*a/resolution_ratio));
delay(cycle_time/resolution_ratio);
}
}
void delay(int us)
{
//......
}
void DAC_OUT(int data)
{
//......
}
正弦函数是三角函数的一种.
定义:对于任意一个实数x都对应着唯一的角(弧度制中等于这个实数),而这个角又对应着唯一确定的正弦值sin x,这样,对于任意一个实数x都有唯一确定的值sin x与它对应,按照这个对应法则所建立的函数,表示为f(x)=sin x,叫做正弦函数。
在C语言当中,sin 函数在标准库math.h当中。注意其输入参数单位是弧度,将角度转换为弧度,请将角度乘以 π/180。
功 能: 正弦函数
用 法: double sin(double x);
例程:
12345678#include stdio.h #include math.h int main(void) { double result, x = 0.5; result = sin(x); printf("The sin() of %lf is %lf\n", x, result); return 0; }
如何在C语言中解决正弦或余弦函数的表示方法我是一个?头文件包含。math.h
cos :余弦函数
函数原型:double cos(double x);
头文件:#includemath.h
是否是标准函数:是
函数功能:求x的余弦值,这里,x为弧度。
返回值:计算结果的双精度值。
例程如下: 求cosx。
#include stdio.h
#include math.h
int main(void)
{
double result;
double x = M_PI。
C语言里sin函数和cos函数是C标准数学函数库中的函数,调用需要引入math.h头文件。
一、sin() 函数描述:
C 库函数 double sin(double x) 返回弧度角 x 的正弦。sin() 函数的声明:double sin(double x)。
参数:x -- 浮点值,代表了一个以弧度表示的角度。
返回值:该函数返回 x 的正弦。
二、cos() 函数描述:
cos() 函数的功能是求某个角的余弦值。cos() 函数的声明:double cos(double x)。
参数:x -- 浮点值,代表了一个以弧度表示的角度。
返回值:该函数返回 x 的余弦。
扩展资料:
相关的三角函数:
double asin (double); 结果介于[-PI/2,PI/2]
double acos (double); 结果介于[0,PI]
double atan (double); 反正切(主值),结果介于[-PI/2,PI/2]
double atan2 (double,double); 反正切(整圆值),结果介于[-PI,PI]
参考资料来源:百度百科-math.h
1、C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果。
2、下面用for循环实现sin的算法,程序代码如下:
#includestdio.h
#includemath.h
void main()
{
int i;
float x,sum,a,b; //sum代表和,a为分子,b为分母
char s;
printf("please input x");
scanf("%f",x);
s=1;
sum=0;
a=x; //分母赋初值
b=1; //分子赋初值
for(i=1;a/b=1e-6;i++)
{
sum=sum+s*a/b; //累加一项
a=a*x*x; //求下一项分子
b=b*2*i*(2*i+1); //求下一项分母
s*=-1;
}
printf("sum=%f\n",sum);
}
3、 关于上述程序的几点说明:上述程序的计算结果精确到小数点后六位;上述程序运用了sin的泰勒展开式 sin x=x-x^3/3!+x^5/5! ...... ,程序中将sin泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言sin()用来计算参数x 的正玄值,然后将结果返回。返回-1 至1 之间的计算结果。
例子:
#include math.h
main(){
double answer = sin(0.5);
printf("sin(0.5) = %f\n", answer);
}
执行
sin(0.5) = 0.479426
C语言sin():
sin()原型:double sin(double x)
sin()角度与弧度:
π=180°
1°=π/180
1(rad)=180/π
角度转弧度:用角度乘以π/180
弧度转角度:用弧度乘以180/π,或者用rtod()函数
扩展资料:
与sin相似的acos函数
函数名: acos
功 能:计算并返回arccos(x)值、要求-1=X=1
函数与形参类型:
double acos(x)
double x;
程序例:
#include stdio.h
#include math.h int main(void)
{
double result;
double x = 0.5; result = acos(x);
printf("The arc cosine of %lf is %lf\n", x, result);
return 0;
}
参考资料:CSDN博客频道-C语言中sin和cos的用法
文章名称:正弦函数查表法c语言 c++ 正弦函数
地址分享:https://www.cdcxhl.com/article4/hhghoe.html
成都网站建设公司_创新互联,为您提供建站公司、品牌网站制作、用户体验、App设计、静态网站、虚拟主机
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联