Matlab求单边谱,关于实信号的双边谱和单边谱
用MATLAB处理语音信号,做fft后要获得单边谱。本文收集资料进行了推导,对于fft数值后续操作从理论上做了一个理解。并且简洁的解释了fft函数的结果。供大家参考,欢迎批评指正。
理论推导
三角函数形式傅里叶级数
根据傅里叶级数原始定义,其三角函数集合在一个周期上是完备正交集:
[公式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)单边谱的幅度谱幅值大小,是双边谱中的两倍。相位关系如下:
所以双边谱C|_k的相位和单边谱D、_n的相位相同(k>0),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://www.voidcn.com/article/p-zofhxxqm-bnw.html 转载请注明原址
Matlab求单边谱,关于实信号的双边谱和单边谱相关推荐
- 关于实信号的双边谱和单边谱
用MATLAB处理语音信号,做fft后要获得单边谱.本文收集资料进行了推导,对于fft数值后续操作从理论上做了一个理解.并且简洁的解释了fft函数的结果.供大家参考,欢迎批评指正. 转载请注明原文地址 ...
- matlab 单边频率谱,matlab求单边功率谱
求功率谱有好几种方法,本文例两种,一种是先求信号频谱,然后取平方后平均:第二种是用welch法(可指定各种窗). rng default; fs = 1000; % 采样率 t = 0:1/fs:1- ...
- matlab求单边功率谱
求功率谱有好几种方法,本文例两种,一种是先求信号频谱,然后取平方后平均:第二种是用welch法(可指定各种窗). rng default; fs = 1000; % 采样率 t = 0:1/fs:1- ...
- 循环自相关函数和谱相关密度(五)——实信号、复信号模型下的QPSK信号循环谱MATLAB仿真结果及代码
关注公号[逆向通信猿]口令:循环谱 说明:接上一节循环自相关函数和谱相关密度(四)--实信号.复信号模型下的QPSK信号循环谱推导 8.4 仿真结果 8.4.1 实QPSK信号 符号速率RB = 40 ...
- 循环自相关函数和谱相关密度(三)——实信号、复信号模型下的BPSK信号循环谱MATLAB仿真结果及代码
关注公号[逆向通信猿],循环谱 说明:接上一节循环自相关函数和谱相关密度(二)--实信号.复信号模型下的BPSK信号循环谱推导 7.5 仿真结果 7.5.1 实BPSK信号 符号速率RB = 40,采 ...
- 循环自相关函数和谱相关密度(四)——实信号、复信号模型下的QPSK信号循环谱推导
关注公号[逆向通信猿],口令:循环谱 说明:接上一节循环自相关函数和谱相关密度(三)--实信号.复信号模型下的BPSK信号循环谱MATLAB仿真结果及代码 8 QPSK信号谱相关密度函数 8.1 实信 ...
- 实信号和复信号频谱对比分析(双边带信号和单边带信号对比分析)
在实际工作中发现实信号的频谱谱线有两根(正负谱线),而复信号频谱谱线只有一根,针对这个问题进行了理论分析. 单边带信号可以提高频谱占用率. 1.傅里叶变换概念理解 傅里叶变换公式如下所示: 使用正弦信 ...
- 循环自相关函数和谱相关密度(二)——实信号、复信号模型下的BPSK信号循环谱推导
说明:接上一节循环自相关函数和谱相关密度(一)--公式推导 7 BPSK信号谱相关密度函数 7.1 实信号模型 BPSK实信号表达式可以写为 r(t)=y(t)+n(t)r(t) = y(t) + n ...
- 微分方程求解matlab冲激信号,用Matlab求冲激响应的几种方法
·实验技术与方法· 用 Matlab 求冲激响应的几种方法 贺富堂,应柏青,张 锋,孙 敏 ( 西安交通大学 电工电子教学实验中心,陕西 西安 710049) 摘 要: 用 Matlab 软件求冲激响 ...
最新文章
- 探索机器学习理论的最新进展,走近云、端、芯上的视觉计算——“智源论坛:机器学习报告会”重点梳理...
- 5G NGC — 会话管理模型 — PDU Session
- 基于用户投票的排名算法(五):威尔逊区间
- 字符串和整形、浮点类型的相互转化
- 建智能工厂,可从这6个方面着手!
- 为什么要用内插字符串代替string.format
- leetcode 18. 四数之和(双指针)
- Common Sort - 排序 - Java
- 递归计算二叉树的高度_如何使用递归方法计算二叉树的高度
- 利用WebHook实现自动部署Git代码
- shell while 结束循环_Shell脚本编程2 for循环/while循环
- String spilt()方法
- Python爬取网易云音乐歌单名以及歌单标签
- 论文 | Credit Card Fraud Detection Using Convolutional Neural Networks
- 树莓派新手使用iobroker日志三(米家全家桶加入iobroker)
- 自动控制matlab实验,自动控制原理MATLAB实验报告.doc
- java fix sence_repair fix mend的区别
- 超微主板升级bios_AMD又给CPU打鸡血了!但刷BIOS前你要懂这些
- 智慧路灯合作伙伴生态大会(深圳站)
- 未隔离电源设备使用usb转串口调试导致串口模块爆炸烧坏事故记录