UID14230
威望29
金钱93615
交易诚信度0
主题15
帖子1271
注册时间2001-11-21
最后登录2019-1-17
高级会员
交易诚信度0
注册时间2001-11-21
|
楼主 |
发表于 2009-12-2 15:54
|
显示全部楼层
公布这个程序,有兴趣的自己玩去:
-
- cat cda.c
- #include <stdio.h>
- #include <math.h>
- #define PI 3.14159265357989
- static void prt_value (double value)
- {
- char buf[64],*p;
- int i_val=31*value;
- int i;
- memset(buf,' ',sizeof(buf));
- buf[sizeof(buf)-1]=0;
- p=buf+31;
- if(i_val==0) *p='.';
- else if(i_val>0) {
- for(i=0;i<i_val;i++) *p++ = '-';
- } else {
- p+=i_val;
- for(i=i_val;i<0;i++) *p++ = '-';
- }
- printf("%f:\t\t%s\n",value,buf);
- }
- main()
- {
- double f=44100; //取样频率
- double cyl;
- double sf,val; //信号频率
- int ret,i,num;
- cyl=1/f; //取样周期
- printf("量化:6Bit,取样频率:%lfKHz,周期%lf微秒\n",f/1000,cyl*1000000);
- while(!ferror(stdin)) {
- if(isatty(0)) {
- printf("输入信号频率(KHz) 周期数:");
- fflush(stdout);
- }
- num=22;
- ret=scanf("%lf%d",&sf,&num);
- if(ret<1) break;
- sf *= 1000;
- for(i=0;i<num;i++) {
- val=sin(2*PI*sf*cyl*i);
- prt_value(val);
- }
- }
- }
复制代码 |
|