📄 psdwh.m
字号:
function [px,f]=psdwh(x,fs,nwin,nfft)
% 以算法实现 Matlab函数pwelch的功率谱计算功能
% 输入: 信号向量x,采样率fs,分段长度nwin,FFT点数
% 输出: 功率谱曲线px 及其坐标向量f
Ft(1:nfft/2+1)=0;
lap=floor(nwin/2);
pos=1;
hm=hamming(nwin)';
[r,l]=size(x);
if(r>1) x=x'; end
for i=1:floor(length(x)/lap)-1
dat=x(pos:pos+nwin-1);
dat=hm.*dat;
xft=fft(dat,nfft); %多开内存费时间,只开一个xft反复用省时一半
FT(i,:)=xft(1:nfft/2+1);
pos=i*lap+1;
end
px=sum(abs(FT).^2);
px=px/max(px);
f=0:fs/nfft:fs/2;
% 用法演示:
% [u,Fs]=wavread('E:\FSK\2FSK_01.wav',[236880 288106]);
% [px,f]=psdwh(u,Fs,256,2048);
% plot(f,px);grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -