用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由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 componentsY = 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
转载请注明原址

关于实信号的双边谱和单边谱相关推荐

  1. Matlab求单边谱,关于实信号的双边谱和单边谱

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

  2. 实信号和复信号频谱对比分析(双边带信号和单边带信号对比分析)

    在实际工作中发现实信号的频谱谱线有两根(正负谱线),而复信号频谱谱线只有一根,针对这个问题进行了理论分析. 单边带信号可以提高频谱占用率. 1.傅里叶变换概念理解 傅里叶变换公式如下所示: 使用正弦信 ...

  3. 循环自相关函数和谱相关密度(五)——实信号、复信号模型下的QPSK信号循环谱MATLAB仿真结果及代码

    关注公号[逆向通信猿]口令:循环谱 说明:接上一节循环自相关函数和谱相关密度(四)--实信号.复信号模型下的QPSK信号循环谱推导 8.4 仿真结果 8.4.1 实QPSK信号 符号速率RB = 40 ...

  4. 循环自相关函数和谱相关密度(四)——实信号、复信号模型下的QPSK信号循环谱推导

    关注公号[逆向通信猿],口令:循环谱 说明:接上一节循环自相关函数和谱相关密度(三)--实信号.复信号模型下的BPSK信号循环谱MATLAB仿真结果及代码 8 QPSK信号谱相关密度函数 8.1 实信 ...

  5. 循环自相关函数和谱相关密度(三)——实信号、复信号模型下的BPSK信号循环谱MATLAB仿真结果及代码

    关注公号[逆向通信猿],循环谱 说明:接上一节循环自相关函数和谱相关密度(二)--实信号.复信号模型下的BPSK信号循环谱推导 7.5 仿真结果 7.5.1 实BPSK信号 符号速率RB = 40,采 ...

  6. 循环自相关函数和谱相关密度(二)——实信号、复信号模型下的BPSK信号循环谱推导

    说明:接上一节循环自相关函数和谱相关密度(一)--公式推导 7 BPSK信号谱相关密度函数 7.1 实信号模型 BPSK实信号表达式可以写为 r(t)=y(t)+n(t)r(t) = y(t) + n ...

  7. 从欧拉公式看三角波的单边谱与双边谱

    1.在有限区间上,凡满足狄利赫里条件的周期函数都可以展开为傅里叶级数.其三角函数形式的频谱为单边谱,复指数函数形式的频谱为双边谱 参考:https://wenku.baidu.com/view/af2 ...

  8. matlab 单边频率谱,频谱图如何把双边谱改成单边谱?

    以下是我的MATLAB代码,这里的是双边谱,我想显示单边谱,请问大神,我该怎么修改? %--------------- Preparation clear all; close all; clc; % ...

  9. 【各种信噪比联系与区别详解】实信号、复信号Es、N0、符号信噪比EsN0、带内信噪比、比特信噪比EbN0、SNR的含义及关系详解

    说明:关注公众号可免费看,保证你不会白关注,不亏 关于EsN0.EbN0与SNR三者关系的描述,在MATLAB帮助文档中搜索词条"AWGN Channel"有比较详细的描述,但有些 ...

最新文章

  1. C语言中字符数组和字符串指针分析
  2. 麻烦不断,Uber因保护用户隐私不力要接受20年的审计
  3. sonar 不再支持 cobertura 插件(sonar支持的插件表)
  4. JS ajax请求参数格式( formData 、serialize)
  5. 微信支付 php详解,PHP实现微信支付实战案例详解
  6. Linux下部署LVS(DR)+keepalived+Nginx负载均衡
  7. python信号处理教程_PhysioNet生理信号处理(五)--WFDB for Python(DEMO)
  8. 动手学深度学习Pytorch Task01
  9. python列表所有元素平均值_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...
  10. tableView选中行的调用顺序/ 取消选中Cell
  11. 朋友圈疯转的“佩奇”是啥?用 Python 画个小猪佩奇来告诉你
  12. lua与c若干问题 - 专职C++ - C++博客
  13. 疯狂星期四,但是程序员
  14. 量化投资学习——股票数据接口的汇总和整理
  15. 【DVB】【Cert】DVD相关认证简介
  16. 【Gamemaker】YYC1.4编译的程序研究
  17. C++ vector 的使用出现的问题解决的记录
  18. linux显示mem进行排序,linux下top命令显示详解
  19. Word中插入高亮代码
  20. 力天创见智慧商业解决方案

热门文章

  1. esayExcel导出工具类
  2. 用不同的域名访问同一个空间上面不同的网站
  3. 4.Volum(存储技术)
  4. 2013年年会单口相声
  5. Linux 关机方法
  6. 中标麒麟系统u盘安装_骨灰级菜鸟用U盘装中标麒麟v5.0
  7. 【英语总结】十二月引领~
  8. go Iris 使用swagger
  9. Python获取Windows管理员权限
  10. 月薪一万在北京生活是什么体验?