关于实信号的双边谱和单边谱

用MATLAB处理语音信号,做fft后要获得单边谱。本文收集资料进行了推导,对于fft数值后续操作从理论上做了一个理解。并且简洁的解释了fft函数的结果。供大家参考,欢迎批评指正。

转载请注明原文地址:http://blog.csdn.net/ts_dchs/article/details/78030192

理论推导

三角函数形式傅里叶级数

根据傅里叶级数原始定义,其三角函数集合在一个周期上是完备正交集

[公式1]
三角函数形式傅里叶级数

T是待分析信号的周期。所以每个频率分量:k/T下,频谱成分由括号内Ak项和Bk项共同决定,且都是非负角频率。也就是说想做成频率-幅度谱表示信号f(t)需要两个图。

指数形式傅里叶级数

通过欧拉公式变换得到等效形式,指数形式傅里叶级数。

[公式2]
指数形式傅里叶变换

变换的目的是期望频谱能用一个单一数值C_k表示,而不是分为A_k和B_k两个频谱图。

用如下方式得到C_k:
C_k的定义

可见每个C_k由A_k和B_k共同影响,且对应公式一中一个频率分量kω0,在公式2中分为了双边频谱的两个谱线C_k与C_-k。最终得到指数形式傅里叶变换

[公式3]
指数形式傅里叶变换

傅里叶级数与双边谱的关系

根据[公式3]中的C_k得到的双边频谱,就是双边谱。三角形式傅里叶级数项与双边谱幅度的关系推导如下:

双边谱幅度与级数系数的关系

由于本身是实信号,所以不会出现虚数项, C_k的相位φk取值为-π,0,π,故C_k与C_-k取值保持相同。所以对于双边幅度谱谱线大小:

双边谱频率幅度大小与技术系数的关系

信号处理时,可以用功率谱(功率谱密度)和频谱(频谱谱密度)来分析信号,功率谱需要先做自相关在做FFT,频谱直接用信号做FFT;功率谱是从能量的角度研究信号,频谱是从时域变为频域的对信号的描述。

傅里叶级数对应的单边谱

[公式1]还可以写为如下形式得到单边谱:

[公式4]
单边谱公式

相比公式1,公式三只用一项表示特定频率的频谱,另外增加了相位信息。
[公式4]对应的频谱就是单边谱,[公式2]对应的频谱为双边谱,可见:

在这里插入图片描述
也就是相应频谱(k≠0)单边谱的幅度谱幅值大小,是双边谱中的两倍。相位奇对称。

MATLAB - fft函数解释

Y = fft(x),信号x长度为L,L是偶数,采样率Fs,得到的Y的结果是L个复数。复数的相位就是相同频率双边频谱频率对应的相位。频谱幅度的数值还需要求模除以L。C = abs(Y/L),C就为双边谱的幅值,其中:

  • C(1)为直流分量,等于单边谱D_0;
  • C(2:N/2+1)为双边谱正频率值幅值,对应频率从Fs/N ~ Fs/2;想变为单片谱还要乘以2。
  • C(N/2+1:end)为双边谱负频率幅值,对应频率从-Fs/2 ~ -Fs/N,可以发现C(N/2+1)点被共用。

典型使用方法

Fs = 1000;            % Sampling frequency                    
T = 1/Fs;             % Sampling period       
L = 1500;             % Length of signal
t = (0:L-1)*T;        % Time vector
S = 1*sin(2*pi*10*t) + 0.5*cos(2*pi*50*t);   %signal with 2 components
	
Y = fft(S);
P2 = abs(Y/L);  % 2-sides spectrum
P1 = P2(1:L/2+1); % fetch half of P2
P1(2:end-1) = 2*P1(2:end-1); % times 2 to turn to 1-side spectrum (k>0)
f = Fs*(0:(L/2))/L;  % calculate real frequency of each point
plot(f,P1); 

% 相位计算可以用 angle(Y(16))或者phase(Y(16))计算,结果为弧度。

补充

[公式4]推导三角变换基础:
三角变换基础
通过以上计算过程与公式1,得到公式4。

Notification

source: 个人所学有限,若有错误和不足还请不吝赐教,我会及时更正。Terrence Zhou.
http://blog.csdn.net/ts_dchs/article/details/78030192
转载请注明原址

评论 12 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

花果山の香蕉

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值