您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 三分之一倍频程程序解读
方法一:%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=(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倍频程的程序是按照振动振级计算那个来的forj=1:ncfl=fc(j)/oc6;fu=fc(j)*oc6;nl=round(fl*nfft/fs+1);nu=round(fu*nfft/fs+1);iffufs/2m=j-1;break;endb=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:n))));endaj_sumn=0;fori=1:ncLp1(i)=20*log10(yc(i)/p0);%未计权1/3倍频程声压级end%%%%%forjj=1:ncaj_sumn=aj_sumn+10^(0.1*Lp1(j));endLp=10*log10(aj_sumn);%未计权总声压级subplot(223);%绘制未计权1/3倍频程声压级图谱bar(Lp1(1:nc));gg=zeros(1,nc);fori=1:ncgg(1:nc)=fc(1:nc);endggg=1:nc;set(gca,'xtick',ggg);set(gca,'xticklabel',gg);%%%%%A计权1/3倍频程声压级Lap=Lp1+cf;aj_sum=0;forj=1:ncaj_sum=aj_sum+10^(0.1*Lap(j));endLA=10*log10(aj_sum);%Aa计权总声压级subplot(224);%绘制A计权1/3倍频程声压级图谱bar(Lap(1:nc));gg=zeros(1,nc);fori=1:ncgg(1:nc)=fc(1:nc);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=(0:1/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=(0:1/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(1:nfft/2));oc6=2^(1/6);nc=length(cf);forj=1:ncfl=fc(j)/oc6;fu=fc(j)*oc6;nl=round(fl*nfft/fs+1);nu=round(fu*nfft/fs+1);iffufs/2m=j-1;break;endp=w(nl:nu);lp=length(p);k=0;forii=1:lpifii+2lpbreakendifp(ii+1)p(ii)&&p(ii+1)p(ii+2)k=k+1;pp(k)=p(ii+1)/sqrt(2);endendp2(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(1:mm));gg=zeros(1,mm);fori=1:mmgg(1:mm)=fc(1:mm);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);%如果上相频率大于折叠频率则循环中断iffusf/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(1:n))));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(1:m),yc(1:m));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、读书给人以快乐、给人以光彩、给人以才干。——培根
本文标题:三分之一倍频程程序解读
链接地址:https://www.777doc.com/doc-4676609 .html