数字转模拟,生产正弦波,数字的值怎么选取呢?
还有,生成的正弦波大小怎么确定呢,有什么公式吗?
如下是可能正常生存正弦波的程序,但不知道怎么选数字值。及怎么计算正弦波大小。
请指教。谢谢!!
#include <reg51.h>
#include<absacc.h>
unsigned int code Num[128]={64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106,
109,111,113,115,117,118,120,121,123,124,125,126,126,
127,127,127,127,127,127,127,126,126,125,124,123,121,
120,118,117,115,113,111,109,106,104,102,99,96,94,91,
88,85,82,79,76,73,70,67,64,60,57,54,51,48,45,42,39,
36,33,31,28,25,23,21,18,16,14,12,10,9,7,6,4,3,2,1,
1,};
void main()
{
unsigned int i;
while(1)
{
for(i=0;i<128;i++)
{
P0=Num; //使用DAC0832,进行数转模
}
}
}
这些离散的数值怎么选取呢?有什么规律吗?
追答选取的数值越多,正弦波的失真度越小。比如你只选取2个数,出来的就是方波。你要是选取256个数,那么失真度就较小。你们学校没有实验器材么,我记得我们大一的时候就做这个实验了。
参考资料:myself