语音芯片KT142C两种音频输出方式PWM和DAC的区别

2023-10-21 12:52

本文主要是介绍语音芯片KT142C两种音频输出方式PWM和DAC的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

语音芯片KT142C两种音频输出方式PWM和DAC的区别

一般的语音芯片,输出方式,无外乎两种,即dac输出,或者PWM输出

其中dac的输出,一般应用场景都是外挂功放芯片,实现声音的放大,比如常用的音箱类型的产品,都是dac+外挂功放的形式

其中PWM的输出,一般都是玩具类型的应用,因为他不需要很大的声音,需要就是简单,优点确实就是外围简单,但是缺点也很明显:音质不好,解析度不够,同时声音相对比较小一点。但是一般的场合也足够使用了​编辑

2.1 KT142C芯片的dac输出参数

2.2 KT142C芯片的PWM输出参数

三、dac和pwm选择的总结


语音芯片KT142C两种音频输出方式PWM和DAC的区别
一般的语音芯片,输出方式,无外乎两种,即dac输出,或者PWM输出
  1. 其中dac的输出,一般应用场景都是外挂功放芯片,实现声音的放大,比如常用的音箱类型的产品,都是dac+外挂功放的形式
  2. 其中PWM的输出,一般都是玩具类型的应用,因为他不需要很大的声音,需要就是简单,优点确实就是外围简单,但是缺点也很明显:音质不好,解析度不够,同时声音相对比较小一点。但是一般的场合也足够使用了

如上图,芯片就是同时支持DAC输出,和PWM直驱扬声器的

所以选择上面就很灵活:

假如您的产品需要音量不那么大,大概50平方的空间能听到就可以了,那就选择PWM输出即可,简单直接

假如需要很大的声音,大概100平方都需要听得很清楚,那就必须外挂功放了,可以选择3W、5W、10W,灵活搭配

2.1 KT142C芯片的dac输出参数

KT142C的dac输出的信噪比,还是可以的,如下图所示

但是它输出的幅值相对就比较小,不足以驱动耳机

什么是dac,其实网上随便搜搜,就很清楚,简单来说,就是数字信号转模拟信号

但是这里拓展一下音频dac的知识

  1. 音频dac最核心的参数,就是信噪比,以及转换速度,可以称之为采样率
  2. 音频芯片运行的逻辑,就是对各种音频信号进行解码,解码之后,就得到了音频信号的原始数据,其实就是PCM数据。得到这些数据之后,就全部扔给dac模块去处理就好了,最后就转换为“模拟信号”输出了
  3. 无论是mp3解码、flac等等其他格式,最终都需要软件解码为pcm。所以dac只能处理pcm的数据
  4. 而dac输出的信号,其实就是正弦波,用示波器看的话

2.2 KT142C芯片的PWM输出参数

PWM输出,其实很简单,就是脉宽调制,来控制扬声器发声,KT142C支持驱动8欧姆1W,极限电流大概200mA

也可以称之为class D功放,就是小功率的数字功放

这种很常见,比如:家里的玩具,声音不那么大的产品,基本都是pwm直驱喇叭的

因为集成到芯片里面去之后,不可能像单独的功放芯片一样那么强的驱动能力,所以只能应用于一些小音量的场合

三、dac和pwm选择的总结

语音芯片中两种音频输出方式PWM和DAC的原理弄清楚之后,就很好选择合适的语音芯片了

需要声音大,就选择dac输出的,外挂功放

不需要声音大,需要外围简单,成本低,就直接选择KT142C的直驱扬声器功能

就是这么的简单

这篇关于语音芯片KT142C两种音频输出方式PWM和DAC的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254543

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu