📄 tmp607.m
字号:
%MATLAB PROGRAM 6-7
clf
Fs=1000;
%Estimate PSD by Averaged Modified periodogram
%with the nonoverlapping signal section
%=============================================
N=1024;
Nsec=256;
n=0:N-1;
t=n/Fs;
w=hanning(256)';
xn=sin(2*pi*50*t)+2*sin(2*pi*120*t)+randn(1,N);
pxx1=abs(fft(w.*xn(1:256),Nsec).^2)/norm(w)^2;
pxx2=abs(fft(w.*xn(257:512),Nsec).^2)/norm(w)^2;
pxx3=abs(fft(w.*xn(513:768),Nsec).^2)/norm(w)^2;
pxx4=abs(fft(w.*xn(769:1024),Nsec).^2)/norm(w)^2;
Pxx=10*log10((pxx1+pxx2+pxx3+pxx4)/4);
f=(0:length(Pxx)-1)*Fs/length(Pxx);
subplot(211)
plot(f,Pxx)
xlabel('Frequency (Hz)');
ylabel('Power Spectrum (dB)');
title('Averaged Modified Periodogram (no overlap) N=4*256')
grid
%Estimate PSD by Averaged Modified periodogram
%with the half overlapping signal section
%=============================================
Fs=1000;
N=1024;
Nsec=256;
n=0:N-1;
t=n/Fs;
w=hanning(256)';
xn=sin(2*pi*50*t)+2*sin(2*pi*120*t)+randn(1,N);
pxx1=abs(fft(w.*xn(1:256),Nsec).^2)/norm(w)^2;
pxx2=abs(fft(w.*xn(129:384),Nsec).^2)/norm(w)^2;
pxx3=abs(fft(w.*xn(257:512),Nsec).^2)/norm(w)^2;
pxx4=abs(fft(w.*xn(385:640),Nsec).^2)/norm(w)^2;
pxx5=abs(fft(w.*xn(513:768),Nsec).^2)/norm(w)^2;
pxx6=abs(fft(w.*xn(641:896),Nsec).^2)/norm(w)^2;
pxx7=abs(fft(w.*xn(769:1024),Nsec).^2)/norm(w)^2;
Pxx=10*log10((pxx1+pxx2+pxx3+pxx4+pxx5+pxx6+pxx7)/7);
f=(0:length(Pxx)-1)*Fs/length(Pxx);
subplot(212)
plot(f,Pxx)
xlabel('Frequency (Hz)');
ylabel('Power Spectrum (dB)');
title('Averaged Modified Periodogram (half overlap) N=1024')
grid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -