三分之一倍频程程序解读.docx

上传人:wj 文档编号:233286 上传时间:2023-04-28 格式:DOCX 页数:7 大小:11.67KB
下载 相关 举报
三分之一倍频程程序解读.docx_第1页
第1页 / 共7页
三分之一倍频程程序解读.docx_第2页
第2页 / 共7页
三分之一倍频程程序解读.docx_第3页
第3页 / 共7页
三分之一倍频程程序解读.docx_第4页
第4页 / 共7页
三分之一倍频程程序解读.docx_第5页
第5页 / 共7页
三分之一倍频程程序解读.docx_第6页
第6页 / 共7页
三分之一倍频程程序解读.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

三分之一倍频程程序解读.docx

《三分之一倍频程程序解读.docx》由会员分享,可在线阅读,更多相关《三分之一倍频程程序解读.docx(7页珍藏版)》请在冰点文库上搜索。

三分之一倍频程程序解读.docx

方法一:

%A计权声压级频谱分析

clc;clear;closeall;

y=wavread('abc.wav');

fs=51200;%采样频率p0=2e-5;%参考声压

f=[1.001.251.6002.002.503.154.005.006.308.0];%基准中心频率

f1=[20.0025.031.540.050.063.080];fc=[f1,100*f,1000*f,10000*f];%%%%%%%%%中心频率%%%%%%%%

%20-16000HzA声级计权值

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];t1=1;

t2=2;

x=y(t1*fs+1:

t2*fs);%截取需要处理的数据段n=length(x);

t=(p>/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( 2)/n);

subplot(222);plot(f,w);%绘制频谱图

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%1/3倍频程计算oc6=2^(1/6);nc=length(cf);

%下面这个求1/3倍频程的程序是按照振动振级计算那个来的

forj=1:

nc

