精华内容
下载资源
问答
  • 连续信号频域分析应用举例 信号时域分析的局限性 女生/男生声音时域波形 信号/含噪信号时域波形 数字键1和2时域波形 连续信号频域分析应用举例 女生声音信号频谱 0 0 100 200 300 400 500 Hz 女生声音信号时域...
  • labview学习指导书,尤其是在信号频域分析中的应用。可以帮助大家学习labview。
  • 本文讨论使用Matlab对信号进行频域分析的方法。说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号频域分析,是因为很多信号在时域不明显的特征可以在频域...

    Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。

    本文讨论使用Matlab对信号进行频域分析的方法。

    说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号的频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。

    FFT

    Matlab提供的傅里叶变换的函数是FFT,中文名叫做快速傅里叶变换。快速傅里叶变换的提出是伟大的,使得处理器处理数字信号的能力大大提升,也使我们生活向数字化迈了一大步。

    接下来就谈谈如何使用这个函数。

    fft使用很简单,但是一般信号都有x和y两个向量,而fft只会处理y向量,所以想让频域分析变得有意义,那么就需要用户自己处理x向量

    一个简单的例子

    从一个简单正弦信号开始吧,正弦信号定义为:

    202422in7bw87pr9zwbcr8.png

    我们现在通过以下代码在Matlab中画出这个正弦曲线

    fo = 4; %frequency of the sine wave

    Fs = 100; %sampling rate

    Ts = 1/Fs; %sampling time interval

    t = 0:Ts:1-Ts; %sampling period

    n = length(t); %number of samples

    y = 2*sin(2*pi*fo*t); %the sine curve

    %plot the cosine curve in the time domain

    sinePlot = figure;

    plot(t,y)

    xlabel('time (seconds)')

    ylabel('y(t)')

    title('Sample Sine Wave')

    grid

    这就是我们得到的:

    142395557_1_20180826020600692

    当我们对这条曲线fft时,我们希望在频域得到以下频谱(基于傅里叶变换理论,我们希望看见一个幅值为1的峰值在-4Hz处,另一个在+4Hz处)

    142395557_2_20180826020600895

    使用FFT命令

    我们知道目标是什么了,那么现在使用Matlab的内建的FFT函数来重新生成频谱

    %plot the frequency spectrum using the MATLAB fft command

    matlabFFT = figure; %create a new figure

    YfreqDomain = fft(y); %take the fft of our sin wave, y(t)

    stem(abs(YfreqDomain)); %use abs command to get the magnitude

    %similary, we would use angle command to get the phase plot!

    %we'll discuss phase in another post though!

    xlabel('Sample Number')

    ylabel('Amplitude')

    title('Using the Matlab fft command')

    grid

    axis([0,100,0,120])

    效果如下:

    142395557_3_201808260206015

    但是注意一下,这并不是我们真正想要的,有一些信息是缺失的

    x轴本来应该给我们提供频率信息,但是你能读出频率吗?

    幅度都是100

    没有让频谱中心为

    为FFT定义一个函数来获取双边频谱

    以下代码可以简化获取双边频谱的过程,复制并保存到你的.m文件中

    function [X,freq]=centeredFFT(x,Fs)

    %this is a custom function that helps in plotting the two-sided spectrum

    %x is the signal that is to be transformed

    %Fs is the sampling rate

    N=length(x);

    %this part of the code generates that frequency axis

    if mod(N,2)==0

    k=-N/2:N/2-1; % N even

    else

    k=-(N-1)/2:(N-1)/2; % N odd

    end

    T=N/Fs;

    freq=k/T; %the frequency axis

    %takes the fft of the signal, and adjusts the amplitude accordingly

    X=fft(x)/N; % normalize the data

    X=fftshift(X); %shifts the fft data so that it is centered

    这个函数输出正确的频域范围和变换后的信号,它需要输入需要变换的信号和采样率。

    接下来使用前文的正弦信号做一个简单的示例,注意你的示例.m文件要和centeredFFT.m文件在一个目录下

    [YfreqDomain,frequencyRange] = centeredFFT(y,Fs);

    centeredFFT = figure;

    %remember to take the abs of YfreqDomain to get the magnitude!

    stem(frequencyRange,abs(YfreqDomain));

    xlabel('Freq (Hz)')

    ylabel('Amplitude')

    title('Using the centeredFFT function')

    grid

    axis([-6,6,0,1.5])

    效果如下:

    142395557_4_20180826020601130

    这张图就满足了我们的需求,我们得到了在+4和-4处的峰值,而且幅值为1.为FFT定义一个函数来获取右边频谱

    从上图可以看出,FFT变换得到的频谱是左右对称的,因此,我们只需要其中一边就能获得信号的所有信息,我们一般保留正频率一侧。

    以下的函数对上面的自定义函数做了一些修改,让它可以帮助我们只画出信号的正频率一侧

    function [X,freq]=positiveFFT(x,Fs)

    N=length(x); %get the number of points

    k=0:N-1; %create a vector from 0 to N-1

    T=N/Fs; %get the frequency interval

    freq=k/T; %create the frequency range

    X=fft(x)/N; % normalize the data

    %only want the first half of the FFT, since it is redundant

    cutOff = ceil(N/2);

    %take only the first half of the spectrum

    X = X(1:cutOff);

    freq = freq(1:cutOff);

    和前面一样,使用正弦信号做一个示例,下面是示例代码

    [YfreqDomain,frequencyRange] = positiveFFT(y,Fs);

    positiveFFT = figure;

    stem(frequencyRange,abs(YfreqDomain));

    set(positiveFFT,'Position',[500,500,500,300])

    xlabel('Freq (Hz)')

    ylabel('Amplitude')

    title('Using the positiveFFT function')

    grid

    axis([0,20,0,1.5])

    效果如下:

    142395557_5_20180826020601239

    ------------------------------------------------

    大部分内容是根据Matlab的FFT教程翻译的,但是源文档的下载链接找不到了

    ------------------------------------------------

    本文代码以上传github,可自行下载测试,链接:

    https://github.com/greedyhao/DSP/tree/master/matlab_tutorial

    -------------------------------------------------

    展开全文
  • 信号频域分析方法多种多样,这里针对较为常见的(频谱、能量谱、功率谱、倒频谱、小波分析)集中进行说明。这些方法的MATLAB代码实现参见文章频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱) 在看这篇...

    信号的频域分析方法多种多样,这里针对较为常见的(频谱、能量谱、功率谱、倒频谱、小波分析)集中进行说明。这些方法的MATLAB代码实现参见文章频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱)

    在看这篇文章之前可以参看之前的两篇,其中涉及一些时域特征值介绍和能量、功率信号区别的介绍:

    Mr.括号:信号的各种时域分析方法的理解

    Mr.括号:能量信号和功率信号的分别

    文章如要转载请私信与我联系,并注明来源知乎专栏与信号处理有关的那些东东作者Mr.括号。

     

    一、频谱

    一般来说,频谱分析指的是将信号做傅里叶变换从而进行分析。频谱分析是包括幅频谱和相频谱两张图的。不过最常用的是幅频谱。

    频谱分析是最常用和最重要也是最基础的频域分析方法。在这里不详细展开说了,不了解概念的可以参考这篇文章:

    Heinrich:如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧

    时常会见到几个概念:DFT,DTFT,DFS,FFT,FT, FS等等。这些概念怎么区分?看这篇文章就能搞懂:一幅图弄清DFT与DTFT,DFS的关系 - BitArt - 博客园

    在这里概括一下(不感兴趣的话可以直接跳过):

    FT(Fourier Transformation):傅里叶变换。就是我们理论上学的概念,但是对于连续的信号无法在计算机上使用。其时域信号和频域信号都是连续的。

    DTFT(Discrete-time Fourier Transform):离散时间傅里叶变换。这里的“离散时间”指的是时域上式离散的,也就是计算机进行了采样。不过傅里叶变换后的结果依然是连续的。

    DFT(Discrete Fourier Transform):离散傅里叶变换。在DTFT之后,将傅里叶变换的结果也进行离散化,就是DFT。

    也就是说:FT时域连续、频域连续;DTFT时域离散、频域连续;DFT时域离散、频域离散。

    FFT(Fast Fourier Transformation):快速傅里叶变换。就是DFT的快速算法,一般工程应用时用的都是这种算法。

    FS(Fourier Series):傅里叶级数。是针对时域连续周期信号提出的,结果是离散的频域结果。

    DFS(Discrete Fourier Series):离散傅里叶级数。是针对时域离散周期信号提出的,DFS与DFT的本质是一样的。

    另外补充几点相关知识:

    • 在实际计算中通常使用快速傅里叶变换(FFT)。它是一种用来计算DFT(离散傅里叶变换)和IDFT(离散傅里叶反变换)的一种快速算法。

    • 随机信号是无法做傅里叶变换的(*这里要再补充)

     

    二、能量谱

    要理解能量谱和功率谱,首先要弄明白能量有限信号和功率有限信号(参看之前的文章能量信号和功率信号的分别)。

    能量谱也叫能量谱密度,能量谱密度描述了信号或时间序列的能量如何随频率分布。能量谱是原信号傅立叶变换的平方。

     

    三、功率谱

    功率谱是功率谱密度函数(PSD)的简称,它定义为单位频带内的信号功率。

    功率谱是针对功率信号来说的。功率谱的推导公式相对复杂,不过幸运的是维纳-辛钦定理证明了:一段信号的功率谱等于这段信号自相关函数的傅里叶变换。

    所以求功率谱就有了两种方法:1.(傅立叶变换的平方)/(区间长度);2.自相关函数的傅里叶变换。这两种方法分别叫做直接法和相关函数法。

    功率谱这里存在着一些问题,整理如下:

    1.功率谱密度的单位是什么,看有的写的是dB,还有的说是W/Hz。

    功率谱的单位是W/Hz,单位是dB时是做了对数处理(10logX)。取对数的目的是使那些振幅较低的成分相对高振幅成分得以拉高,以便观察掩盖在低幅噪声中的周期信号。

    2.求功率谱的两种方法有什么区别么?

    从原理上讲似乎没什么区别,从MATLAB仿真结果上来看,相关函数法对噪声的抑制效果更好,图线更平滑。(见频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱)

    3.FFT和PSD都是表示的频谱特性,帮助我们找出峰值的位置,那么有了FFT为什么还要提出PSD?

    信号分为确定信号和随机信号,而确定信号又分为能量信号和功率信号,随机信号一定是功率信号。根据狄里赫利条件,能量信号可以直接进行傅里叶变换,而功率信号不行。对于无法做傅里叶变换的信号,只能走一步弯路,先求自相关,再做傅里叶。但是物理意义上就是功率谱了。不过总之得到了信号的频率特性。

    4.既然为什么随机信号的一次FFT没有意义却还能(傅立叶变换的平方)/(区间长度)得到功率谱?

    对随机信号直接做FFT的做法其实就是截断成能量信号进行处理,这种处理不符合随机信号定义,但之所以这样做,是做短时频域分析下作的近似处理。(这里希望能有大神能给出更好的解释)

    所以总结,频谱和能量谱(也叫能量谱密度)是傅里叶变换得到的复数结果和模平方的关系; 而功率谱(也就是功率谱密度)是针对随机信号分析提出的概念。

    更多讨论可以参看:随机信号傅里叶变换和功率谱密度图给出的信息有什么不同 - MATLAB中文论坛

     

    四、倒频谱

    倒频谱(Cepstrum)也叫倒谱、二次谱和对数功率谱等。倒频谱的工程型定义是:信号功率谱对数值进行傅立叶逆变换的结果。(信号→求功率谱→求对数→求傅里叶逆变换)

    为什么翻译作倒频谱呢?我个人的理解是,频谱(功率谱)反应的频率特征点横坐标是频率f(Hz),在倒频谱中对应的特征点的横坐标是时间t(s),而f与t互为倒数。从这里也可以看出,虽然倒频谱也叫“频谱”,其横坐标却并不是频率,而是时间。

    那么倒频谱有什么好处呢?

    “该分析方法方便提取、分析原频谱图上肉眼难以识别的周期性信号,能将原来频谱图上成族的边频带谱线简化为单根谱线,受传感器的测点位置及传输途径的影响小。”

    这都是啥意思?一条条解释:

    1.方便提取、分析原频谱图上肉眼难以识别的周期性信号

    我们知道,频谱分析就是为了提取原始信号中的周期性信号的,怎么频谱中的信号还会有周期性?这就又涉及到两个概念:调制和边频带。

    调制分为幅值调制和频率调制。下面以齿轮的幅值调制为例进行说明:齿轮的振动信号主要包括两部分,分别是齿轮啮合振动信号(高频)和齿轮轴的转频振动信号(低频),时域和频域曲线分别如下图所示:

    高频信号和低频信号时域波形

    高频信号和低频信号的频域波形

    调制就是高低频率信号的混合。幅值调制从数学上看,相当于两个信号在时域上相乘;而在频域上,相当于两个信号的卷积。调制后的信号在时域和频域上分别变为:

    调制后的时域信号

    调制后的频域信号

    我们发现,调制后的信号中,除原来的啮合频率分量外,增加了一对分量,它们是以高频信号特征频率为中心,对称分布于两侧,所以称为边频带。

    实际实验中齿轮啮合振动信号(高频)和齿轮轴的转频振动信号(低频)的特征频率可能是有多组的,其调制后的频域信号近似于一组频率间隔较大的脉冲函数和一组频率间隔较小的脉冲函数的卷积,从而在频谱上形成若干组围绕啮合频率及其倍频成分两侧的边频族,如下图:

    边频带的形成

    说了一大堆,终于回归到上边提到的问题:倒频谱“方便提取、分析原频谱图上肉眼难以识别的周期性信号”。这里指的周期性信号,就是重复出现的边频带。

    倒频谱能较好地检测出功率谱上的周期成分,通常在功率谱上无法对边频的总体水平作出定量估计,而倒频谱对边频成分具有“概括”能力,能较明显地显示出功率谱上的周期成分,将原来谱上成族的边频带谱线简化为单根谱线,便于观察,而齿轮发生故障时的振动频谱具有的边频带一般都具有等间隔(故障频率)的结构,利用倒频谱这个优点,可以检测出功率谱中难以辨识的周期性信号。

    2.受传感器的测点位置及传输途径的影响小

    这是倒频谱的第二个好处。对于布置在不同位置的传感器,由于传递路径不同,其功率谱也不相同。但在倒频谱上,由于信号源的振动效应和传递途径的效应分离开来,代表齿轮振动特征的倒频率分量几乎完全相同,只是低倒频率段存在由于传递函数差异而产生的影响。在进行倒频谱分析时,可以不必考虑信号测取时的衰减和标定系数所带来的影响。这一优点对于故障识别极为有用。

    关于倒频谱,文章 齿轮故障诊断常用信号分析处理方法 给出了具体了例子,方便理解。

     

    五、小波分析

    小波分析是一种时频域分析方法,该方法兼顾了信号在时域和频域的信息。知乎上有一篇文章对小波分析的理解进行了生动的讲解,强烈建议对小波分析概念不熟的同学先看一下。咚懂咚懂咚:能不能通俗的讲解下傅立叶分析和小波分析之间的关系?这篇文章中最后给出的小波变换的结果是这样的:

    连续小波变换

    看起来十分厉害,不过同时会发现两个问题:运算量很大;只有数值解,没有解析解。上述这种小波分析方法叫连续小波变换(continuous wavelet transform, CWT)。

    为了减少变换运算量,去除不必要的重复的系数,实际中使用的通常是离散小波变换(discrete wavelet transform, DWT)。

    这里的“离散”指的是什么呢?

    让我们先回到小波基波(也叫母小波)的表达式:

    其中s是尺度参数,表征频率;t是位移参数,表征时间。这部分在答友的连接里也提到了。再看上一张图,xy坐标分别是SCALE和TRANSLATION,也就是s和t,他们在连续小波变换中是连续的。

    所以,在离散小波变换中,“离散”的就是参数s和t。此时小波表达式写为:

    j和k都是整数,通常取s0=2,τ0=1。

    可以看出,随着j取值的递增,我们可以得到一串不同的小波(子小波,也叫女儿小波...)。这些子小波的尺度参数以2的j次方的形式增长。当使用这一系列的子小波,对一个连续函数进行离散分析时,我们所获得的是一组小波分析的系数,这个分析过程称为小波系列分解。

    上边说道,尺度参数表征的是频率,在子小波中尺度参数以2的倍数增长(即小波的“长度”被“拉长”了2倍),那么子小波对应能检测到的频率值也会以1/2的倍数缩小。母小波所对应的频谱位于频率谱的高端,具有最大的频率谱范围- 而其他的子小波的频率谱则依次向频谱图的低频端移动,同时它们所覆盖的频率谱范围也相应地递减。在理想的情况下,所有的滤波器应该首尾相接互相覆盖。

    不同尺度的子小波在小波频率谱上的覆盖

    是的,每个子小波就相当于一个滤波器,离散小波变换的过程就是逐级滤波的过程。

    具体流程是怎样的呢?

    用一句话描述就是:一组离散信号通过一系列的低通和高通滤波器,分别可以得到近似信号(用字母A表示)和细节信号(用字母D表示)。

    用一张图描述就是:

    LP为低通滤波器,HP为高通滤波器,B为带宽,2B为2倍带宽

    用一个例子来描述就是:

    对原始信号滤波:原始信号是在一个连续的低频正弦波信号(频率为0.5)上随机叠加了两个高频(频率为 10)高振幅的正弦脉冲,这里使用了 dB5(第五级Daubechies小波)作为去除噪音操作的母小波。

    原始信号

    一阶小波分解的结果为:

    一阶小波分解的近似信号(低通结果)

    一阶小波分解的细节信号(高通结果)

    二阶小波分解的结果为(即对A1信号做分解):

    二阶小波分解的近似信号(低通结果)

    二阶小波分解的细节信号(高通结果)

    三阶小波分解的结果为(即对A2信号做分解):

    三阶小波分解的近似信号(低通结果)

    三阶小波分解的细节信号(高通结果)

    四阶小波分解的结果为(即对A3信号做分解):

    四阶小波分解的近似信号(低通结果)

    四阶小波分解的细节信号(高通结果)

    至此我们已经能够得到较好的滤波结果了(即A5,不过脉冲信号也被滤掉了,用设置门限的方法可以保留住该信号,这里不做展开)。可以看到原式信号被逐级的,无遗漏地进行了高、低通滤波,且越接近低频分段越细,几乎想要哪个频段的特征都能得到,因而这个方法有个霸气的名字,叫滤波器银行。

    小波变换大致讲完了,那么它有哪些特点,可以用来做什么呢?

    首先当然是滤除噪声。

    其次,由于离散小波变换是可逆的,所以还可以用来做图像、信号的无损压缩。

    另外,可以检测信号的非连续性。奇异信号会在细节信号D中展现。

    除此之外,还可以进行图像边界检测等工作。

     

    (时)频域的一些常见的分析处理方法就介绍到这里了。这里能讲到的只是一些表面的概念和一些个人的理解。文中的内容还会不断修正和完善,对于不严谨以及谬误指出,还望多多指教。

    欢迎关注我的公众号“括号的城堡”,微信号为“khscience”,会有更多有趣的东西分享。

     

    参考:

    Heinrich:如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧

    随机信号傅里叶变换和功率谱密度图给出的信息有什么不同 - MATLAB中文论坛

    傅里叶变换和逆变换公式的我理解意义 - CSDN博客

    齿轮的振动机理

    齿轮故障诊断常用信号分析处理方法

    Cepstrum - Wikipedia

    Wavelet - Wikipedia

    周宇峰, 程景全. 小波变换及其应用[J]. 物理, 2008, 37(1):24-32.

    展开全文
  • MATLAB 电子信息应用 课程设计 设计五 信号频域分析及 MATLAB 实现 学院 专业 班级 姓名 学号 信号频域分析及 MATLAB 实现 一 设计目的 通过该设计理解傅里叶变换的定义及含义掌握对 信号进行频域分析的方法 二 ...
  • 信号与系统-时域频域分析及matlab软件的应用
  • 信号与系统——时域、频域分析及Matlab软件的应用,pdf格式,内容详尽,有很高的参考价值。
  • 实验六 连续信号频域分析

    千次阅读 2020-11-23 22:32:28
    实验六 连续信号频域分析一、实验目的二、实验原理1、傅立叶变换的MATLAB实现(1) 调用专用函数实现MATLAB中实现傅里叶变换的函数为:MATLAB中实现傅里叶反变换的函数(2) 傅里叶变换的数值计算实现法注意:2、...

    一、实验目的

    1、理解傅里叶变换的MATLAB实现方法;
    2、掌握系统频率响应特性的计算方法和特性曲线的绘制方法,理解具有不同频率响应特性的滤波器对信号的滤波作用。
    3、掌握用MATLAB语言进行系统频响特性分析的方法。

    二、实验原理

    1、傅立叶变换的MATLAB实现

    信号f(t)的傅里叶变换与反变换公式为:在这里插入图片描述

    傅里叶变换存在的充分条件是:在这里插入图片描述

    在MATLAB中有两种实现傅里叶变换的方法,一种是利用MATLAB中的专用函数直接求解,另一种是傅里叶变换的数值计算实现法。

    (1) 调用专用函数实现

    MATLAB中实现傅里叶变换的函数为:

    F=fourier( f ) 对f(t)进行傅里叶变换,其结果为F(w)
    F=fourier(f,v) 对f(t)进行傅里叶变换,其结果为F(v)
    F=fourier( f,u,v ) 对f(u)进行傅里叶变换,其结果为F(v)

    MATLAB中实现傅里叶反变换的函数

    f =ifourier( F ) 对F(w)进行傅里叶反变换,其结果为f(t)
    f=ifourier(F,u) 对F(w)进行傅里叶反变换,其结果为f(u)
    f=ifourier( F,v,u ) 对F(v)进行傅里叶反变换,其结果为f(u)
    注意:
    (1)在调用函数fourier( )及ifourier( )之前,要用syms命令将所有需要用到的变量(如t,u,v,w)定义成符号变量,或用符号定义符sym将其定义为符号表达式。
    (2)采用fourier( )及fourier( )得到的返回函数,仍然为符号表达式。在对其作图时要用ezplot( )函数,而不能用plot()函数。
    (3)fourier( )及fourier( )函数的应用有很多局限性,如果在返回函数中含有δ(ω)等函数,则ezplot( )函数无法作出图。用fourier( )函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,也无法作图。另外,在很多场合,f(t)不能表示成符号表达式,此时只能用数值计算法进行傅氏变换。
    例1:求 的傅立叶变换
    matlab程序如下

    clear all
    syms t
    F=fourier(exp(-2*abs(t)))
    

    例2:求门函数f(t)=ε(t+1)-ε(t-1)的傅里叶变换,并画出幅度频谱图。
    matlab程序如下

    clear all
    t0=-3;t1=3;t=t0:0.02:t1;                        % 定义时间范围
    w0=-6*pi;w1=6*pi;w=w0:0.02:w1;               % 定义频率范围
    f=sym('heaviside(t+1)-heaviside(t-1)')             % 定义符号函数f(t)
    F=fourier(f)                                  %f(t)的傅里叶变换
    F=simple(F)                                  % 化简F(jw)的表达式
    f1=subs(f,t,'t');                                % 将t数组代入f(t)后用f1表示
    fmin=min(f1)-0.2;fmax=max(f1)+0.2;             % 求f1的最大和最小值
    Fv=subs(F,w,'w');                             % 将w数组代入F(jw)后用Fv表示
    F1=abs(Fv);                                  %F(jw)的模
    P1=angle(Fv);                                %F(jw)的相角
    subplot(3,1,1),plot(t,f1);                        % 在第一幅图上画f(t)
    ylabel('G2(t)'); grid on;
    axis([t0,t1,fmin,fmax]);
    Fmin=min(F1)-0.05; Fmax=max(F1)+0.05;
    subplot(3,1,2);
    plot(w,F1,'color','k');                            % 在第二幅图上画|F(jw)|
    ylabel('|F(jw)|');grid on;
    axis([w0,w1,Fmin,Fmax]);
    subplot(3,1,3); 
    plot(w,P1*180/pi,'color','k');                      % 在第三幅图上画相位频谱
    ylabel('相位(度)'); grid on;
    

    运行程序结果图如下
    在这里插入图片描述

    (2) 傅里叶变换的数值计算实现法

    数值计算方法实现连续时间信号的傅里叶变换,实质上是借助于MATLAB的强大数值计算功能进行的一种近似计算。其实现原理如下:
    对于连续时间信号f(t),其傅里叶变换为:在这里插入图片描述

    其中τ为取样间隔,如果f(t)是时限信号,或者当|t|大于某个给定值时,f(t)的值已经衰减得很厉害,可以近似地看成是时限信号,则上式中的n取值就是有限的,假定为N,有:在这里插入图片描述

    若对频率变量ω进行取样,得:在这里插入图片描述

    通常取:在这里插入图片描述
    ,其中ω0是要取的频率范围,或信号的频带宽度。采用matlab
    实现上式时,其要点是要生成f(t)的N个样本值f (nτ)的向量,以及向量在这里插入图片描述
    ,两向量的内积(即两矩阵的乘积)完成上式的傅里叶变换的数值计算。

    注意:

    时间取样间隔τ的确定,依据是τ 必须小于奈奎斯特(Nyquist)取样间隔。如果f(t)不是严格的带限信号,则根据实际计算的精度要求来确定一个适当的频率ω0为信号的带宽。
    例3:用数值计算法实现上面门函数f(t)=ε(t+1)-ε(t-1)的傅里叶变换,并画出幅度频谱图。
    分析:该信号的频谱F(jω)=2Sa(ω),第一个过零点频率为π,一般将此频率认为是信号的带宽。但考虑到F(jω)的形状(为抽样函数),假如将精度提高到该值的50倍,即取ω0=50ωB,F0=ω0 /2π则据此确定的取样间隔为:τ≤1/2F0 = 0.02
    matlab程序如下

    clear all
    R=0.02; %取样间隔τ=0.02 
    t = -2:R:2; % t为从-22,间隔为0.02的行向量,201个样本点
    ft=[zeros(1,50),ones(1,101),zeros(1,50)]; % 产生f(t)的样值矩阵(即f(t)的样本值组成的行向量)
    W1=10*pi; %取要计算的频率范围
    M=500; k=-M:M; w=k*W1/M; %频域采样数为M, w为频率正半轴的采样点
    Fw=f t*exp(-j*t'*w)*R; %求傅氏变换F(jw) 
    FRw=abs(Fw); %取振幅
    subplot(2,1,1) ; plot(t,ft) ;grid;  %画出原始函数f(t)的波形
    xlabel('t') ; ylabel('f(t)'); title('f(t)=u(t+1)-u(t-1)'); 
    subplot(2,1,2); plot(w,FRw) ;grid on; %画出振幅频谱的波形
    xlabel ('w') ; ylabel ('F(w)'); 
    

    运行程序结果如下
    在这里插入图片描述

    2、用matlab计算连续时间LTI系统的频率响应

    频率特性是指系统在正弦信号激励下的稳态响应随频率变化的情况,包括响应的幅度随频率的变化情况和响应的相位随频率的变化情况两个方面。在这里插入图片描述

    f (t)、y(t)分别为系统的激励和响应,h(t)是系统的单位冲激响应,三者的关系如下:
    时域:在这里插入图片描述
    频域: 在这里插入图片描述
    或:在这里插入图片描述

    H(jω)为系统的频域数学模型,它实际上就是系统的单位冲激响应h(t)的傅里叶变换。即: 在这里插入图片描述

    其中,׀H(jω)׀为幅度频率相应,反映信号经过系统之后,信号各频率分量的幅度变化情况,为相位特性,反映信号经过系统后,信号各频率分量在相位变换情况。
    当系统的激励,则其响应为在这里插入图片描述

    若输入信号为正弦信号,即f(t) = sin(0t),则系统响应为在这里插入图片描述

    系统对某一频率分量的影响体现为,信号的幅度被׀H(jω)׀加权,信号的相位被移相。
    关键是确定系统的频率响应。
    matlab里面求系统频率响应的函数为freqs(),该函数可求出系统频率响应的数值解,并可绘出系统的幅频及相频响应曲线。
    当系统的频率响应H(jω)是jω的有理多项式时,在这里插入图片描述

    matlab里面求系统频率响应的函数为freqs,该函数可直接计算系统的频率响应的数值解,并可绘出系统的幅频及相频响应曲线。其调用格式如下
    (1)h=freqs(b,a,w) 该调用格式中,b和a分别对应于(7-7)式的向量[b1,b2,…,bm]和[a1,a2,…,an],w为形如w1:p:w2的冒号运算定义的系统频率响应的频率范围,w1为频率起始值,w2为频率终止值,p 为频率取样间隔。向量h为返回在向量w所定义的频率点上,系统频率响应的样值。
    (2)[h,w]=freqs(b,a)
    该调用格式将计算默认频率范围内200个频率点的系统频率响应的样值,并赋值给返回变量h,200个频率点记录在w中。
    (3)[h,w]=freqs(b,a,n)
    该调用格式将计算默认频率范围内n个频率点上系统频率响应的样值,并赋值给返回变量h,n个频率点记录在w中。
    (4)freqs(b,a)
    该格式并不返回系统频率响应的样值,而是以对数坐标的方式绘出系统的幅频响应和相频响应曲线。
    举例说明如下:
    a=[1 2 1]; b=[0 1]; h=freqs(b,a,0:0.5:2*pi);%计算0~2π频率范围内以间隔0.5取样的系统频率响应的样值;
    例4:某连续时间LTI系统的微分方程如下在这里插入图片描述

    编写MATLAB程序绘制系统的幅度响应、相位响应、频率响应的实部和频率响应的虚部。
    matlab程序如下

    clear  all
    b=[1];      
    a=[1 3 2];   
    [H,w]=freqs(b,a);  
    Hm=abs(H);          
    phai=angle(H);    
    Hr=real(H);         
    Hi = imag(H);  
    subplot(2,2,1)     
    plot(w,Hm), grid on,  title('Magnitude response'), 
    xlabel('Frequency in rad/sec')
    subplot(2,2,3)
    plot(w,phai); grid on; title('Phase response'); xlabel('Frequency in rad/sec')
    subplot(2,2,2)
    plot(w,Hr); grid on; title('Real part of frequency response'),  
    xlabel('Frequency in rad/sec')
    subplot(2,2,4)
    plot(w,Hi); grid on; title('Imaginary part of frequency response'),  
    xlabel('Frequency in rad/sec')
    

    运行结果如下:
    在这里插入图片描述

    例5:已知一RC电路如图所示,系统的输入电压为f(t),输出信号为电阻两端的电压y(t),当RC=0.04,f(t)=cos5t+cos100t, 试求该系统的零状态响应y(t)在这里插入图片描述

    由图知其频率响应为 在这里插入图片描述

    余弦信号cos(ω0t)通过LTI系统的零状态响应为在这里插入图片描述

    matlab程序如下

    clear all
    RC=0.04;
    t=linspace(-2,2,1024);
    w1=5;w2=100;
    H1=j*w1/(j*w1+1/RC);
    H2=j*w2/(j*w2+1/RC);
    f=cos(5*t)+cos(100*t);
    y=abs(H1)*cos(w1*t+angle(H1))+ abs(H2)*cos(w2*t+angle(H2));
    subplot(2,1,1);
    plot(t,f); ylabel('f(t)'); xlabel('Time(s)');
    subplot(2,1,2);
    plot(t,y); ylabel('y(t)'); xlabel('Time(s)');
    

    三、实验内容

    1.已知三个LTI系统的微分方程如下

    系统1: 在这里插入图片描述
    系统2: 在这里插入图片描述

    系统3:在这里插入图片描述

    用matlab绘制幅度响应、相位响应、频率响应的实部和频率响应的虚部曲线图。
    并分析系统具有什么滤波特性?

    系统1:

    程序如下:

    clear  all
    b=[1];      
    a=[1 1 25];  
    [H,w]=freqs(b,a);  
    Hm=abs(H);          
    phai=angle(H);    
    Hr=real(H);         
    Hi = imag(H);  
    subplot(2,2,1)     
    plot(w,Hm), grid on,  title('·ù¶ÈÏìÓ¦'), 
    xlabel('Frequency in rad/sec')
     
    subplot(2,2,3)
    plot(w,phai); grid on; title('ÏàλÏìÓ¦'); xlabel('Frequency in rad/sec')
     
    subplot(2,2,2)
    plot(w,Hr); grid on; title('频率响应的实部'),  
    xlabel('Frequency in rad/sec')
     
    subplot(2,2,4)
    plot(w,Hi); grid on; title('频率响应的虚部'),  
    xlabel('Frequency in rad/sec')
    

    运行结果如下:
    在这里插入图片描述

    系统2:

    程序如下:

    clear  all
    b=[1 1];      
    a=[1 1];  
    [H,w]=freqs(b,a);  
    Hm=abs(H);          
    phai=angle(H);    
    Hr=real(H);         
    Hi = imag(H);  
    subplot(2,2,1)     
    plot(w,Hm), grid on,  title('幅度响应'), 
    xlabel('Frequency in rad/sec')
     
    subplot(2,2,3)
    plot(w,phai); grid on; title('相位响应'); xlabel('Frequency in rad/sec')
     
    subplot(2,2,2)
    plot(w,Hr); grid on; title('频率响应的实部'),  
    xlabel('Frequency in rad/sec')
     
    subplot(2,2,4)
    plot(w,Hi); grid on; title('频率响应的虚部'),  
    xlabel('Frequency in rad/sec')
    

    运行结果如下:
    在这里插入图片描述

    系统3:

    程序如下:**

    clear  all
    b=[262];      
    a=[10 48 148 306 401 262];  
    [H,w]=freqs(b,a);  
    Hm=abs(H);          
    phai=angle(H);    
    Hr=real(H);         
    Hi = imag(H);  
    subplot(2,2,1)     
    plot(w,Hm), grid on,  title('幅度响应'), 
    xlabel('Frequency in rad/sec')
     
    subplot(2,2,3)
    plot(w,phai); grid on; title('相位响应'); xlabel('Frequency in rad/sec')
     
    subplot(2,2,2)
    plot(w,Hr); grid on; title('频率响应的实部'),  
    xlabel('Frequency in rad/sec')
     
    subplot(2,2,4)
    plot(w,Hi); grid on; title('频率响应的虚部'),  
    xlabel('Frequency in rad/sec')
    

    运行结果如下:
    在这里插入图片描述

    2. 分别用傅里叶变换的数值计算法和调用专用函数编写MATLAB程序,计算

    f(t)= 3e-2tε(t)的傅里叶变换。
    程序如下:

    clear all
    syms t
    F=fourier(3*exp(-2*t)*heaviside(t))
    

    运行结果如下:

    F =
     
    3/(2 + w*1i)
    

    3.已知一RC电路如图所示 系统的输入电压为f(t),输出信号为电阻两端的电压y(t).当R1=10kΩ , R2=30kΩ C=100µF,f(t)=cos50t+1, 试求该系统的零状态响应y(t)

    在这里插入图片描述

    程序如下:

    clear all
    RC=1;
    t=linspace(-2,2,1024);
    w1=50;
    H1=j*w1/(j*w1+1/RC);
     
    f=cos(50*t)+1;
    y=abs(H1)*cos(w1*t+angle(H1))
    subplot(2,1,1);
    plot(t,f); ylabel('f(t)'); xlabel('Time(s)');
    subplot(2,1,2);
    plot(t,y); ylabel('y(t)'); xlabel('Time(s)');
    

    运行结果如下:在这里插入图片描述

    四、 实验报告要求

    1.简述实验目的和实验原理;

    2.写出其对应的matlab程序;

    3.计算相应的冲激响应、零状态响应及卷积积分的理论值,并与实验结果进行比较。

    4.上机调试程序的方法及实验中的心得体会。

    本次上级实验,我掌握了连续时间信号与系统的频域分析方法,从频域的角度对信号与系统的特性进行分析;掌握了连续时间信号傅里叶变换与傅里叶逆变换的实现方法;掌握了连续时间傅里叶变换的特点及应用;掌握了连续时间傅里叶变换的数值计算方法及绘制信号频谱的方法。熟悉了
    (1).syms命令:定义符号变量
    调用格式:
    symsx,定义x为符号变量,可以直接使用。
    symsxy,定义x和y为符号变量,可以直接使用。
    (2).ezplot函数:实现一元函数的绘图。相比plot函数要制定自变量范围,ezplot 无需
    数据准备,可以直接画图,尤其适用于符号函数。

    展开全文
  • 信号频域分析方法多种多样,这里针对较为常见的(频谱、能量谱、功率谱、倒频谱、小波分析)集中进行说明。这些方法的MATLAB代码实现参见文章频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱)在看这篇文章...

    dd1b61e75f8956c109d15dd8d2931614.png

    信号的频域分析方法多种多样,这里针对较为常见的(频谱、能量谱、功率谱、倒频谱、小波分析)集中进行说明。这些方法的MATLAB代码实现参见文章频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱)

    在看这篇文章之前可以参看之前的两篇,其中涉及一些时域特征值介绍和能量、功率信号区别的介绍:

    Mr.括号:信号的各种时域分析方法的理解

    Mr.括号:能量信号和功率信号的分别

    文章如要转载请私信与我联系,并注明来源知乎专栏与信号处理有关的那些东东作者Mr.括号。

    一、频谱

    一般来说,频谱分析指的是将信号做傅里叶变换从而进行分析。频谱分析是包括幅频谱和相频谱两张图的。不过最常用的是幅频谱。

    频谱分析是最常用和最重要也是最基础的频域分析方法。在这里不详细展开说了,不了解概念的可以参考这篇文章:

    Heinrich:如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧

    时常会见到几个概念:DFT,DTFT,DFS,FFT,FT, FS等等。这些概念怎么区分?看这篇文章就能搞懂:一幅图弄清DFT与DTFT,DFS的关系 - BitArt - 博客园

    在这里概括一下(不感兴趣的话可以直接跳过):

    FT(Fourier Transformation):傅里叶变换。就是我们理论上学的概念,但是对于连续的信号无法在计算机上使用。其时域信号和频域信号都是连续的。

    DTFT(Discrete-time Fourier Transform):离散时间傅里叶变换。这里的“离散时间”指的是时域上式离散的,也就是计算机进行了采样。不过傅里叶变换后的结果依然是连续的。

    DFT(Discrete Fourier Transform):离散傅里叶变换。在DTFT之后,将傅里叶变换的结果也进行离散化,就是DFT。

    也就是说:FT时域连续、频域连续;DTFT时域离散、频域连续;DFT时域离散、频域离散。

    FFT(Fast Fourier Transformation):快速傅里叶变换。就是DFT的快速算法,一般工程应用时用的都是这种算法。

    FS(Fourier Series):傅里叶级数。是针对时域连续周期信号提出的,结果是离散的频域结果。

    DFS(Discrete Fourier Series):离散傅里叶级数。是针对时域离散周期信号提出的,DFS与DFT的本质是一样的。

    另外补充几点相关知识:

    • 在实际计算中通常使用快速傅里叶变换(FFT)。它是一种用来计算DFT(离散傅里叶变换)和IDFT(离散傅里叶反变换)的一种快速算法。
    • 随机信号是无法做傅里叶变换的(*这里要再补充)

    二、能量谱

    要理解能量谱和功率谱,首先要弄明白能量有限信号和功率有限信号(参看之前的文章能量信号和功率信号的分别)。

    能量谱也叫能量谱密度,能量谱密度描述了信号或时间序列的能量如何随频率分布。能量谱是原信号傅立叶变换的平方

    三、功率谱

    功率谱是功率谱密度函数(PSD)的简称,它定义为单位频带内的信号功率。

    功率谱是针对功率信号来说的。功率谱的推导公式相对复杂,不过幸运的是维纳-辛钦定理证明了:一段信号的功率谱等于这段信号自相关函数的傅里叶变换。

    所以求功率谱就有了两种方法:1.(傅立叶变换的平方)/(区间长度);2.自相关函数的傅里叶变换。这两种方法分别叫做直接法和相关函数法。

    功率谱这里存在着一些问题,整理如下:

    1.功率谱密度的单位是什么,看有的写的是dB,还有的说是W/Hz。

    功率谱的单位是W/Hz,单位是dB时是做了对数处理(10logX)。取对数的目的是使那些振幅较低的成分相对高振幅成分得以拉高,以便观察掩盖在低幅噪声中的周期信号。

    2.求功率谱的两种方法有什么区别么?

    从原理上讲似乎没什么区别,从MATLAB仿真结果上来看,相关函数法对噪声的抑制效果更好,图线更平滑。(见频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱))

    3.FFT和PSD都是表示的频谱特性,帮助我们找出峰值的位置,那么有了FFT为什么还要提出PSD?

    信号分为确定信号和随机信号,而确定信号又分为能量信号和功率信号,随机信号一定是功率信号。根据狄里赫利条件,能量信号可以直接进行傅里叶变换,而功率信号不行。对于无法做傅里叶变换的信号,只能走一步弯路,先求自相关,再做傅里叶。但是物理意义上就是功率谱了。不过总之得到了信号的频率特性。

    4.既然为什么随机信号的一次FFT没有意义却还能(傅立叶变换的平方)/(区间长度)得到功率谱?

    对随机信号直接做FFT的做法其实就是截断成能量信号进行处理,这种处理不符合随机信号定义,但之所以这样做,是做短时频域分析下作的近似处理。(这里希望能有大神能给出更好的解释)

    所以总结,频谱和能量谱(也叫能量谱密度)是傅里叶变换得到的复数结果和模平方的关系;
    而功率谱(也就是功率谱密度)是针对随机信号分析提出的概念。

    更多讨论可以参看:随机信号傅里叶变换和功率谱密度图给出的信息有什么不同 - MATLAB中文论坛

    四、倒频谱

    倒频谱(Cepstrum)也叫倒谱、二次谱和对数功率谱等。倒频谱的工程型定义是:信号功率谱对数值进行傅立叶逆变换的结果。(信号→求功率谱→求对数→求傅里叶逆变换)

    为什么翻译作倒频谱呢?我个人的理解是,频谱(功率谱)反应的频率特征点横坐标是频率f(Hz),在倒频谱中对应的特征点的横坐标是时间t(s),而f与t互为倒数。从这里也可以看出,虽然倒频谱也叫“频谱”,其横坐标却并不是频率,而是时间。

    那么倒频谱有什么好处呢?

    “该分析方法方便提取、分析原频谱图上肉眼难以识别的周期性信号,能将原来频谱图上成族的边频带谱线简化为单根谱线,受传感器的测点位置及传输途径的影响小。”

    这都是啥意思?一条条解释:

    1.方便提取、分析原频谱图上肉眼难以识别的周期性信号

    我们知道,频谱分析就是为了提取原始信号中的周期性信号的,怎么频谱中的信号还会有周期性?这就又涉及到两个概念:调制和边频带

    调制分为幅值调制频率调制。下面以齿轮的幅值调制为例进行说明:齿轮的振动信号主要包括两部分,分别是齿轮啮合振动信号(高频)和齿轮轴的转频振动信号(低频),时域和频域曲线分别如下图所示:

    97c6c6c0c01a428a7d0155dd7613dfd6.png

    高频信号和低频信号时域波形

    98060c1492c5b8a6feda6bd0079b116a.png

    高频信号和低频信号的频域波形

    调制就是高低频率信号的混合。幅值调制从数学上看,相当于两个信号在时域上相乘;而在频域上,相当于两个信号的卷积。调制后的信号在时域和频域上分别变为:

    115b28d2217516045f1ccf32d5403d3b.png

    调制后的时域信号

    fafa512a66b13867e319c3ce6347a8f3.png

    调制后的频域信号

    我们发现,调制后的信号中,除原来的啮合频率分量外,增加了一对分量,它们是以高频信号特征频率为中心,对称分布于两侧,所以称为边频带

    实际实验中齿轮啮合振动信号(高频)和齿轮轴的转频振动信号(低频)的特征频率可能是有多组的,其调制后的频域信号近似于一组频率间隔较大的脉冲函数和一组频率间隔较小的脉冲函数的卷积,从而在频谱上形成若干组围绕啮合频率及其倍频成分两侧的边频族,如下图:

    d50fea693f03817d85659f138742dd4f.png

    边频带的形成

    说了一大堆,终于回归到上边提到的问题:倒频谱“方便提取、分析原频谱图上肉眼难以识别的周期性信号”。这里指的周期性信号,就是重复出现的边频带。

    倒频谱能较好地检测出功率谱上的周期成分,通常在功率谱上无法对边频的总体水平作出定量估计,而倒频谱对边频成分具有“概括”能力, 能较明显地显示出功率谱上的周期成分,将原来谱上成族的边频带谱线简化为单根谱线,便于观察,而齿轮发生故障时的振动频谱具有的边频带一般都具有等间隔(故障频率)的结构,利用倒频谱这个优点,可以检测出功率谱中难以辨识的周期性信号。

    2.受传感器的测点位置及传输途径的影响小

    这是倒频谱的第二个好处。对于布置在不同位置的传感器,由于传递路径不同,其功率谱也不相同。但在倒频谱上,由于信号源的振动效应和传递途径的效应分离开来,代表齿轮振动特征的倒频率分量几乎完全相同,只是低倒频率段存在由于传递函数差异而产生的影响。在进行倒频谱分析时,可以不必考虑信号测取时的衰减和标定系数所带来的影响。这一优点对于故障识别极为有用。

    关于倒频谱,文章 齿轮故障诊断常用信号分析处理方法 给出了具体了例子,方便理解。

    五、小波分析

    小波分析是一种时频域分析方法,该方法兼顾了信号在时域和频域的信息。知乎上有一篇文章对小波分析的理解进行了生动的讲解,强烈建议对小波分析概念不熟的同学先看一下。咚懂咚懂咚:能不能通俗的讲解下傅立叶分析和小波分析之间的关系?这篇文章中最后给出的小波变换的结果是这样的:

    9b855a4bc40b53dc1d65794486d839db.png

    连续小波变换

    看起来十分厉害,不过同时会发现两个问题:运算量很大;只有数值解,没有解析解。上述这种小波分析方法叫连续小波变换(continuous wavelet transform, CWT)。

    为了减少变换运算量,去除不必要的重复的系数,实际中使用的通常是离散小波变换(discrete wavelet transform, DWT)。

    这里的“离散”指的是什么呢?

    让我们先回到小波基波(也叫母小波)的表达式:

    03aef13914afcbb18033a81cd9b2ad9d.png

    其中s是尺度参数,表征频率;t是位移参数,表征时间。这部分在答友的连接里也提到了。再看上一张图,xy坐标分别是SCALE和TRANSLATION,也就是s和t,他们在连续小波变换中是连续的。

    所以,在离散小波变换中,“离散”的就是参数s和t。此时小波表达式写为:

    45e4819f59a97a28be9e0e103f96dee3.png

    j和k都是整数,通常取s0=2,τ0=1。

    可以看出,随着j取值的递增,我们可以得到一串不同的小波(子小波,也叫女儿小波...)。这些子小波的尺度参数以2的j次方的形式增长。当使用这一系列的子小波,对一个连续函数进行离散分析时,我们所获得的是一组小波分析的系数,这个分析过程称为小波系列分解

    上边说道,尺度参数表征的是频率,在子小波中尺度参数以2的倍数增长(即小波的“长度”被“拉长”了2倍),那么子小波对应能检测到的频率值也会以1/2的倍数缩小。母小波所对应的频谱位于频率谱的高端,具有最大的频率谱范围- 而其他的子小波的频率谱则依次向频谱图的低频端移动,同时它们所覆盖的频率谱范围也相应地递减。在理想的情况下,所有的滤波器应该首尾相接互相覆盖。

    fbb7816a3e8c0941bc247b6c10a8a7b8.png

    不同尺度的子小波在小波频率谱上的覆盖

    是的,每个子小波就相当于一个滤波器离散小波变换的过程就是逐级滤波的过程。

    具体流程是怎样的呢?

    用一句话描述就是:一组离散信号通过一系列的低通和高通滤波器,分别可以得到近似信号(用字母A表示)和细节信号(用字母D表示)。

    用一张图描述就是:

    1f260f9c8bf3eae13b6525d9d65922c8.png

    LP为低通滤波器,HP为高通滤波器,B为带宽,2B为2倍带宽

    用一个例子来描述就是:

    对原始信号滤波:原始信号是在一个连续的低频正弦波信号(频率为0.5)上随机叠加了两个高频(频率为 10)高振幅的正弦脉冲,这里使用了 dB5(第五级Daubechies小波)作为去除噪音操作的母小波。

    5c0cebd5158e8a66e8334fe989b34b46.png

    原始信号

    一阶小波分解的结果为:

    e2044e6544025bbb304ca56ac32af085.png

    一阶小波分解的近似信号(低通结果)

    1dc22bba87871720f2b47e377605f195.png

    一阶小波分解的细节信号(高通结果)

    二阶小波分解的结果为(即对A1信号做分解):

    05d497443b0b37ee9d27ea6d9d200c6f.png

    二阶小波分解的近似信号(低通结果)

    2d5f9b5705565918e21322d2192d7061.png

    二阶小波分解的细节信号(高通结果)

    三阶小波分解的结果为(即对A2信号做分解):

    0936189ad21db55f4c56d98f662d215f.png

    三阶小波分解的近似信号(低通结果)

    1ff1c8809b50e546655430f1e43d93e1.png

    三阶小波分解的细节信号(高通结果)

    四阶小波分解的结果为(即对A3信号做分解):

    236d248f06886dbcced2465c5e176ded.png

    四阶小波分解的近似信号(低通结果)

    7e6c4ab9e9b3d85d8be25d4e9c12d865.png

    四阶小波分解的细节信号(高通结果)

    至此我们已经能够得到较好的滤波结果了(即A5,不过脉冲信号也被滤掉了,用设置门限的方法可以保留住该信号,这里不做展开)。可以看到原式信号被逐级的,无遗漏地进行了高、低通滤波,且越接近低频分段越细,几乎想要哪个频段的特征都能得到,因而这个方法有个霸气的名字,叫滤波器银行。

    小波变换大致讲完了,那么它有哪些特点,可以用来做什么呢?

    首先当然是滤除噪声。

    其次,由于离散小波变换是可逆的,所以还可以用来做图像、信号的无损压缩。

    另外,可以检测信号的非连续性。奇异信号会在细节信号D中展现。

    除此之外,还可以进行图像边界检测等工作。

    (时)频域的一些常见的分析处理方法就介绍到这里了。这里能讲到的只是一些表面的概念和一些个人的理解。文中的内容还会不断修正和完善,对于不严谨以及谬误指出,还望多多指教。

    欢迎关注我的公众号“括号的城堡”,微信号为“khscience”,会有更多有趣的东西分享。

    参考:

    Heinrich:如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧

    随机信号傅里叶变换和功率谱密度图给出的信息有什么不同 - MATLAB中文论坛

    傅里叶变换和逆变换公式的我理解意义 - CSDN博客

    齿轮的振动机理

    齿轮故障诊断常用信号分析处理方法

    Cepstrum - Wikipedia

    Wavelet - Wikipedia

    周宇峰, 程景全. 小波变换及其应用[J]. 物理, 2008, 37(1):24-32.

    展开全文
  • 信号与系统-时域频域分析及MATLAB软件的应用
  • 1 实验目的 (1)掌握连续时间信号傅里叶变换的实现方法; (2)了解傅里叶变换的特点及其应用; (3)掌握傅里叶变换的数值计算方法以及绘制信号频谱图的方法;
  • 离散信号的复频域分析 一、为什么引入双边Z变换 因为单边Z变换存在局限性: 一是只能描述因果系统,二是只能分析单边序列。 二、双边Z变换及其收敛域 1.定义: 2. 什么是收敛域: 能够使得Z正变换的结果X(z)收敛...
  • 示波器的频域分析功能在电路调试时可以发挥很大作用。示波器的FFT功能配合长存储深度可以很方便地分析低频率长周期信号,这个优势在数字电路调试中比较突出。
  • 信号频域分析方法 频域特征值提取的Matlab实现(频谱、功率谱、倒频谱) 频域特征值提取的Matlab实现(小波分析) 以下转自知乎回答 傅里叶变换与小波变换的关系 《语音信号处理》书籍章节概览,可用于信号处理 ...
  • 本文讨论使用Matlab对信号进行频域分析的方法。说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号频域分析,是因为很多信号在时域不明显的特征可以在频域...
  • 数字信号仿真实验——实验二离散时间信号与系统的频域分析,实验目的:进一步加深DTFT、DFT和z 變化的算法原理和基本性質的理解;熟悉系統的頻率响应和传输函数;学习用FFT对时域离散信号进行谱分析的方法,了解可能...
  • 频域分析基础

    千次阅读 多人点赞 2019-04-07 21:01:07
    应用频率特性研究线性系统的经典方法称为频域分析法。在常规的控制理论中,频域响应法往往是最有效的,因为我们可以利用对物理系统实测得到的数据来分析系统性能,而不需要推导出系统的精确的数学模...
  • 本文讨论使用Matlab对信号进行频域分析的方法。实验原理 1、信号的时频域转换方法 通过fourier级数展开或变换 可将时域信号变换为频域信号 反之 通过fourier逆变换可以将频域信号转换为时域信号。离散傅氏变换(dft)...
  • 为了研究各时频域分析方法对爆破振动信号时频特征提取的有效性,设计了仿真试验并对不同时频域分析方法进行了对比分析,验证了自适应最优核分布在最大程度抑制交叉项的同时具有较高的时频分辨能力和分辨精度,是适合...
  • 正是由于芯片、材料和工艺技术带来的示波器带宽和采样率的快速提升,使得宽带实时示波器开始在射频信号...后续我们将介绍一些用实时示波器做简单射频、雷达脉冲、调频信号、调制器时延、宽带信号解调等的一些典型应用
  • 信号与系统是通信和电子信息类专业的核心基础课,其中的概念和分析方法广泛应用于通信、自动控 制、信号与信息处理、电路与系统等领域。
  • 实验二:语音信号频域分析实验目的:以MATLAB 为工具,研究语音信号的频域特性,以及这些特性在《语音信号处理》中的应用情况。实验要求:利用所给语音数据,分析语音的频谱、语谱图、基音频率、共振峰等频域参数...
  • 连续时间信号与系统的复频域分析拉普拉斯变换的MATLAB实现零极点分布图复频域法1复频域法2 拉普拉斯变换的MATLAB实现 (1) 已知信号f(t)=cos⁡(2t)sin⁡(3t)u(t)f(t)=\cos(2t)\sin(3t)u(t)f(t)=cos(2t)sin(3t)u(t),...
  • 本教案是信号与系统的教学课件,...包括二端口网络,拉普拉斯变换,傅立叶变换,双口网路与谐振电路,连续时间信号与系统的时域分析,连续系统的频域分析,连续系统的复频域分析,离散信号和离散系统分析等等相关内容。
  • 信号发生器产生信号,可用信号函数生成正弦波、方波、三角波、锯齿波、白噪声、脉冲信号、阶跃信号、斜波信号、加速度信号 2.2信号函数和标准信号 连续的正弦波要进行离散化,才能进而的进行数字信号处理,将连续的...
  • 数字语音信号处理学习笔记——语音信号的短时频域分析(1)
  • 如何使用matlab进行频域分析

    万次阅读 多人点赞 2018-08-24 20:17:27
    Matlab可以说是一个非常有用且功能齐全的工具,在...之所以要有信号频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。 FFT Matlab提供的傅里叶变换的...
  • 实验四 连续时间信号与系统的复频域分析 实验目的 1.掌握 Laplace 变换的意义基本性质及应用 2.掌握拉普拉斯变换的三维可视化表示 3.理解系统函数的零极点分布(极零图)决定系统时间原函数的特性 4.掌握系统冲激响应 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,322
精华内容 3,728
关键字:

信号频域分析的应用