【实验六】MPEG音频编码实验

实验六—mpeg音频编码实验 通常将人耳可以听到的频率在20hz-20khz的声波称为声音信号,声音振动被拾音器转化为的电信号称为音频信号。人说话的信号频率在300hz到3000hz,将该频段的信号称为语音信号。 阅读详情

一、MPEG-1 Audio LayerII编码器原理

该编码器由两部分并行构成,一部分是子带编码系统,另一部分是感知音频编码系统。
在这里插入图片描述

1. 子带编码

将原始信号分解为若干个子频带,对其分别编码处理后再合成为全频带信号

1.1 多相滤波器组

在这里插入图片描述
将PCM样本变换到32个子带的频域信号。

2. 感知音频编码

核心思想:去除无法被人耳感知的部分,即去除冗余信息。
时频矛盾点:
子带编码系统中子带应该粗分,以让时域具有较高的分辨率。确保在短暂冲激信号情况下,编码的声音具有较高的质量。感知音频编码系统中,信号在FFT处应该提高频率分辨率。

2.1 心理声学模型

听觉阈值
听觉系统存在一听觉阈值电平。如下图所示,当电平低于蓝线时,人耳无法感知。
在这里插入图片描述听觉掩蔽特性
听觉阈值不是固定的,随听到的不同频率声音而发生变化。
在这里插入图片描述

2.2 掩蔽值计算思路

在这里插入图片描述
临界频带
当某个纯音被以它为中心频率,且具有一定带宽的连续噪声所掩蔽时,若果该纯银呢刚好被听到时的功率等于这一频带内的噪声功率,这个带宽为临界频带宽度。

2.3 码率分配的实现思路

NMR=SMR−SNR(dB)
即噪声比等于信噪比减去信掩比。
在这里插入图片描述
使整个一帧和每个子带的掩噪比最小。这是一个循环过程,每一次为最高NMR的子带分配比特,即使获益最大的子带的量化级别增加一级,当然所用比特数不能超过一帧所能提供的最大数目。

二、代码实现

1. 代码解析

新生成一个Trace文件,用于保存输出数据。

	fprintf(Trace, "---------音频信息---------\n", nch);
	fprintf(Trace, "该音频声道数:%d\n", nch);
	fprintf(Trace, "观测第 %d 帧\n", frameNum);
	fprintf(Trace, "本帧比特预算:%d bits\n", adb);
	fprintf(Trace, "-----------------------");
	fprintf(Trace, "---------比例因子---------\n");
	for (ch = 0; ch < nch; ch++)	// 每个声道单独输出
	{
		fprintf(Trace, "--- 声道%2d ----\n", ch + 1);
		for (sb = 0; sb < frame.sblimit; sb++)	// 每个子带
		{
			fprintf(Trace, "子带[%2d]:\t", sb + 1);
			for (int gr = 0; gr < 3; gr++) {
				fprintf(Trace, "%2d\t", scalar[ch][gr][sb]);
			}
			fprintf(Trace, "\n");
		}
	}
	fprintf(Trace, "\n");


	fprintf(Trace, "--------- 比特分配表 ---------\n");  //输出比特分配结果
	for (ch = 0; ch < nch; ch++) {
		fprintf(Trace, "--- 声道%2d ---\n", ch + 1); //按声道分配
		for (sb = 0; sb < frame.sblimit; sb++) {
			fprintf(Trace, "子带[%2d]:\t%2d\n", sb + 1, bit_alloc[ch][sb]);
		}
		fprintf(Trace, "\n");
	}

2. 输出文件

2.1 音乐

