最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 离散傅里叶变换的缺点是什么?变换原理是怎样的?

    SciPy 提供了 fftpack 模块,其中包含傅里叶变换的算法实现。

    傅里叶变换将信号从时域变换到频域以处理信号。傅里叶变换已广泛应用于信号与噪声处理、图像处理、音频信号处理等领域。

    进一步了解傅里叶变换原理,可以参考相关资料。

    快速傅里叶变换

    计算机只能处理离散信号,而使用离散傅里叶变换(DFT)是计算机分析信号的基本方法。但是,离散傅里叶变换的缺点是:计算量大,时间复杂度高。当采样点数过多时,计算速度变慢门函数信号傅立叶变换 c语言,导致DFT的快速实现,即快速傅里叶变换FFT。

    快速傅里叶变换 (FFT) 是离散傅里叶变换的计算密集度较低的实现,其逆变换称为快速傅里叶逆变换 (IFFT)。

    例子

    先对数据进行fft变换,再进行ift逆变换。

    import numpy as np
    #从fftpack中导入fft(快速傅里叶变化)和ifft(快速傅里叶逆变换)函数
    from scipy.fftpack import fft,ifft
    #创建一个随机值数组
    x = np.array([1.0, 2.0, 1.0, -1.0, 1.5])
    #对数组数据进行傅里叶变换
    y = fft(x)
    print('fft: ')
    print(y)
    print('n')
    #快速傅里叶逆变换
    yinv = ifft(y)
    print('ifft: ')
    print(yinv)
    print('n')

    输出

    fft:
    [ 4.5       +0.j          2.08155948-1.65109876j -1.83155948+1.60822041j
     -1.83155948-1.60822041j  2.08155948+1.65109876j]
    ifft:
    [ 1. +0.j  2. +0.j  1. +0.j -1. +0.j  1.5+0.j]

    可以看到 fft, ifft 返回复数。在ifft返回的结果中,复数的虚部全为0,实部与原始数据x一致。

    由于没有设置这N个点的时间长度,因此无法计算这些点的频率。不明白的就不要深究,后面会介绍。

    了解 fft 变换结果

    我们知道傅里叶变换将时域信号转换为频域信号。在离散傅里叶变换中,频域信号由一系列不同频率的谐波(频率倍数)组成。fft 的返回值是一个复数数组,每个复数代表一个正弦波。通常,波形由三个变量决定:幅度、相位和频率。这些信息可以从fft的返回值中得到。

    假设a是时域的周期信号,采样频率为Fs,采样点数为N。如果A[N] = fft(a[N]),则返回值A[N]是一个数组复数,其中:

    频率分辨率

    频率分辨率是离散傅里叶变换 (DFT) 频域中相邻尺度之间的实际频率差。采样时门函数信号傅立叶变换 c语言,数据采样时间为T秒(T=采样点数N/采样频率Fs),信号分量中的最大周期为T秒,最低频率即“基频”为等于1/T,即Fs/N,这就是频率分辨率。基频=Fs/N,各次谐波的频率为i*Fs/N,此公式用于计算各波形的频率。

    例子

    import numpy as np
    from scipy.fftpack import fft
    # 采样点数
    N = 4000
    # 采样频率 (根据采样定理,采样频率必须大于信号最高频率的2倍,信号才不会失真)
    Fs = 8000
    x = np.linspace(0.0, N/Fs, N)
    # 时域信号,包含:直流分量振幅1.0,正弦波分量频率100hz/振幅2.0, 正弦波分量频率150Hz/振幅0.5/相位np.pi
    y = 1.0 + 2.0 * np.sin(100.0 * 2.0*np.pi*x) + 0.5*np.sin(150.0 * 2.0*np.pi*x + np.pi)
    # 进行fft变换
    yf = fft(y)
    # 获取振幅,取复数的绝对值,即复数的模
    abs_yf = np.abs(yf)
    # 获取相位,取复数的角度
    angle_y=np.angle(yf)
    # 直流信号
    print('n直流信号')
    print('振幅:', abs_yf[0]/N) # 直流分量的振幅放大了N倍
    # 100hz信号
    index_100hz = 100 * N // Fs # 波形的频率 = i * Fs / N,倒推计算索引:i = 波形频率 * N / Fs
    print('n100hz波形')
    print('振幅:', abs_yf[index_100hz] * 2.0/N) # 弦波分量的振幅放大了N/2倍
    print('相位:', angle_y[index_100hz])
    # 150hz信号
    index_150hz = 150 * N // Fs # 波形的频率 = i * Fs / N,倒推计算索引:i = 波形频率 * N / Fs
    print('n150hz波形')
    print('振幅:', abs_yf[index_150hz] * 2.0/N) # 弦波分量的振幅放大了N/2倍
    print('相位:', angle_y[index_150hz])
    print('100hz与150hz相位差:',  angle_y[index_150hz] - angle_y[index_100hz])
    print('n')

    输出

    直流信号
    振幅: 1.0
    100hz波形
    振幅: 1.9989359813189005
    相位: -1.5315264186250062
    150hz波形
    振幅: 0.5008489983048182
    相位: 1.6297011890497097
    100hz与150hz相位差: 3.161227607674716

    可以看出,正弦波的相位不一定从0开始,但波形之间的相位差确实约等于1π(该值与采样频率和采样点数有关)。

    离散余弦变换 (DCT)

    由于要处理的许多信号都是实信号,因此在使用 FFT 时,傅里叶变换的共轭对称性会导致实信号在频域中的数据冗余减少一半。

    离散余弦变换 (DCT) 是为实信号定义的变换。变换后得到频域的实信号。与离散傅里叶变换 DFT 相比,DCT 可以减少一半以上的计算量。DCT还有一个很重要的性质(能量集中特征):大部分自然信号(声音、图像)的能量经过离散余弦变换后都集中在低频部分,因此DCT在(声音、图像)数据中得到了广泛的应用压缩。的用法。由于 DCT 是从 DFT 派生的另一种变换,DFT 的许多特性仍然保留在 DCT 中。

    在 SciPy.fftpack 中,提供了离散余弦变换 (DCT) 和逆离散余弦变换 (IDCT) 的实现。

    例子

    import numpy as np
    from scipy.fftpack import dct,idct
    y = dct(np.array([4., 3., 5., 10., 5., 3.]))
    print(y)

    输出

    [ 60.          -3.48476592 -13.85640646  11.3137085    6.
      -6.31319305]

    逆离散余弦变换(idct)是离散余弦变换(DCT)的逆变换。

    例子

    import numpy as np
    from scipy.fftpack import dct,idct
    y = idct(np.array([4., 3., 5., 10., 5., 3.]))
    print(y)

    输出

    [ 39.15085889 -20.14213562  -6.45392043   7.13341236   8.14213562
      -3.83035081]

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 离散傅里叶变换的缺点是什么?变换原理是怎样的?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论