用于生成符合CSMPTE 2006-001的千周测试信号

在C-Free 4.0 mingw 2.95上编译通过

/* 这是一个简单的信号发生器,用于产生符合CSMPTE标准的千周信号 */
/* 左声道:1kHz,每间隔3秒间断约0.4秒,即出现2.6秒,静音0.4秒 */
/* 右声道:1kHz,连续 */
/* 输出格式:PCM_S16LE,16比特,低位在前,高位在后 */
/* C-Free 4.0 mingw 2.95 */#include <math.h>
#include <stdio.h>#define SAMPLE_RATE     48000#define LEN                60.0#define GATE_OFF        (0.4 * SAMPLE_RATE)
#define GATE_LOOP_LEN   (3 * SAMPLE_RATE)
#define GATE_ON         (GATE_LOOP_LEN - GATE_OFF)#define FALSE         0
#define TRUE            1#define INT16          1#define GAIN_L_DB      -20
#define GAIN_R_DB       -20short sp_to_short_word(double sp);
double dB_to_decimal(double x);int cnt_max = (double)LEN * SAMPLE_RATE;const char *Path = "D:\\csmpte.raw";
const double Pi = 3.1415926535897932384626433832795;
const double Left_freq = 1000;
const double Right_freq = 1000;
const double Left_gain = 0.1;
const double Right_gain = 0.1;int main()
{int sp_cnt = 0;       /* Running on mingw2.95 */int gate_cnt = 0;int bytes_cnt = 0;int tmp1 = 0;double sp_left = 0, sp_right = 0;double left_freq = Left_freq, right_freq = Right_freq;double left_gain = dB_to_decimal(GAIN_L_DB);double right_gain = dB_to_decimal(GAIN_R_DB); double len = LEN;signed short sp_out[0,0];FILE *fp1;fp1 = fopen(Path, "wb+");if(fp1 == NULL) {printf("Error in opening output file.\n");exit(-1);}printf("[Debug] cnt_max = %ld\n", cnt_max);printf("[Debug] len = %f\n", len);printf("[Debug] left_freq = %f\n", left_freq);printf("[Debug] right_freq = %f\n", right_freq);printf("[Debug] left_gain = %f\n", left_gain);printf("[Debug] right_gain = %f\n", right_gain);printf("[Debug] cos 30deg = %.16f\n", cos(Pi / 6));printf("[Debug] cos 45deg = %.16f\n", cos(Pi / 4));printf("[Debug] cos 60deg = %.16f\n", cos(Pi / 3));printf("[Debug] sizeof(signed short) = %d\n", sizeof(signed short));printf("[Debug] sizeof(signed int) = %d\n", sizeof(signed int));printf("[Debug] writing out samples...\n");for(sp_cnt = 0; sp_cnt < cnt_max; sp_cnt++){double t;t = (double)sp_cnt / 48000;sp_left = cos(Pi * 2 * left_freq * t) * left_gain;sp_right = cos(Pi * 2 * right_freq * t) * right_gain;if (TRUE && gate_cnt >= GATE_ON)sp_left = 0;if (FALSE && gate_cnt >= GATE_ON)sp_right = 0; #ifdef INT16sp_out[0] = sp_to_short_word(sp_left);sp_out[1] = sp_to_short_word(sp_right);tmp1 = fwrite(sp_out, sizeof(signed short), 2, fp1);bytes_cnt += tmp1;#endif#ifdef IEEE64tmp1 = fwrite(&sp_left, sizeof(double), 1, fp1);bytes_cnt += tmp1;tmp1 = fwrite(&sp_right, sizeof(double), 1, fp1);bytes_cnt += tmp1;#endifgate_cnt = (gate_cnt >= GATE_LOOP_LEN ? 0 : gate_cnt+1);} /* for */printf("[Debug] bytes_cnt = %ld\n", bytes_cnt);fclose(fp1);
} /* main */short sp_to_short_word(double sp)
{signed short ret = 0;ret = sp * 32767;
}double dB_to_decimal(double x)
{double y = pow(10, x/20);return y;
}/*
long sp_to_int_word(double sp)
{signed int ret = 0;ret = sp * 2147483647L;
}
*/

高清立体声千周测试信号的生成相关推荐

  1. Visio生成高清PDF的方法:解决生成PDF时图片模糊、文字变形等问题

    选择打印生成PDF,而不是直接另存为PDF 尽量选择大的纸张打印成PDF,之后再进行裁剪: 在上图中的"页面设置"里把打印缩放比调高: 打印生成PDF,并利用Adobe Acrob ...

  2. 【Word生成_带书签的高清pdf】【导出导入pdf书签】

    目前,word文档转pdf,不管使用word自带导出还是借助外部工具(如Foxit pdf.Adobe Pdf等工具),高清pdf与带书签,二者不可兼得,这是一个非常令人头疼的问题. 经花费不少时间探 ...

  3. 谷歌最新发布两大视频生成工作:720p高清+长镜头,网友:对短视频行业冲击太大......

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 梦晨 Pine 发自 凹非寺 转载自:量子位(QbitAI) 内容 ...

  4. 史上最佳GAN被超越!生成人脸动物高清大图真假难辨,DeepMind发布二代VQ-VAE

    栗子 安妮 发自 凹非寺 量子位 出品 | 公众号 QbitAI 不得了,以生成逼真假照片出名.被称作"史上最佳GAN"的BigGAN,被"本家"踢馆了. 挑战 ...

  5. 高清地图生成技术综述

    过去几年,自动驾驶一直是最受欢迎和最具挑战性的话题之一.在实现完全自动驾驶的道路上,研究人员利用了各种传感器,如激光雷达.摄像头.IMU和GPS,并开发了用于自动驾驶应用的智能算法,如目标检测.目标分 ...

  6. 高清变脸更快更逼真!比GAN更具潜力的可逆生成模型来了 | OpenAI论文+代码

    昨天上市即破发的小米,今天上午股价大涨近10%.这下雷军要笑了. 而且可以笑得更灿烂.更灿烂是什么样?来,我们用OpenAI刚刚发布的人工智能技术,给大家展示一下.   当然这个最新的技术,不止这 ...

  7. html 图片点击查看大图_【神游千年,大美敦煌】北魏-260窟【高清大图】

    [神游千年,大美敦煌]北魏-260窟[高清大图] --------------------------------------------------------------------------- ...

  8. NIPS 2018 | 中科院自动化所两篇入选论文:高清真实图像生成领域及GAN研究在人脸识别领域的进展...

    [论文一]自动化所在高清真实图像生成领域获得新突破 IntroVAE: Introspective Variational Autoencoders for Photographic Image Sy ...

  9. iphone如何信任软件_【手机软件】千禾影院:全新观影神器,支持安卓+iOS,最新、最全、高清、免费!...

    Hello,大家好,我是春哥!每天记得打卡哦!感谢每一位小伙伴们的关注和支持!免责声明 大部分资源来源于网络,仅供学习和交流使用,如有侵权请联系我们删除. 每期文章末尾都会有关键词,在公众号发消息处回 ...

最新文章

  1. 分享EOS加拿大的文章《REX——从源代码做技术解析》
  2. python-68:BS4获取多个标签的文本
  3. Linux内存中的 buffer 和 cache
  4. oracle数据库数据导入导出步骤(入门)
  5. Spring 学习04
  6. 对大学 IT 专业教育的反馈
  7. Java中几种常量池的区分
  8. springMVC配置
  9. Dynamics CRM2013 业务规则的新建、激活与删除
  10. MAC在命令行运行不带窗口的 Emacs -- 比窗口模式占用的资源更少一些
  11. 苹果CMSv10系统标签,仿站必备
  12. 伯努利试验及概率方程 二项式分布 期望值与方差
  13. aria2 txt导入_使用Aria2完成下载任务
  14. FTT 海面模拟(DirectX11)
  15. excel链接到另一个工作表的指定位置
  16. java交付工程师发展前景,看完没有不懂的
  17. 【matlab】高斯-均匀-指数-瑞利分布
  18. 使用expression design制作silverlight LOGO那种烟雾效果教程(翻译)
  19. QQ欢乐豆斗地主心得体会(四):合谋赢豆
  20. 程序员怎么做项目管理?

热门文章

  1. python n个list如何组成矩阵_硬核科普系列:用python帮你建立自己的投资组合
  2. distinct合并结果集---以及SQL中distinct的用法
  3. Redis从入门到精通之底层数据结构快表QuickList详解
  4. C语言qsort详解
  5. MenuStrip控件
  6. 遗传算法(GA)的一些学习感悟
  7. 关于谷歌浏览器搜索引擎被360劫持的问题,地址栏搜索变成360引擎的问题的解决方法 360搜索
  8. MySQL8.0_JDBC笔记
  9. Layui 实现rate评分点击后只读,动态rate控制只读,动态控制只读
  10. 奈奎斯特 带宽 码元 比特