Matlab实现均匀量化
Matlab实现均匀量化
首先读入一个音频文件的前200个点,如果音频通道大于1则只取一个通道,滤掉其余的
得到音频文件的最大值和最小值,最大值和最小值的差除以2的4次方即16得到量化电平的端点间隔。
从最小值开始每次加量化电平端点间隔进行量化,最大值之上补一个边界,方便判断。
- Mid Riserd 量化方法
遍历量化区间,如满足某一区间,则取其区间的中点进行量化,并进行下一个点 - Mid Tread量化方法
遍历量化电平正负半个端点间隔,如满足该区间,则取该量化端点
输出两者和原来信号进行对比分析。
实现效果
运行效果图:
红色的是原始声音信号的波形
蓝色的是4 bits量化后的波形


代码实现
clear all
clc
% 量化位数
n_bits = 4;
% 读入原始文件的左声道前200个点
WAV = wavread('road.wav', 200);
WAV = WAV( : ,1);
figure;
plot(WAV, 'r');hold on
% 设置量化电平参数
MAX_VALUE = max(WAV);
MIN_VALUE = min(WAV);
MID_VALUE = (MAX_VALUE - MIN_VALUE) / 2^n_bits;
for i = 1 : 2^n_bits + 1
m(i) = MIN_VALUE + MID_VALUE * (i - 1);
end
%% Mid Riser的量化方法
WAV1 = WAV;
for i = 1 : 200
for j = 1 : 2^n_bits
% 取分界点的中点
if WAV1(i) >= m(j) && WAV1(i) <= m(j+1)
WAV1(i) = (m(j) + m(j+1)) / 2;
break
end
end
end
plot(WAV1, 'b');hold off % 输出并对比
title('Mid Riser');
%% Mid Tread的量化方法
figure;
plot(WAV, 'r');hold on
WAV2 = WAV;
for i = 1 : 200
for j = 1 : 2^n_bits
% 取某一分界点
if WAV2(i) >= (m(j) - 1/2 * MID_VALUE) && WAV2(i) <= (m(j) + 1/2 * MID_VALUE)
WAV2(i) = m(j);
break
end
end
end
plot(WAV2, 'b');hold off % 输出并对比
title('Mid Tread');
Matlab实现均匀量化的更多相关文章
- 在matlab中对hsv进行均匀量化和非均匀量化
首先,进行非均匀量化,H,S,V三通道分别量化为16,4,4级,返回一个向量.量化依据如下表: function vec = getHsvHist(Image) [M,N,O] = size(Imag ...
- 数字图像处理笔记与体会(一)——matlab编程基础
最近开始学习数字图像处理,使用matlab实现,下面我就来记录笔记和体会,一方面是给大家提供参考,另一方面是防止我忘记了. 复习一下: 1.数字图像是用一个数字矩阵来表示的,数字阵列中的每个数字,表示 ...
- Matlab图像处理基础知识
Matlab图像处理基础知识 Matlab的图片以矩阵的形式存储,矩阵的行列值为图片的行列的色彩值. 1图像表达方式: 像素索引 图像被视为离散单元.如使用I(2,2)可以获取第二行第二列的像素值 空 ...
- Matlab 绘制三维立体图(以地质异常体为例)
前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...
- Matlab slice方法和包络法绘制三维立体图
前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...
- Matlab 高斯_拉普拉斯滤波器处理医学图像
前言:本程序是我去年实现论文算法时所做.主要功能为标记切割肝脏区域.时间有点久,很多细节已经模糊加上代码做了很多注释,因此在博客中不再详述. NOTE: 程序分几大段功能模块,仔细阅读,对解决医学图像 ...
- MATLAB中绘制质点轨迹动图并保存成GIF
工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...
- linux下配置matlab运行环境(MCR)
在安装好的matlab下有MCR(MatlabCompilerRuntime)在matlab2011/toolbox/compiler/deploy/glnxa64下找到MCRInstaller.zi ...
- EMD分析 Matlab 精华总结 附开源工具箱(全)
前言: 本贴写于2016年12与15日,UK.最近在学习EMD(Empirical Mode Decomposition)和HHT(Hilbert-Huang Transform)多分辨信号处理,FQ ...
随机推荐
- jQuery Ajax 全解析(转)
<!-- .ajax div{ border: solid 1px red; } --> // <![CDATA[ $(function(){ $("#btnajax&qu ...
- leetcode 83
83. Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such that e ...
- hdu2085
#include <stdio.h> int main(){ __int64 h[],l[]; int i,j; int n; ){ h[]=; l[]=; ;i<=n;++i){ ...
- Android IOS WebRTC 音视频开发总结(六二)-- 大数据解密国外实时通讯行业开发现状
本文主要介绍国外实时通讯行业现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 上篇文章我们采用百度搜索指数来分 ...
- 个人博客实现Archives查询小记
这两天正在做博客,刚刚遇到一个问题,就是需要在主页实现文档分类功能,即通过日期将文章进行按日期进行分类. 比如这样的: 我个人的想法是,查询所有文章的日期,然后将日期进行格式化,只留下年份和月份,然后 ...
- State
#include <iostream> using namespace std; #define DESTROY_POINTER(ptr) if (ptr) { delete ptr; p ...
- android自定义控件实现TextView按下后字体颜色改变
今天跟大家分享一下Android自定义控件入门,先介绍一个简单的效果TextView,按下改变字体颜色,后期慢慢扩展更强大的功能 直接看图片 第一张是按下后截的图,功能很简单, ...
- DataGridView控件判断滚动条是否滚动到当前已加载的数据行底部
private void dgvLoad_Scroll(object sender, ScrollEventArgs e) { if (e.ScrollOrientation == ScrollOri ...
- css font-family 字体全介绍,\5b8b\4f53 宋体 随笔
font-family采用一种"回退"的形式来保存字体,可以写若干种字体.当第一种字体浏览器不支持的时候,会找第二种字体,一次类推. font-family字体分为两类: 特殊字体 ...
- 【译】Spark官方文档——编程指南
本文翻自官方博客,略有添加:https://github.com/mesos/spark/wiki/Spark-Programming-Guide Spark发指南 从高的面看,其实每一个Spark的 ...