文件名: 'music2.WAV
采样率: 44.1 kHz
目标码率: 192 kbps
bits allocated in the frame No.1 is 5008
---------音频信息---------
该音频声道数:1
观测第 1 帧
本帧比特预算:8 bits
--------------------------------比例因子---------
— 声道 1 ----
子带[ 1]: 11 11 11
子带[ 2]: 12 12 12
子带[ 3]: 21 18 18
子带[ 4]: 25 25 25
子带[ 5]: 29 29 29
子带[ 6]: 28 23 26
子带[ 7]: 22 22 22
子带[ 8]: 21 21 21
子带[ 9]: 32 28 28
子带[10]: 34 30 30
子带[11]: 31 31 31
子带[12]: 30 30 26
子带[13]: 27 24 24
子带[14]: 23 23 23
子带[15]: 26 22 25
子带[16]: 30 25 25
子带[17]: 26 26 26
子带[18]: 29 29 29
子带[19]: 31 31 30
子带[20]: 26 26 26
子带[21]: 34 34 31
子带[22]: 34 31 31
子带[23]: 38 38 38
子带[24]: 39 50 50
子带[25]: 43 51 57
子带[26]: 41 54 54
子带[27]: 45 52 52
子带[28]: 42 54 54
子带[29]: 44 52 52
子带[30]: 43 52 52
--------- 比特分配表 ---------
— 声道 1 —
子带[ 1]: 8
子带[ 2]: 8
子带[ 3]: 6
子带[ 4]: 8
子带[ 5]: 7
子带[ 6]: 8
子带[ 7]: 8
子带[ 8]: 6
子带[ 9]: 5
子带[10]: 6
子带[11]: 6
子带[12]: 7
子带[13]: 6
子带[14]: 6
子带[15]: 6
子带[16]: 5
子带[17]: 5
子带[18]: 5
子带[19]: 4
子带[20]: 6
子带[21]: 3
子带[22]: 3
子带[23]: 0
子带[24]: 0
子带[25]: 0
子带[26]: 0
子带[27]: 0
子带[28]: 0
子带[29]: 0
子带[30]: 0

2.2 噪声

文件名: 'zao.m4a
采样率: 44.1 kHz
目标码率: 192 kbps
bits allocated in the frame No.1 is 5008
---------音频信息---------
该音频声道数:2
观测第 1 帧
本帧比特预算:4 bits
--------------------------------比例因子---------
— 声道 1 ----
子带[ 1]: 7 11 3
子带[ 2]: 10 15 7
子带[ 3]: 12 16 13
子带[ 4]: 12 21 10
子带[ 5]: 12 17 17
子带[ 6]: 11 17 12
子带[ 7]: 13 17 17
子带[ 8]: 11 14 14
子带[ 9]: 14 14 14
子带[10]: 14 14 14
子带[11]: 14 14 14
子带[12]: 15 15 15
子带[13]: 11 16 16
子带[14]: 11 11 17
子带[15]: 13 13 13
子带[16]: 14 14 14
子带[17]: 14 14 14
子带[18]: 13 13 13
子带[19]: 13 16 20
子带[20]: 13 17 17
子带[21]: 14 14 14
子带[22]: 11 15 15
子带[23]: 14 18 21
子带[24]: 14 14 14
子带[25]: 11 15 18
子带[26]: 13 13 19
子带[27]: 12 15 15
子带[28]: 13 13 13
子带[29]: 13 17 17
子带[30]: 14 14 21
— 声道 2 ----
子带[ 1]: 6 2 2
子带[ 2]: 10 3 7
子带[ 3]: 12 12 12
子带[ 4]: 10 10 10
子带[ 5]: 10 10 18
子带[ 6]: 12 9 12
子带[ 7]: 12 12 12
子带[ 8]: 10 10 10
子带[ 9]: 15 8 16
子带[10]: 14 14 14
子带[11]: 13 10 16
子带[12]: 13 10 18
子带[13]: 10 13 16
子带[14]: 12 12 16
子带[15]: 17 14 14
子带[16]: 14 14 14
子带[17]: 12 12 12
子带[18]: 13 13 17
子带[19]: 13 13 13
子带[20]: 10 10 10
子带[21]: 15 12 20
子带[22]: 12 12 12
子带[23]: 13 13 13
子带[24]: 13 13 21
子带[25]: 12 12 16
子带[26]: 14 14 20
子带[27]: 12 12 12
子带[28]: 14 14 14
子带[29]: 12 12 18
子带[30]: 13 13 13
--------- 比特分配表 ---------
— 声道 1 —
子带[ 1]: 7
子带[ 2]: 6
子带[ 3]: 4
子带[ 4]: 6
子带[ 5]: 5
子带[ 6]: 5
子带[ 7]: 4
子带[ 8]: 5
子带[ 9]: 4
子带[10]: 4
子带[11]: 3
子带[12]: 3
子带[13]: 4
子带[14]: 4
子带[15]: 3
子带[16]: 2
子带[17]: 3
子带[18]: 3
子带[19]: 3
子带[20]: 2
子带[21]: 1
子带[22]: 3
子带[23]: 2
子带[24]: 2
子带[25]: 2
子带[26]: 1
子带[27]: 2
子带[28]: 1
子带[29]: 2
子带[30]: 0
— 声道 2 —
子带[ 1]: 4
子带[ 2]: 4
子带[ 3]: 3
子带[ 4]: 5
子带[ 5]: 5
子带[ 6]: 5
子带[ 7]: 4
子带[ 8]: 5
子带[ 9]: 4
子带[10]: 4
子带[11]: 3
子带[12]: 3
子带[13]: 4
子带[14]: 4
子带[15]: 3
子带[16]: 2
子带[17]: 3
子带[18]: 3
子带[19]: 3
子带[20]: 2
子带[21]: 1
子带[22]: 3
子带[23]: 2
子带[24]: 2
子带[25]: 2
子带[26]: 1
子带[27]: 2
子带[28]: 1
子带[29]: 2
子带[30]: 0

