import numpy as np
import matplotlib.pyplot as plt T = 1.0 / sample_rate #周期
x = np.arange(0, 1.0, T)
y = 0.9*np.sin(2 * np.pi * fc * x)
file=wave.open(r'hello.wav','wb')
file.setnchannels(1)#设置通道数
file.setsampwidth(2)#设置采样宽
file.setframerate(16000)#设置采样
file.setcomptype('NONE','not compressed')#设置采样格式 无压缩
plt.plot(y[:16])#画出一个周期的波形图
plt.show()
y=y*32768
y_data=y.astype(np.int16).tobytes()#将类型转为字节
file.writeframes(y_data)
file.close()
ys=y[:fft_size]
yf=np.abs(np.fft.fft(ys)/fft_size)
plt.subplot(211)
plt.plot(x[:fft_size],ys)
plt.subplot(212)
plt.plot(x[:fft_size],yf)
plt.show()

python生成一个WAV文件的正弦波的更多相关文章

  1. python excel操作 练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称。每个sheet有个底色

    练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称.每个sheet有个底色 #coding=utf-8 from openpyxl import Workb ...

  2. 用php生成一个excel文件(原理)

    1.我们用php来生成一个excel文档来讲述其原理: excel2007里面的文档目录组成部分为: 2.我们使用ZipArchive()方法来生成一个简易的excel文件. 使用方法: 3.代码如下 ...

  3. Bitmap文件格式+生成一个BMP文件

    Bitmap的文件格式: #define UINT16 unsigned short #define DWORD unsigned int #define WORD short #define LON ...

  4. Log4j使用笔记:每天生成一个日志文件、按日志大小生成文件

    其中TestLog4j.java如下: package cn.zhoucy.test; import org.apache.log4j.Logger; public class TestLog4j { ...

  5. 非正常关闭vi编辑器时会生成一个.swp文件

    非正常关闭vi编辑器时会生成一个.swp文件 关于swp文件 使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件以备 ...

  6. python 生成json格式文件,并存储到手机上

    上代码 #!/usr/bin/env python # -*- encoding: utf-8 -*- import json import os import random "" ...

  7. Python - 生成 requirement.txt 文件

    前言 Python项目中,一般都会有一个 requirements.txt 文件 这个文件主要是用于记录当前项目下的所有依赖包及其精确的版本号,以方便在一个新环境下更快的进行部署 如何生成 requi ...

  8. Python - 生成requirement.text 文件

    前言 该篇操作笔记摘自小菠萝 Python项目中,一般都会有一个 requirements.txt 文件 这个文件主要是用于记录当前项目下的所有依赖包及其精确的版本号,以方便在一个新环境下更快的进行部 ...

  9. 原创:无错版!让DEDE只生成一个RSS文件,不分栏目

    DEDE为每一个栏目都独立创建一个rss文件, 如果用户要整站订阅相当不方便.  所以需要修改让dede只生成一个rss. 网上大部分帖子要么是抄, 要么是有问题少了步骤. 今天特意整理下. 分享.. ...

  10. Visual Studio 2012网站如何只生成一个DLL文件

    简介: 在Visual Studio 2005,2008,2010版本中,都有Web Deployment工具将网站进行发布,所有代码文件和库文件发布,生成为一个动态链接库文件,而在Visual St ...

随机推荐

  1. Kubernetes(k8s)控制器(四):ReplicaSet

    目录 一.系统环境 二.前言 三.ReplicaSet概览 四.ReplicaSet工作原理 五.ReplicaSet使用场景 六.创建ReplicaSet 七.扩展replicaset副本数 一.系 ...

  2. 微软出品自动化神器【Playwright+Java】系列(九)多线程、重定向、弹出新窗口、截图、新页面、录制、页面对象模式操作

    写在前面 关于Playwright系列的文章,真的很久没有写了,今天一个不小心官方API部分过完了,下面将为大家逐一演示,感兴趣的同学可以自行动手练习. API部分 多线程 直白点说就是多线程下Pla ...

  3. 微信小程序-获取用户头像信息以及修改用户头像

    这里主要用到button的open-type功能,官网已有说明: 给button设置open-type="chooseAvatar",来使bindchooseavatar方法生效, ...

  4. 数值的扩展方法以及新增数据类型BigInt

    二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o或(0O)表示 0b111110111 === 503 // true; 0o767 === 503; / ...

  5. Vue3 企业级优雅实战 - 组件库框架 - 12 发布开源组件库

    前面使用了 11 篇文章分享基于 vue3 .Monorepo 的组件库工程完整四件套(组件库.文档.example.cli)的开发.构建及组件库的发布.本文属于这 11 篇文章的扩展 -- 如何发布 ...

  6. libco 源码剖析(1): 协程上下文切换之 32 位

    libco 源码剖析(1): 协程上下文切换之 32 位 相关背景资料 关于汇编语言及内存布局相关基础,参看 参考文献[0], 参考文献[1] 32 位协程上下文结构如下: // coctx.h st ...

  7. debug补充、员工管理系统、字符编码、文件操作

    一.debug补充 在当前行的代码左侧点击一下,会出现一个红点(打断点) 在代码编辑区域右键选择debug,不要在选择run 二.员工管理系统 # 创建大列表 staff_info_list = [] ...

  8. Android:LitePal 在第一次创建表之后第二次创建新的表不生效

    因为业务需求的增长,后续需要继续创建新的表,有可能代码没有任何报错,同时数据库也没有任何新的表加入进来. 修改 litepal.xml 的 version,如果之前是 1,那么修改为 2,总之比之前 ...

  9. gateway添加跨域配置

    import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Co ...

  10. 学习操作系统P3 多处理器编程:从入门到放弃 (线程库;现代处理器和宽松内存模型)

    啊 啊 啊 啊 操作系统会自动把线程放置在不同的处理器上 可以用top观察CPU使用率 啊 啊 啊 啊 a 甚至连一个简单的求和程序都做不对 a 汇编语言中的 lock: CPU的特性,通过总线加锁, ...