摘要
小虎最近研究自功率谱的意义和作用,发现自功率谱还可以进行信号的简谐分量分析的哦,这里小虎使用了MATLAB进行仿真的方法来展现结果。
什么是自功率谱
根据帕塞瓦尔定理(Parseval’s theorem),在时域信号的总能量等于在频域信号的总能量。由随机信号经过傅里叶变换,再经过以下计算,可以求其自功率谱(Power spectrum)。
参数设置
设采样数n=1000,采样时间fs=1000,采样间隔为t。然后利用两个三角函数和一个随机噪声信号相加得到模拟信号。两个三角函数信号分别为频率为40HZ和90HZ的正弦波信号。
结果
物理意义
- 可以从下面一行图中看到,后面两个三角函数的自功率谱分别在 和 有个尖峰,这正是这两个三角函数的固有频率。
- 在下面一行第一个图中,可以看到模拟信号的自功率谱在 和 也有两个尖峰,所以可以从这里读出原来的两个简谐信号的固有频率。
代码分析
函数构建。
fs=1000;
n=1001;
t=(0:n-1)/fs;
x_n=sin(2*pi*40*t)+3*sin(2*pi*90*t)+randn(size(t));
求自功率频谱。
[Px,w]=periodogram(x_n,[],1023,fs);
画原信号图、自功率谱图。
figure('color',[1 1 1]);
subplot(2,1,1);
plot(t,x_n);
xlabel('t');
ylabel('x(t)');
subplot(2,1,4);
plot(w,10*log10(Px));
xlabel('Frequency/HZ');
ylabel('Power spectrum/(dB/HZ)');
完整代码
fs=1000;
n=1001;
t=(0:n-1)/fs;
x_n=sin(2*pi*40*t)+3*sin(2*pi*90*t)+randn(size(t));
[Px,w]=periodogram(x_n,[],1023,fs);
figure('color',[1 1 1]);
subplot(2,1,1);
plot(t,x_n);
xlabel('t');
ylabel('x(t)');
subplot(2,1,4);
plot(w,10*log10(Px));
xlabel('Frequency/HZ');
ylabel('Power spectrum/(dB/HZ)');
参考文献
[1]张春华等,工程测试技术基础第二版