2.3音乐+噪声

文件名: 'music+zao.WAV
采样率: 22.1 kHz
目标码率: 96 kbps
bits allocated in the frame No.1 is 5008
---------音频信息---------
该音频声道数:1
观测第 1 帧
本帧比特预算:17 bits
--------------------------------比例因子---------
— 声道 1 ----
子带[ 1]: 10 10 10
子带[ 2]: 10 10 10
子带[ 3]: 11 11 11
子带[ 4]: 10 10 10
子带[ 5]: 15 9 9
子带[ 6]: 11 11 11
子带[ 7]: 11 11 11
子带[ 8]: 12 12 12
子带[ 9]: 11 11 11
子带[10]: 11 11 11
子带[11]: 12 12 10
子带[12]: 13 10 10
子带[13]: 11 11 11
子带[14]: 12 12 9
子带[15]: 12 12 12
子带[16]: 11 11 11
子带[17]: 11 11 11
子带[18]: 12 12 12
子带[19]: 12 8 8
子带[20]: 12 12 9
子带[21]: 9 9 9
子带[22]: 13 7 7
子带[23]: 15 11 11
子带[24]: 11 11 11
子带[25]: 12 12 12
子带[26]: 11 11 11
子带[27]: 15 12 12
子带[28]: 12 12 12
子带[29]: 14 11 11
子带[30]: 11 11 11
--------- 比特分配表 ---------
— 声道 1 —
子带[ 1]: 7
子带[ 2]: 8
子带[ 3]: 7
子带[ 4]: 8
子带[ 5]: 6
子带[ 6]: 6
子带[ 7]: 6
子带[ 8]: 5
子带[ 9]: 5
子带[10]: 5
子带[11]: 5
子带[12]: 3
子带[13]: 3
子带[14]: 3
子带[15]: 3
子带[16]: 3
子带[17]: 3
子带[18]: 3
子带[19]: 3
子带[20]: 3
子带[21]: 3
子带[22]: 3
子带[23]: 3
子带[24]: 3
子带[25]: 3
子带[26]: 3
子带[27]: 3
子带[28]: 3
子带[29]: 3
子带[30]: 3

数据压缩实验六:MPEG音频编码实验 分析信号,去掉不能被感知的部分①时域分析(粗细节):滤波器组32个子带→块形成→线性量化器→颗粒形成通过子带分析滤波器组使信号具有高的时间分辨率,确保在短暂冲击信号情况下,编码的声音信号具有足够高的质量。②频域分析(细细节):1024点fft→心理声学模型→动态比特分配→码率通过FFT运算具有高的频率分辨率,因为掩蔽阈值是从功率谱密度推出来的。傅里叶变换的问题在于,它只能表示什么频率成分出现过,不能表示频率成分出现的时间。所以如果两个相同的尖峰信号先后出现,它们的傅里叶变换相同,会造成编码问题。编码时需要精 阅读详情

相关推荐

35、子带与小波编码技术详解

本文详细介绍了子带编码与小波变换的基本原理、实现方法及其在信号处理中的应用。内容涵盖两通道子带分解的完美重构条件、滤波器设计与MATLAB实现,扩展至多通道系统及实际编码应用;深入探讨了小波变换的时频分析能力、Haar小波示例、信号近似与展开,并对比了子带编码与小波变换在性能和适用场景上的差异。结合语音、图像和地震信号的实际案例,展示了两种技术的优势与局限,最后展望了其在自适应处理、硬件加速和新兴领域的融合发展前景。

n7o8p的博客 56

子带编码(SBC)

<br />子带编码(subband coding,SBC)的基本思想是:使用一组带通滤波器(band-pass filter,BPF)把输入音频信号的频带分成若干个连续的频段,每个频段称为子带。对每个子带中的音频信号采用单独的编码方案去编码。在信道上传送 时,将每个子带的代码复合起来。在接收端译码时,将每个子带的代码单独译码,然后把它们组合起来,还原成原来的音频信号。子带编码的方块图如图3-17所 示,图中的编码/译码器,可以采用ADPCM,APCM,PCM等。 <br />图3-17 子带

Embeded system Development 1万+

