倍频程分析函数matlab,瞬时声压时域数据怎么用matlab进行1/3倍频程声压级分析
%A计权声压级频谱分析
clc;
clear;
close all;
%时域分析
y=wavread('abc.wav');
%频域分析
fs=51200;%采样频率
p0=2e-5;%参考声压
f=[1.00 1.25 1.600 2.00 2.50 3.15 4.00 5.00 6.30 8.0]; %基准中心频率
f1=[20.00 25.0 31.5 40.0 50.0 63.0 80];
fc=[f1,100*f,1000*f,10000*f]; %%%%%%%%%中心频率%%%%%%%%
%20-16000Hz A声级计权值
cf=[-50.5,-44.7,-39.4,-34.6,-30.2,-26.2,-22.5,-19.1,-16.1,-13.4,-10.9,-8.6,-6.6,-4.8,-3.2,-1.9,-0.8,0,0.6,1.0,1.2,1.3,1.2,1.0,0.5,-0.1,-1.1,-2.5,-4.3,-6.6];
x=y(t1*fs:t2*fs);%截取需要处理的数据段
n=length(x);
t=(0:1/fs:(n-1)/fs);
subplot(221);
plot(t,x);%瞬时声压时程图
w=hanning(n); %汉宁窗
xx=1.633*x.*w; %加汉宁窗(恢复系数为1.633)
nfft=2^nextpow2(n);
%nextpow2(n)-取最接近的较大2次幂
a = fft(xx,nfft);
f = fs/2*linspace(0,1,nfft/2);
w=2*abs(a(1:nfft/2)/n);
subplot(222);
plot(f,w);%绘制频谱图
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%1/3倍频程计算
oc6=2^(1/6);
nc=length(cf);
%下面这个求1/3倍频程的程序是按照振动振级计算那个来的
for j=1:nc
fl=fc(j)/oc6;
fu=fc(j)*oc6;
nl=round(fl*nfft/fs+1);
nu=round(fu*nfft/fs+1);
if fu>fs/2
m=j-1;
break;
end
b=zeros(1,nfft);
b(nl:nu)=a(nl:nu);
b(nfft-nu+1:nfft-nl+1)=a(nfft-nu+1:nfft-nl+1);
c=ifft(b,nfft);
yc(j)=sqrt(var(real(c(1:nnn))));
end
aj_sumn=0;
for i=1:nc
Lp1(i)=20*log10(yc(i)/p0);%未计权1/3倍频程声压级
end
%%%%%
for jj=1:nc
aj_sumn=aj_sumn+10^(0.1*Lp1(j));
end
Lp=10*log10(aj_sumn);%未计权总声压级
subplot(223);%绘制未计权1/3倍频程声压级图谱
bar(Lp1(1:nc));
gg=zeros(1,nc);
for i=1:nc
gg(1:nc)=fc(1:nc);
end
ggg=1:nc;
set(gca,'xtick',ggg);
set(gca,'xticklabel',gg);
%%%%%A计权1/3倍频程声压级
Lap=Lp1+cf;
aj_sum=0;
for j=1:nc
aj_sum=aj_sum+10^(0.1*Lap(j));
end
LA=10*log10(aj_sum);%Aa计权总声压级
subplot(224);%绘制A计权1/3倍频程声压级图谱
bar(Lap(1:nc));
gg=zeros(1,nc);
for i=1:nc
gg(1:nc)=fc(1:nc);
end
ggg=1:nc;
set(gca,'xtick',ggg);
set(gca,'xticklabel',gg);
倍频程分析函数matlab,瞬时声压时域数据怎么用matlab进行1/3倍频程声压级分析相关推荐
- matlab1 3倍频程,瞬时声压时域数据怎么用matlab进行1/3倍频程声压级分析
%A计权声压级频谱分析 clc; clear; close all; %时域分析 y=wavread('abc.wav'); %频域分析 fs=51200;%采样频率 p0=2e-5;%参考声压 f= ...
- 用matlab处理表格,matlab删除excel表格数据-如何用matlab处理多个excel表格中的数据...
如何用matlab处理多个excel表格中的数据 biao='D:\Program Files\matlab\bin\filename.xls'; A1=xlsread (biao,'Sheet1', ...
- matlab批量导入excel表格数据,matlab导入excel表格数据-如何用matlab读取多个excel表格数据,将每个表格数......
如何用matlab读取多个excel表格数据,将每个表格数... 一xlsread()函数,比import简单的多,具体语句:A = xlsread('yourfilename.xls')望高手支招! ...
- matlab怎么语音时域采样频谱,基于MATLAB的时域信号采样及频谱分析
基于 M ATL AB的时域信号采样及频谱分析 刘 艳 (长江师范学院物理学与电子工程学院 重庆 408000) 信 息 技 术 摘 要:在MATLAB仿真环境下,通过观察所生成的采样信号的时域图和频 ...
- matlab批量合并表格数据,用matlab合并excel表格数据-如何用matlab读取多个excel表格数据,将每个表格数......
用matlab如何识别excel里的单元格是否为合并单元格 方法如下: 使用函数xlsread读取单个文件. num=xlsread(filename) filename是单引号括起来的带路径的文件名 ...
- Matlab/Simulink中的数据输出到Matlab工作空间中
1.按照图中操作 2.数据输出到了Matlab的工作空间 3.使用这些数据绘图 plot(out.tout,out.y2.signals(1).values) 注意:这里的时间变量名和输出变量名需要根 ...
- matlab如何显示矩阵数据,菜鸟求助-matlab矩阵数据显示问题
楼上的各位,谢谢了 不过按照#4的,我也可以得到 >> > max(x2) ans = 10000 ,可显示的确实是 Columns 999715 through 999720 0. ...
- MATLAB高斯噪声时域频域代码,基于Matlab生成高斯噪声
lyqmath 简介高斯噪声是常见的噪声之一,这里介绍两种高斯噪声生成方式,并希望大家多多讨论. 应用 % By lyqmath % DLUT School of Mathematical Scien ...
- matlab遗传算法拟合,基于遗传算法的数据拟合在MATLAB环境中的实现
湖 南 农 机 2010 年 5 月 收稿日期:2010-04-02 作者简介:林鸿彬(1987-),男,海南海口人,主要从事信息与计算科学专业的学习. 摘 要:在自然科学中,常常在相关的 2 个量之 ...
最新文章
- 使用redis和mysql的开源项目_干货!带你了解为什么那么多开源项目都是用Redis!...
- 实施PLM系统的总结及建议
- 启动 nginx 时报错:error while loading shared libraries:
- linux gcc编译c文件头文件,使用GCC编译器编译C语言
- bitMap保存图片
- 【动态规划】石子合并 (ssl 2863)
- 【疑问感受】初见指针——当函数遇到指针
- java 鼠标拖拽_JavaScript DOM 鼠标拖拽
- Duplicate class com.blankj.utilcode.BuildConfig found in modules classes.jar
- Charles(网络封包分析工具)
- 宏基ACER Aspire R3600 REVO离子平台
- 简单实现网络验证_电脑计算机编程入门教程自学
- 魅族手机在开发调试中无法打印log的解决方法
- 数分下第12讲(第9.6节) 梯度散度和旋度
- 区块链:POA委员会选举机制
- 使用Eclipse搭建STM32嵌入式开发环境
- 核心价值观与企业文化管理实践---基于华为的企业文化的管理实践-林 安老师
- IP-Guard桌面申请管理说明步骤
- Tomcat 的下载与安装教程
- Linux环境下——实现xml文件解析
热门文章
- 【论文复现】使用fastText进行文本分类
- python paramiko_Python3之paramiko模块
- Leetcode每日一题:112.path-sum(路经总和)
- 吴恩达|机器学习作业2.0Logistic 回归
- TypeError: create_target_machine() got an unexpected keyword argument ‘jitdebug‘解决方案
- 利用screen和nohup让Linux服务器后台运行程序
- 基于Docker搭建Jumpserver堡垒机操作实践
- linux卸载htop,linux下 htop 工具简介
- matlab调和均值滤波_matlab均值滤波(原创).doc
- python编程技术总结_Python面向对象编程(OOP)技术总结