当前位置: 首页 > news >正文

使用Ubuntu耳机输出正弦波信号

最近有一个项目想使用喇叭发出一个标准的正弦波测试信号,故记录下操作过程

sudo apt install libasound2-dev

否则有可能会报错:

        alsaaudio.c:28:10: fatal error: alsa/asoundlib.h: No such file or directory  

安装pyalsaaudio:

pip install pyalsaaudio

安装numpy:

pip install numpy

执行如下python代码可以实现播放5秒的1Khz正弦波

import numpy as np
import alsaaudio# 设置参数
duration = 5.0  # 持续时间(秒)
frequency = 1000.0  # 正弦波频率(Hz)
sample_rate = 44100  # 采样率(Hz)
amplitude = 0.8  # 振幅(范围 0.0 到 1.0)# 生成时间轴
t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False)# 生成正弦波
sine_wave = amplitude * np.sin(2 * np.pi * frequency * t)# 转换为 16-bit PCM 格式
sine_wave = np.int16(sine_wave * 32767)# 创建 ALSA 播放器
playback = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK, alsaaudio.PCM_NORMAL)
playback.setchannels(1)  # 单声道
playback.setrate(sample_rate)
playback.setformat(alsaaudio.PCM_FORMAT_S16_LE)
playback.setperiodsize(1024)# 播放音频
playback.write(sine_wave.tobytes())
playback.close()

如图所示标准的1KHz输出信号

http://www.lryc.cn/news/441031.html

相关文章:

  • Python编程 - 协程
  • 如何在没有备份的情况下恢复 Mac 上丢失的数据
  • SpringBoot:解析excel
  • Tomcat窗口运行修改窗口标题显示项目日期时间
  • 8-----手机机型维修工具助手 功能较全 涵盖解锁 刷机 修复等选项 维修推荐
  • 集群聊天服务器项目【C++】(四)cmake介绍和简单使用
  • Nginx+Tomcat(负载均衡、动静分离)
  • 前端分段式渲染较长文章
  • C#程序员的堕落从nuget开始:将自己的代码发布到nuget
  • 【C/C++语言系列】malloc、calloc和realloc区别和用法
  • 【Linux】POSIX信号量与、基于环形队列实现的生产者消费者模型
  • Spring Boot-消息队列相关问题
  • [数据集][目标检测]岩石种类检测数据集VOC+YOLO格式4766张9类别
  • 图像分割基本知识
  • LIN总线CAPL函数——干扰LIN帧响应段(linInvertRespBit )
  • 【30天玩转python】网络编程基础
  • 【PCB工艺】如何实现PCB板层间的互连
  • FastAPI--如何自定义Docs UI,包括多个APP、静态资源、元数据等
  • 【FPGA XDMA AXI Bridge 模式】PCIe:BARs 和 AXI:BARs 含义解析
  • 嵌入式-QT学习-小练习
  • 使用 Flask-Limiter 和 Nginx 实现接口访问次数限制
  • 【数据结构】排序算法---冒泡排序
  • mysql数据库中事务锁的机制
  • 并发工具类-CountDownLatch
  • 进程的重要函数
  • python 实现average median平均中位数算法
  • HTML概述
  • 【FFT】信号处理——快速傅里叶变换【通俗易懂】
  • 电脑升级WIN11之后需要注意哪些东西
  • GEE 教程:利用sentinel-5p数据进行长时序CO一氧化碳的监测分析并结合夜间灯光数据分析