子带编码、算术编码、行程编码、图像融合(程序)

是本人近期整理的程序及资料,希望对大家的学习有用。

音频编码之子带编码

子带。子带(subband)是指这样的一种频率范围,当两个音调的频率位于一个子带内时,人就会把两个音调听成一个。更一般的情况是,如果一个复杂信号的频率分布位于一个子带内时,人耳的感觉是该信号等价于一个频率位于该子带中心频率处的简单信号,这是子带的核心内涵。简单说,子带是指一个频率范围,频谱位于这个范围内的信号可以用一个单一频率的分量来代替。  一般等价的频率取子带的中心频率,振幅取子带内个频

Walk More Slowly 5638

语音增强算法

MATLAB语音增强代码,有需要的可以看下。该算法是利用Matlab进行仿真的。通过对时域波形的观察,表明MMSE的语音增强算法能够有效地滤除背景噪声,在用了有声/无声判断后,“音乐噪声”也大幅度降低。

语音信号子带编码matlab程序subband_coders

子带编码是以信号频谱为依据的编码方法,即将信号分解成不同频带分量来去除信号相关性,再将分量分别进行取样、量化、编码,从而得到一组互不相关的码字合并在一起后进行传输。

小波变换——子带编码,Subband Coding

离散小波变换。多级信号分解,多分辨率分析。 Multiresolution Analysis(MRA、多分辨率分析) 子带编码(Subband Coding) 简称SBC。 一种以信号频谱为依据的编码方法,即将信号分解成不同频带分量来去除信号相关性,再将分量分别进行取样、量化、编码,从而得到一组互不相关的码字合并在一起后进行传输。 子带编码(Subband Coding)...

weixin_30323961的博客 1523

Bartender 2021破解版安装教程:手把手教你从下载到激活(附详细步骤图)

本文详细介绍了BarTender 2021专业版的安装与高效应用指南,从基础配置到高级条码设计,帮助用户快速掌握标签设计与打印技术。内容涵盖安装步骤、标签模板创建、数据连接与批量打印技巧,以及高级功能如安全策略与自动化集成,适合零售、物流、制造等行业用户提升工作效率。

p4q5r6s7t的博客 2638

子带编码

qingkongyeyue的博客 4832

Linux服务器上后台运行jupyter notebook/Lab

1 安装配置教程2 后台运行jupyter3 更改运行环境kernel4 SSH端口转发 1 安装配置教程 可以参考:https://www.cnblogs.com/thousfeet/p/10647102.html 2 后台运行jupyter screen -S jupyter # 新建一个名为jupyter的后台screen # 在base环境下,先 cd 到指定文件目录 jupyter notebook # or jupyter lab 3 更改运行环境kernel 需要手动为每个环境添加内.

strivequeen的博客 1834

别再让CPU干GPU的活了:CST Studio Suite GPU加速深度调优指南(从驱动版本到任务管理器监控)

本文深入探讨了CST Studio Suite的GPU加速深度调优方法,从NVIDIA驱动版本选择到系统级资源管理,再到实时监控与瓶颈诊断技术。通过科学的驱动优化、GPU资源管理策略和高级调优技巧,显著提升仿真效率,特别适合电磁仿真工程师和硬件加速需求的专业用户。

weixin_28740299的博客 165

实验六——MPEG音频编码

一.实验原理 听觉系统中存在一个听觉阈值电平,低于这个电平的声音信号就听不到,听觉阈值的大小随声音频率的改变而改变。一个人是否听到声音取决于声音的频率,以及声音的幅度是否高于这种频率下的听觉阈值,听觉掩蔽特性。即听觉阈值电平是自适应的,会随听到的不同频率声音而发生变化。音调音的掩蔽阈的宽度随频率而变化,掩蔽曲线不对称,高频段一侧的曲线斜率缓些,低频音容易对高频音产生掩蔽。 如果有多个频率成分的

zj_jane的博客 1000

记一次Redis出问题及解决方案

Q1: redis服务关闭前确认数据还是在的,重启后发现一条数据都没了,key* 查也是空的 A1: 经仔细检查发现redis.conf配置文件配置的数据存储目录配置的是dir ./ 也就是相对目录,也就是说在哪个目录执行redis-server redis.config启动命令 redis数据就会存到哪个目录,同样就会加载哪个目录下的数据文件(dump.rdb),前后两次启动命令的位置不一样导致第二次启动没有加载到(dump.rdb)文件,从而导致查不出数据 Q2:springboot 集成r

u010013928的博客 3059

实验六 MPEG音频编码

