急!!请详细解释一下matlab的一段代码!!!

2025-02-01 00:01:39
推荐回答(1个)
回答1:

是求功率谱.
Fs bit]=wavread('50.wav'); %读取波形文件,s为数据,Fs为抽样频率,bit为位宽
figure(1) %新建一个窗口
%小波去噪
[thr,sorh,keepapp]=ddencmp('den','wv',s); %返回小波除噪和压缩后的信号
[s,cxc,lxc,perf,perfl2]=wdencmp('gbl',s,'db3',3,thr,sorh,keepapp); %通过门限阈值处理得到小波系数
%求频谱
nfft=length(s); %信号长度,即抽样点数
p=floor(length(s)/3)+1; %AR预测的阶数
[spsd,f]=pyulear(s,p,nfft,Fs,'onesided'); %求功率谱密度
pmax=max(spsd); %功率谱密度最大分量
spsd=spsd/pmax; %归一化处理
%显示
plot(f(1:200),spsd(1:200)); %对应频率点的功率谱画图
a=find(spsd==1) %寻找归一化后为1的频率点的位置
f(a) %输出最大功率谱密度对应的频率