功率谱和频谱:
功率谱:信号自相关后FFT
频谱:信号直接FFT
功率谱:
信号的传播都是看不见的,但是它以波的形式存在着,这类信号会产生功率,单位频带的信号功率就被称之为功率谱。它可以显示在一定的区域中信号功率随着频率变化的分布情况。
功率谱可以从两方面来定义:
一个 是自相关函数的傅立叶变换;(维纳辛钦定理)
另一个 是时域信号傅氏变换模平方然后除以时间长度。(来自能量谱密度) 根据parseval定理,信号傅氏变换模平方被定义为能量谱,能量谱密度在时间上平均就得到了功率谱。 频谱:
频谱是常常指信号的Fourier变换。 (1-7 作者:Yorkxu)转载的理解:
(1)信号通常分为两类:能量信号和功率信号;
能量信号:又称能量有限信号,是指在所有时间上总能量不为零且有限的信号。 功率信号:它的能量为无限大,它对通信系统的性能有很大影响,决定了无线系统中发射机的电压和电磁场强度。
(2)一般来讲,能量信号其傅氏变换收敛(即存在),而功率信号傅氏变换通常不收敛(当然,若信号存在周期性,可引入特殊数学函数(Delta)表征傅氏变换的这种非收敛性);
(3)信号是信息的搭载工具,而信息与随机性紧密相关,所以实际信号多为随机信号,这类信号的特点是状态随机性随时间无限延伸,其样本能量无限。换句话说,随机信号(样本)大多属于功率信号而非能量信号,它并不存在傅氏变换,亦即不存在频谱;
(4)若撇开搭载信息的有用与否,随机信号又称随机过程,很多噪声属于特殊的随机过程,它们的某些统计特性具有平稳性,其均值和自相关函数具有平稳性。对于这样的随机过程,自相关函数蜕化为一维确定函数,前人证明该确定相关函数存在傅氏变换;
(5)能量信号频谱通常既含有幅度也含有相位信息;幅度谱的平方(二次量纲)又叫能量谱(密度),它描述了信号能量的频域分布;功率信号的功率谱(密度)描述了信号功率随频率的分布特点(密度:单位频率上的功率),业已证明,平稳信号功率谱密度恰好是其自相关函数的傅氏变换。对于非平稳信号,其自相关函数的时间平均(对时间积分,随时变性消失而再次退变成一维函数)与功率谱密度仍是傅氏变换对;
(6)实际中我们获得的往往仅仅是信号的一段支撑,此时即使信号为功率信号,截断之后其傅氏变换收敛,但此变换结果严格来讲不属于任何“谱”(进一步分析可知它是样本真实频谱的平滑:卷积谱);
(7)对于(6)中所述变换若取其幅度平方,可作为平稳信号功率谱(密度)的近似,是为经典的“周期图法”;
补充:(8) 一个信号的频谱,只是这个信号从时域表示转变为频域表示,只是同一种信号的不同的表示方式而已;而功率谱是从能量的观点对信号进行的研究,其实频谱和功率谱的关系归根揭底还是信号和功率,能量等之间的关系。
谱估计 功率谱估计一般分成两大类: 经典谱估计,也称为非参数谱估计。 现代谱估计,也称为参数谱估计。
clc;close all;clear all;
[s, fs] = audioread('hello.wav');%s=166912*1;fs=44100
%命令说明:[y,Fs] = audioread(filename):returns sampled data, y, and a sample rate for that data, Fs.
%sound(y,fs) % set analysis parameters, pre-emphasise and windowing %根据话音位置,取5000可以把话音主要部分加入其中
figure; subplot(2,1,1); plot(s); ylabel('振幅'); xlabel('Time (n)'); title('原信号的时域'); Xk=fft(s);
subplot(212);plot(abs(Xk)); xlabel('\omega/\pi');ylabel('e^j^\omega');title('原信号的频域');
%===============================================================
N = 4000;
Nfft = 4000;
n0 = 10000;
x = s(n0 : n0+N-1);%从10000个点截到14000,共4000个点
x1 = filter([1 -0.97], 1,x); %预加重 滤波器 %filter:Y = FILTER(B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母
%整个滤波过程是通过下面差分方程实现的: %a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + … + b(nb+1)*x(n-nb)-a(2)*y(n-1) - a(3)*y(n-2) + … + a(nb+1)*y(n-nb)
%作用:消除6dB/oct(分贝/倍频程)的跌落,使语音信号的频谱变得平坦。
w = (window('hamming', N)); xw = x1 .* w; %加窗 % Estimate PSD of the short-time segment
Sxw = fft(xw, Nfft);
Sxdb = 20*log10(abs(Sxw(1 : Nfft/2))) - 10*log10(N); %Sxdb 功率谱:时域fft取模平方后除以信号的长度 转换成db
figure;
subplot(311);
plot(x);ylabel('振幅'); xlabel('Time (n)'); title('截取信号的时域信号');
subplot(312);
plot(x1);ylabel('振幅');xlabel(&