一、MPEG音频编码原理 1.1 基本思想 分析信号,去掉不能被感知的部分【声音压缩算法可以确立这种特性的模型来取消更多的冗余数据】 子带分析滤波器组:使信号具有高的时间分辨率【短暂冲击信号情况下,编码的声音信号具有足够高的质量】 FFT运算:使信号具有高的频率分辨率 比特分配:低频子带分配较多的位数【保护音调和共振峰的结构】;高频自带分配较少的位数【摩擦音和类似噪声的声音】 1.2 心理声学模型(Psychoacoustic model) 生理(Physiological)感知极限(传感极限) 心

weixin_45381219的博客 270

【实战指南】DBeaver EE Windows版高效破解与配置全解析

本文详细解析了DBeaver EE Windows版的高效破解与配置方法,涵盖Java环境配置、破解包部署、配置文件修改等关键步骤,并提供了性能优化和数据库连接的最佳实践。适用于需要解锁企业版高级功能的数据库开发人员,帮助提升工作效率。

weixin_28837817的博客 1902

新华DCS系统仿真测试方法详细介绍

新华DCS ICAN3.1系统是应用广泛并且功能非常强大的国产DCS系统。具有管理虚拟CPU并仿真运行的功能。并且上位机画面可以与虚拟DPU数据实时同步仿真。具体仿真方法如下所示: 1、 需要设备及软件: 2、步骤如下: 2.1硬件步骤: 1)电脑开机。 2)交换机连接电脑网卡。 3)交换机上电运行。 2.2软件步骤: 1)设置电脑IP 一般配置IP为A网工程站IP。 222.222.221.201/255.255.255.0 2)建立虚拟DPU 登录 D:\iCAN\Program\Vxcu 文件夹。

lw_waston的博客 6892

【实验六】MPEG音频编码

【实验六】MPEG音频编码 一、实验原理 二、实验过程 三、实验结果

qq_44118677的博客 248

虚幻商城 Quixel 免费资产一键入库

在免费领取所有Megascans之后,我们只是有了获取 Quixel Megascans 资产的资格,但是没有入 Fab 库,本文将讲解通过脚本将 Quixel 所有资产入库 Fab。

一碗清深的博客 3313

实验六:MPEG音频编码实验

一、MPEG-1音频编码整体框架 心理声学模型:通过子带分析滤波器组使信号具有高的时间分辨率,确保在短暂冲击信号情况下,编码的声音信号具有足够高的质量;又可以使信号通过FFT运算具有高的频率分辨率,因为掩蔽域值是从功率谱密度推出来的。在低频子带中为了保护音调和共振峰的结构,就要求用较小的量化阶、潍坊人    化阶数,即分配较多的位数。噪音多分布在高频子带,分配较少的位数。 多项滤波器组

zsy2415535899的博客 792

DeerFlow 系列教程 附录 | 核心文件索引、官方文档索引与推荐阅读顺序

DeerFlow 系列教程 附录本附录汇集了 DeerFlow 项目的核心文件索引、官方文档索引和推荐阅读顺序三份速查资料,方便读者在日常开发和学习中快速定位关键代码与文档。内容按实际项目目录结构整理,所有路径均基于 DeerFlow 2.0 版本验证。

weixin_43674738的博客 328

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

实验六 | MPEG音频编码

** MPEG音频编码 ** 一、实验要求 1、输出音频的采样率和目标码率 2、 选择三个不同特性的音频文件(噪声、音乐、混合),对于某个数据帧,输出 该帧所分配的比特数 该帧的比例因子 该帧的比特分配结果 二、实验原理 MPEG-1 Audio LayerII编码器原理 采用感知音频编码,基本思想是利用心理声学模型分析信号并去掉不能被感知的部分,去冗余使得编码效率提高。 1、心理声学模型 听觉系统中存在一个听觉阈值电平,低于这个电平的声音信号就听不到;听觉掩蔽特性,即听觉阈值电平是自适应的,会随听

m0_55793942的博客 445

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

14实验六MPEG音频编码实验

文章目录一MPEG-1 Audio LayerII编码器原理二级目录三级目录 一MPEG-1 Audio LayerII编码器原理 二级目录 三级目录

远离起点的博客 409

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【实验六】MPEG音频编码原理及调试

一. 二. 三. 四. 五.测试结果 1.乐音music.

qq_44018041的博客 599

实验六|MPEG音频编码实验

一、MPEG-1 Audio LayerII编码器原理

mengjiuye的博客 254
上一篇: JPEG原理分析及JPEG解码器的调试
下一篇: H.264编码分析
JFrankLee
博客等级 码龄7年 14粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值