失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据压缩作业一:音频时域频域特性分析(Audacity)及RGB文件熵的计算

数据压缩作业一:音频时域频域特性分析(Audacity)及RGB文件熵的计算

时间:2022-01-21 11:05:07

相关推荐

数据压缩作业一:音频时域频域特性分析(Audacity)及RGB文件熵的计算

音频分析:

概念区分:

在语音学中,将发声声带振动的音称浊音;声带不振动的音称清音;

爆破音则是指发音器官在口腔中形成阻碍,气流冲破阻碍而发出的音。

( 使用的浊音为/a/,清音为/s/,爆破音为/t/ )

浊音时域:

浊音频域:

清音时域:

清音频域:

爆破音时域:

爆破音频域:

从实验结果中可以看出:

1、浊音信号时域波形具有短时周期性,能量较高,过零率较低;频谱中,能量主要集中在低频段。

2、清音信号和爆破音信号均无短时周期性;清音时域波形平稳,与噪声时域波形类似,频域能量分布较为均匀;

3、爆破音时域有明显的脉冲,频域能量较集中。

RGB熵的计算

计算公式:

test.rgb文件分辨率为256×256,每个像素占用3个字节,存储格式为BGRBGRBGR……

实现代码:

#include<stdio.h>#include <iostream>#include<malloc.h>#include<string.h>#pragma warning(disable:4996);using namespace std;int main(){int image = 256 * 256;int size = image * 3;unsigned char* Y = (unsigned char*)malloc(size);unsigned char* R = (unsigned char*)malloc(image);unsigned char* G = (unsigned char*)malloc(image);unsigned char* B = (unsigned char*)malloc(image);FILE* fp;//打开源文件fopen_s(&fp, "C:\\Users\\86138\\Desktop\\数据压缩\\test.rgb", "rb");fread(Y, sizeof(unsigned char), size, fp); //读取RGB分量for (int i = 0, j = 0; i < 256 * 256 ; i = i++){B[j] = Y[i*3];G[j] = Y[i*3 + 1];R[j] = Y[i*3 + 2];j++;}double proR[256] = { 0 },proG[256] = { 0 },proB[256] = { 0 };double HR=0.0, HG=0.0, HB=0.0;//计算次数for (int i = 0; i < 256; i++){for (int j = 0; j < 256*256; j++){if (int(R[j] == i)) { proR[i]++; }if (int(G[j] == i)) { proG[i]++; }if (int(B[j] == i)) { proB[i]++; }}}//计算概率for (int i = 0; i < 256; i++){proR[i] = proR[i] / image;proG[i] = proG[i] / image;proB[i] = proB[i] / image;}//计算熵for (int i = 0; i < 256; i++){if (proR[i] != 0)HR += -proR[i] * log2(proR[i]);if (proG[i] != 0)HG += -proG[i] * log2(proG[i]);if (proB[i] != 0)HB += -proB[i] * log2(proB[i]);}//输出cout << "H(R)=" << HR << endl;cout << "H(G)=" << HG << endl;cout << "H(B)=" << HB << endl;}

实验结果:

如果觉得《数据压缩作业一:音频时域频域特性分析(Audacity)及RGB文件熵的计算》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。