📄 makewavs.c
字号:
/**********************************************//** Utility to make various flavors of **//** sine wave (rectified, etc), and **//** other commonly needed waveforms, like **//** triangles, ramps, etc. **//** The files generated are all 16 bit **//** linear signed integer, of length **//** as defined by LENGTH below **//**********************************************/#include <math.h>#include <stdio.h>#include <stdlib.h>#define LENGTH 256#define PI 3.14159265358979323846void main(){ int i,j; double temp; short data[LENGTH + 2]; FILE *fd; /////////// Yer Basic TX81Z Waves, Including Sine /////////// fd = fopen("halfwave.raw","wb"); for (i=0;i<LENGTH/2;i++) data[i] = 32767 * sin(i * 2 * PI / (double) LENGTH); for (i=LENGTH/2;i<LENGTH;i++) data[i] = 0; fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("sinewave.raw","wb"); for (i=LENGTH/2;i<LENGTH;i++) data[i] = 32767 * sin(i * 2 * PI / (double) LENGTH); fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("sineblnk.raw","wb"); for (i=0;i<LENGTH/2;i++) data[i] = data[2*i]; for (i=LENGTH/2;i<LENGTH;i++) data[i] = 0; fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("fwavblnk.raw","wb"); for (i=0;i<LENGTH/4;i++) data[i+LENGTH/4] = data[i]; fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("snglpeak.raw","wb"); for (i=0;i<=LENGTH/4;i++) data[i] = 32767 * (1.0 - cos(i * 2 * PI / (double) LENGTH)); for (i=0;i<=LENGTH/4;i++) data[LENGTH/2-i] = data[i]; for (i=LENGTH/2;i<LENGTH;i++) data[i] = 0; fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("twopeaks.raw","wb"); for (i=0;i<=LENGTH/2;i++) { data[LENGTH/2+i] = -data[i]; } fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("peksblnk.raw","wb"); for (i=0;i<=LENGTH/2;i++) data[i] = data[i*2]; for (i=LENGTH/2;i<LENGTH;i++) data[i] = 0; fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("ppksblnk.raw","wb"); for (i=0;i<=LENGTH/4;i++) data[i+LENGTH/4] = data[i]; fwrite(&data,2,LENGTH,fd); fclose(fd); /////////// Impulses of various bandwidth /////////// fd = fopen("impuls10.raw","wb"); for (i=0;i<LENGTH;i++) { temp = 0.0; for (j=1;j<=10;j++) temp += cos(i * j * 2 * PI / (double) LENGTH); data[i] = 32767 / 10.0 * temp; } fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("impuls20.raw","wb"); for (i=0;i<LENGTH;i++) { temp = 0.0; for (j=1;j<=20;j++) temp += cos(i * j * 2 * PI / (double) LENGTH); data[i] = 32767 / 20.0 * temp; } fwrite(&data,2,LENGTH,fd); fclose(fd); fd = fopen("impuls40.raw","wb"); for (i=0;i<LENGTH;i++) { temp = 0.0; for (j=1;j<=40;j++) temp += cos(i * j * 2 * PI / (double) LENGTH); data[i] = 32767 / 40.0 * temp; } fwrite(&data,2,LENGTH,fd); fclose(fd);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -