psdwh.m
来自「C 程序 球面方位角算法: azimuth.cpp CRC校验快速算法: C」· M 代码 · 共 26 行
M
26 行
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 + =
减小字号Ctrl + -
显示快捷键?