音频分析:
概念区分:
在语音学中,将发声声带振动的音称浊音;声带不振动的音称清音;
爆破音则是指发音器官在口腔中形成阻碍,气流冲破阻碍而发出的音。
( 使用的浊音为/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文件熵的计算》对你有帮助,请点赞、收藏,并留下你的观点哦!