周期性功率信号的频谱函数定义
对于周期性的功率信号的,设一个周期性功率信号x(t)的周期为T0,则将其频谱(frequency spectrum)函数定义为下式积分变换:
文章图片
式中:F0=1/T0;
n为整数,-∞
同时,对于周期性功率信号来说,其频谱函数Cn是离散的,只在F0的整数倍上取值。由于n可以取负值,所以在负频率上Cn也有值。通常称Cn为双边(频)谱。双边谱中的负频谱仅在数学上有意义;在物理上,并不存在负频率。但是我们可以找到物理上是信号的频谱和数学上的频谱函数之间的关系。——频谱函数的正品率部分和负频率部分存在复数共轭关系,这就是说,负频率和正频率谱的模式偶对称的,相位是奇对称的。摘自《通信原理 第6版》
周期性功率信号的parseval定理
设x(t)是周期性实功率信号,周期等于T0,基频为F0=1/T0,则其傅里叶级数展开式为
文章图片
所以,其平均功率可以写为
文章图片
文章图片
上式就是周期性功率信号的parseval定理。它表示周期性功率信号的平均功率等于其频谱的模的平方和。摘自《通信原理 第6版》
关于求取离散信号功率谱的一点试验,仅供各位读者参考。
Fs=1000;
sec=5;
%5秒的数据
t=1/Fs:1/Fs:sec;
x = 5*sin(2*pi*40*t) + 3*sin(2*pi*100*t) + rand(size(t));
x = 4*sin(2*pi*50*t) + 1*sin(2*pi*20*t) + 3*sin(2*pi*80*t);
% x = cos(2*pi*100*t) + randn(size(t));
nfft=1024;
[Pxx,f]=periodogram(x(1:nfft),rectwin(nfft),nfft,Fs,'twosided');
%矩形窗 双边
[Pxx_2,f_2]=periodogram(x(1:nfft),rectwin(nfft),nfft,Fs,'onesided');
%矩形窗单边y=fft(x(1:nfft), nfft);
y_2=abs(y).^2/(nfft*nfft);
fxP_2 = y_2(1: nfft/2);
fxP_2(2:end) = 2* fxP_2(2:end);
%单边功率谱freq = 0 : Fs/nfft : Fs-Fs/nfft;
freq_2 = 0 : Fs/nfft : Fs/2-Fs/nfft;
figure(1)
subplot(211)plot(f, Pxx, 'b');
title('双边谱估计-periodogram');
hold on;
subplot(212)
plot(freq,y_2,'r');
title('双边谱估计-fft');
figure(2)
subplot(211)plot(f_2, Pxx_2, 'b');
title('单边谱估计-periodogram');
hold on;
subplot(212)
plot(freq_2, fxP_2, 'r');
title('单边谱估计-fft');
由于要对比计算的结果,所以并未进行10*log10()的转换。
代码的运行结果为:
文章图片
文章图片
关于为何matlab函数fft之后要除以N/2的问题,请参考以下二链接的描述:
傅里叶变换如何在软件中精确计算得到正确的幅值?_数码逐渐远去的博客-CSDN博客_fft如何得到真实的幅值
为什么FFT后幅值要除以N/2 - 知乎
文章图片
【功率谱估计|matlab中fft与periodogram函数的关系+周期性功率信号的知识整理(简议)】
推荐阅读
- 线性规划|基于食肉植物优化算法的线性规划问题求解matlab程序
- matlab实践|遗传算法(一) 遗传算法的基本原理
- Authing|如何使用 Authing 单点登录,集成 Discourse 论坛()
- java|JAVA毕业设计国漫论坛网站计算机源码+lw文档+系统+调试部署+数据库
- java|Java学习日记14(SpringMVC的请求-配置文件的知识总结)
- Spring|SpringMVC获得请求数据-文件上传
- golang详解|【Golang详解】深入了解map
- Golang|深入理解Golang之context
- Android云音乐|3.Android高仿网易云音乐-首页复杂发现界面布局和功能