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;
MATLAB各频段能量占比计算
最新推荐文章于 2024-02-26 23:48:14 发布