MATLAB各频段能量占比计算

clear; clc; close all; 
fs = 20000;%采样频率
Ts = 1/fs;
TotalS = 5;%时长
L = TotalS*fs;
t = (0:L-1).*Ts; 
t = t';

[x,fs] =  audioread('696-700s.wav');

%计算信号的幅度谱
Y = fft(x);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);P1(2:end-1) = 2*P1(2:end-1);
%计算信号的功率谱密度
psd = (P1).^2;
%计算感兴趣频段的能量占比
freq = 0:(fs/L):(fs/2);
idx1 = find(freq >= 200 & freq <= 800);
energy_freqband1 = sum(psd(idx1));
energy_total = sum(psd) ;
energy_ratio1 = energy_freqband1 / energy_total;

idx2 = find(freq >= 0 & freq <= 6000);
energy_freqband2 = sum(psd(idx2));
energy_ratio2 = energy_freqband2 / energy_total;

idx3 = find(freq >= 6001 & freq <= 10000);
energy_freqband3 = sum(psd(idx3));
energy_ratio3 = energy_freqband3 / energy_total;
  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值