matlab求功率谱
matlab实现经典功率谱估计fft做出来是频谱,psd做出来是功率谱;功率谱丢失了频谱的相位信息;频谱不同的信号其功率谱是可能相同的;功率谱是幅度取模后平方,结果是个实数matlab中自功率谱密度
matlab 实现经典功率谱估计 fftpsd 做出来是频谱,做出来是功率谱;功率谱丢失了频谱的相位信息;频谱不同的信号其 功率谱是可能相同的;功率谱是幅度取模后平方,结果是个实数 matlabpsdmatlabpsdWelch 中自功率谱密度直接用函数就可以求,按照的说法,能实现法 psd 估计,即相当于用改进的平均周期图法来求取随机信号的功率谱密度估计。求出的结果 应该更光滑吧。 1 、直接法: x(n)N 直接法又称周期图法,它是把随机序列的个观测数据视为一能量有限的序列,直接 x(n)X(k)Nx(n) 计算的离散傅立叶变换,得,然后再取其幅值的平方,并除以,作为序列真 实功率谱的估计。 Matlab 代码示例: clear; Fs=1000; % 采样频率 n=0:1/Fs:1; % 产生含有噪声的序列 xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); window=boxcar(length(xn)); % 矩形窗 nfft=1024; [Pxx,f]=periodogram(xn,window,nfft,Fs); % 直接法 plot(f,10*log10(Pxx)); 2 、间接法: x(n)R(n)R(n)x(n) 间接法先由序列估计出自相关函数,然后对进行傅立叶变换,便得到的功 率谱估计。 Matlab 代码示例: clear; Fs=1000; % 采样频率 n=0:1/Fs:1; % 产生含有噪声的序列 xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); nfft=1024; cxn=xcorr(xn,'unbiased'); % 计算序列的自相关函数 CXk=fft(cxn,nfft); Pxx=abs(CXk);

