首页 > 其他分享 >利用FFT计算非平稳随机信号的WVD分布

利用FFT计算非平稳随机信号的WVD分布

时间:2022-12-16 00:00:32浏览次数:51  
标签:Ville Wigner 变换 FFT 随机 信号 傅里叶 WVD

up目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

fft:

快速傅里叶变换 (fast Fourier transform), 即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由J.W.库利和T.W.图基提出的。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。

FFT的基本思想是把原始的N点序列,依次分解成一系列的短序列。充分利用DFT计算式中指数因子 所具有的对称性质和周期性质,进而求出这些短序列相应的DFT并进行适当组合,达到删除重复计算,减少乘法运算和简化结构的目的。此后,在这思想基础上又开发了高基和分裂基等快速算法,随着数字技术的高速发展,1976年出现建立在数论和多项式理论基础上的维诺格勒傅里叶变换算法(WFTA)和素因子傅里叶变换算法。它们的共同特点是,当N是素数时,可以将DFT算转化为求循环卷积,从而更进一步减少乘法次数,提高速度。

快速傅里叶变换 (fast Fourier transform),即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由J.W.库利和T.W.图基提出的。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。

FFT(Fast Fourier Transformation) 是离散傅氏变换(DFT)的快速算法。即为快速傅氏变换。它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。

非平稳随机信号:

非平稳信号是指分布参数或者分布律随时间发生变化的信号。平稳和非平稳都是针对随机信号说的,一般的分析方法有时域分析、频域分析、时频联合分析。非平稳随机信号的统计特征是时间的函数。与平稳随机信号的统计描述相似,传统上使用概率与数字特征来描述,工程上多用相关函数与时变功率谱来描述,近年来还发展了用时变参数信号模拟描述的方法。

非平稳的随机信号就是随时会引入新变量的信号,这种信号如果需要传统的dft来进行频域分析,必须先给时域信号加窗,如果不加窗,会导致一个长时间内的频域会出现很多高功率频段,且无法分辨各个频段的到来时间,所以首先要给时域信号加窗,之后再分析。

WVD:

1932年,Wigner 提出了Wigner分布,最初应用于量子力学的研究。1948年,Ville 将其引入信号分析领域,称为Wigner-Ville 分布,简称为WVD分布。1970年,Mark提出Wigner-Ville 分布中最主要的缺陷一交叉干扰项的存在。1980 年,Claasen 和Mecklenbraker联合发表的论文中详细论述了Wigner-Ville 分布的概念、定义、性质以及数值计算等问题。Wigner-Ville分布是分析非平稳时变信号的重要工具,在一定程度 上解决了短时傅立叶变换存在的问题。Wigner-Ville分布的重要特点之一是具有明确的物理意义,它可被看作信号能量在时域和频域中的分布。

Wigner-Ville 分布(简称 WVD)是典型的二次型变换,它定义为信号瞬时相关函数的傅立叶变换,反映了信号瞬时时频关系。对于单分量线性调频信号而言,WVD在时频平面上的投影为一条直线,即频率随时间的线性变化关系。实值信号x(t) 的Wigner 分布定义为:

 

 Wigner-Ville分布对正弦信号和线性调频信号具有最好的信号时频聚集度。但是,对于多分量的线性调频信号,其WVD的时频分辨力下降,其时频平面会出现交叉项。图1(a)、1(b) 分别表示单分量线性调频信号和多分量线性调频信号的Wigner-Ville分布的时频平面。 

二、核心程序

for n=0:N-1 % n=nn-3*NN
%for
l=0:1:L-1;
% ll=L+l;
% nn=3*NN+n;
G(n+1,l+1)=w(L+1+l).*x(3*NN+n+L+1+l);
GG(n+1,l+1)=conj(w(L+1-l).*x(3*NN+n+L+1-l));
f(n+1,l+1)=G(n+1,l+1).*GG(n+1,l+1);

l=L:1:2*L-1;
G(n+1,l+1)=w(L+1+l-2*L).*x(3*NN+n+L+1+l-2*L);
GG(n+1,l+1)=conj(w(L+1-l+2*L).*x(3*NN+n+L+1-l+2*L));
f(n+1,l+1)=G(n+1,l+1).*GG(n+1,l+1);
end

三、测试结果

 

 

 

 up18

 

标签:Ville,Wigner,变换,FFT,随机,信号,傅里叶,WVD
From: https://www.cnblogs.com/matlabfpga/p/16986291.html

相关文章

  • 回归预测 | MATLAB实现SSA-RF(麻雀算法优化随机森林)多输入单输出
    回归预测|MATLAB实现SSA-RF(麻雀算法优化随机森林)多输入单输出目录​​预测效果​​​​基本介绍​​​​模型描述​​​​麻雀算法​​​​随机森林​​​​程序设计​......
  • JAVA中生成随机数Random VS ThreadLocalRandom性能比较
    前言大家项目中如果有生成随机数的需求,我想大多都会选择使用Random来实现,它内部使用了CAS来实现。实际上,JDK1.7之后,提供了另外一个生成随机数的类ThreadLocalRandom,那么......
  • python-判断,随机数
    python-if判断,比较运算符,随机数1:判断的定义'''判断就是:如果满足条件就干某件事,如果不满足条件就做另一件事或者什么都不做   条件只有满足和不满足'''2:比较运......
  • Python实现从一个列表数据里随机抽取数据,并且按原有顺序排序
    背景:工作中需要实现从多个条件中随机抽取几个条件,进行组合查询的功能。而查询的结果需要按原顺序进行判断是否符合查询条件。分析:这些条件可以放在列表里,这就需要实现一个......
  • random随机数性能问题
    目录​​random函数性能问题​​​​random函数实现​​​​lrand48实现​​​​lrand48_r实现​​​​dpdk中的rte_rand​​​​dpdk18.11中的rte_rand​​​​dpdk20.1......
  • 使用 CNG API 生成伪随机数
    //////File:RandomNumGeneration.cpp////Contents:ThissampleshowsrandomnumbergenerationinCNG.////#defineWIN32_NO_STATUS#in......
  • 拓端数据tecdat|WinBUGS代写对多元随机波动率模型:贝叶斯估计 模型比较
    ​​​​​​​在本文中,我们通过一个名为WinBUGS的免费贝叶斯软件,可以很容易地完成基于似然的多变量随机波动率(SV)模型的估计和比较。通过拟合每周汇率的双变量时间序列数据,......
  • (转)J2ME中随机数字的生成
    J2ME和​​J2SE​​不同,不能使用Math类的​​random​​来生成随机数字,只能使用java.util包的Random类来生成随机数字。1、创建Random类型的对象:R......
  • CodeUtil【随机字符串工具类】
    packagecom.Lucky.Util;importjava.util.ArrayList;importjava.util.Random;/***自定义的随机字符串工具类*/publicclassCodeUtil{//方法pub......
  • matlab_fft函数c语言实现
    前言最近工作移植PPG算法,将MATLAB上代码移植到嵌入式设备上去。因为心率算法利用FFT实现会较为简单,所以又重新了解了一下大学里学的FFT,并写了C语言实现MATLAB的FFT接口的......