fl=fc(j)/oc6;fu=fc(j)*oc6;nl=round(fl*nfft/fs+1);nu=round(fu*nfft/fs+1);iffu>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(p>

end

aj_sumn=0;fori=1:

nc

Lp1(i)=20*log10(yc(i)/p0);%未计权1/3倍频程声压级

end

%%%%%

forjj=1:

nc

aj_sumn=aj_sumn+10^(0.1*Lp1(j));

end

Lp=10*log10(aj_sumn);%未计权总声压级subplot(223);%绘制未计权1/3倍频程声压级图谱

bar(Lp1(p>gg=zeros(1,nc);fori=1:

nc

gg(p>

endggg=1:

nc;

set(gca,'xtick',ggg);

set(gca,'xticklabel',gg);

%%%%%A计权1/3倍频程声压级

Lap=Lp1+cf;aj_sum=0;forj=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(p>gg=zeros(1,nc);fori=1:

nc

gg(p>

endggg=1:

nc;

set(gca,'xtick',ggg);set(gca,'xticklabel',gg);

方法二:

clc;clear;closeall;

%时域分析

y=wavread('abc.wav');

%频域分析fs=51200;%采样频率p0=2e-5;%参考声压

f=[1.001.251.6002.002.503.154.005.006.308.0];%基准中心频率

f1=[20.0025.031.540.050.063.080];fc=[f1,100*f,1000*f,10000*f];%%%%%%%%%中心频率%%%%%%%%

%20-16000HzA声级计权值

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];

n=length(y);t=(p>/fs:

(n-1)/fs);h1=figure;plot(t,y);

title('瞬时声压时程');

xlabel('Time(s)');

ylabel('SoundPresureValue(Pa)');

%t1=0;t2=4;

x=y(t1*fs+1:

t2*fs);%截取需要处理的数据段n=length(x);

%t=(p>/fs:

(n-1)/fs);

%plot(t,x);%瞬时声压时程图

w=1.633*hanning(n); %汉宁窗(恢复系数为1.633)

%w=1.812*blackmanharris(n); %布拉克曼窗(功率相等恢复系数1.812)xx=x.*w; %加汉宁窗

nfft=2^nextpow2(n); %nextpow2(n)-取最接近的较大2次幂

a=fft(xx,nfft)/n;

%f=fs/2*linspace(0,1,nfft/2);w=2*abs(a( 2));

oc6=2^(1/6);nc=length(cf);

forj=1:

nc

fl=fc(j)/oc6;fu=fc(j)*oc6;nl=round(fl*nfft/fs+1);nu=round(fu*nfft/fs+1);iffu>fs/2

m=j-1;break;

end

p=w(nl:

nu);lp=length(p);k=0;

forii=1:

lp

ifii+2>lpbreakend

ifp(ii+1)>p(ii)&&p(ii+1)>p(ii+2)k=k+1;pp(k)=p(ii+1)/sqrt

(2);

end

end

p2(j)=sum(pp.*pp);

endLp=10*log10(p2/p0^2);forjj=1:

length(Lp)

Lp1(jj)=10^(Lp(jj)/10);

endLpt=10*log10(sum(Lp1))

h2=figure;

mm=nc;bar(Lp(p>gg=zeros(1,mm);fori=1:

mm

gg(p>

endggg=1:

mm;

set(gca,'xtick',ggg);set(gca,'xticklabel',gg);set(gcf,'PaperPosition',[1,1,40,20])set(gca,'fontsize',10)xlabel('Frequency(Hz)');ylabel('SPL(dB)');

title('未计权声压级');

gridon;

方法三:

% 三分之一倍频程处理

clear;clc;closeall;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

s=xlsread('ay.xls');%输入时程数据sf=256;%采样频率

x=s(:

2);%定义三分之一倍频程的中心频率

f=[1.001.251.602.002.503.154.005.006.308.00];

fc=[f,10*f,100*f,1000*f,10000*f];

%中心频率与下限频率的比值oc6=2^(1/6);

%取中心频率总的长度

nc=length(fc);

%输入数据的长度n=length(x);

%大于并接近n的2的幂次方长度

nfft=2^nextpow2(n);

%FFT变换a=fft(x,nfft);forj=1:

nc

%下线频率

fl=fc(j)/oc6;

%上限频率fu=fc(j)*oc6;

%下限频率对应的序号

nl=round(fl*nfft/sf+1);

%上限频率对应的序号nu=round(fu*nfft/sf+1);

%如果上相频率大于折叠频率则循环中断

iffu>sf/2m=j-1;breakend

%以每个中心频率段为通带进行带通频率滤波

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(b(p>

end

%绘制输入时程曲线图形subplot(2,1,1);

t=0:

1/sf:

(n-1)/sf;plot(t,x);xlabel('时间(s)');

ylabel('加速度(g)');

gridon;

%绘制三分之一倍频程有效值图形subplot(2,1,2);

plot(fc(p>

xlabel('频率(Hz)');

ylabel('有效值');gridon;

%保存倍频程数据

fid=fopen(fno,’w’);fork=1:

m;

fprintf(fid,’%f%f\n’,fc(k),yc(k));

endstatus=fclose(fid);

读书的好处

1、行万里路,读万卷书。

2、书山有路勤为径,学海无涯苦作舟。

3、读书破万卷,下笔如有神。

4、我所学到的任何有价值的知识都是由自学中得来的。

——达尔文

5、少壮不努力,老大徒悲伤。

6、黑发不知勤学早,白首方悔读书迟。

——颜真卿

7、宝剑锋从磨砺出,梅花香自苦寒来。

8、读书要三到:

心到、眼到、口到

9、玉不琢、不成器,人不学、不知义。

10、一日无书,百事荒废。

——陈寿

11、书是人类进步的阶梯。

12、一日不读口生,一日不写手生。

13、我扑在书上,就像饥饿的人扑在面包上。

——高尔基

14、书到用时方恨少、事非经过不知难。

——陆游

15、读一本好书,就如同和一个高尚的人在交谈——歌德

16、读一切好书,就是和许多高尚的人谈话。

——笛卡儿

17、学习永远不晚。

——高尔基

18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。

——刘向

19、学而不思则惘,思而不学则殆。

——孔子

20、读书给人以快乐、给人以光彩、给人以才干。

——培根

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2