matlab 画短时平均幅度谱

这篇博客使用MATLAB对语音信号进行了短时绝对值谱分析,对比了不同窗长(50, 100, 400, 800)下帧移为0时的短时平均幅度谱。短时绝对值谱相比于短时能量谱在计算上更高效,且避免了溢出错误。通过 subplot 函数绘制了不同窗长下的能量谱曲线,展示了帧数与短时能量的关系。
摘要由CSDN通过智能技术生成

和上一节 matlab 画短时能量图 的区别在于,上一节是求平方,现在是求绝对值。但是得到的图形和上一节一样,短时平均幅度谱 相比 短时能量谱 的好处在于节省计算量,而且不会出现计算溢出错误。

fid=fopen('zqq.txt', 'rt');
x=fscanf(fid, '%f');
fclose(fid);

%计算窗长为50,帧移=0时的语音能量
s=fra(50, 50, x);%帧长为50个数字,帧移为50个数字, 得到s为1319行,50列的矩阵。也就是每一行有50个数字,这50个数字为一帧
%disp(length(s2));
%disp(size(s2, 1));
%disp(size(s2, 2));
s2=abs(s);
%b=sum(a,dim); a表示矩阵;dim等于1或者21表示每一列进行求和,2表示每一行进行求和;表示每列求和还是每行求和;b表示求得的行向量
energy=sum(s2, 2);%对矩阵s2每一行求和, energy为1319行,1列,也就是每个数字代表一帧能量
%disp(size(energy, 1));
%disp(size(energy, 2));
subplot(2, 2, 1);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=50');
axis([0, 1500, 0, 10*10^5]);

%计算窗长为100,帧移=0时的语音能量
s=fra(100, 100, x);
s2=abs(s);
energy=sum(s2, 2);
subplot(2, 2, 2);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=100');
axis([0, 750, 0, 2*10^6]);

%计算窗长为400,帧移=0时的语音能量
s=fra(400, 400, x);
s2=abs(s);
energy=sum(s2, 2);
subplot(2, 2, 3);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=400');
axis([0, 190, 0, 7*10^6]);

%计算窗长为800,帧移=0时的语音能量
s=fra(800, 800, x);
s2=abs(s);
energy=sum(s2, 2);
subplot(2, 2, 4);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=800');
axis([0, 95, 0, 14*10^6]);

function f=fra(len, inc, x)
    %len为帧长,inc为帧长一帧移
    %size(X,1),返回矩阵X的行数;
    %size(X,2),返回矩阵X的列数;
    %disp(size(x, 1));
    fh=fix(((size(x, 1) - len)/inc) + 1);%计算帧数,fh=1319
    %disp(fh);
    f=zeros(fh, len);%fh行,len列的0矩阵,这里是1319行,50列的0矩阵
    i=1; n=1;
    while i<=fh
        j=1;
        %下面的循环是每次循环一次填满一行50个数字,也就是一帧,填满一行以后,将行数加1后再次填
        while j<=len
            f(i, j)=x(n);
            j=j+1;
            n=n+1;
        end
        n=n-len+inc;% n-len代表将恢复到上帧的末尾,+inc的意思是在上一帧的末尾再移动inc长度 
        i=i+1;
    end
end

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值