找回密碼
 立即注冊
查看: 321|回復(fù): 3

用fft對信號作頻譜分析

[復(fù)制鏈接]

該用戶從未簽到

5

主題

0

回帖

30

積分

助理技師

積分
30
樓主
發(fā)表于 2024-11-28 11:36:02 | 只看該作者 |倒序瀏覽 |閱讀模式
在Python中,可以使用numpy庫的fft模塊來進行傅立葉變換,并使用matplotlib庫來繪制信號的頻譜圖。以下是一個簡單的示例,演示如何對一個簡單的正弦波信號進行頻譜分析:
  1. import numpy as np
  2. import matplotlib.pyplot as plt

  3. # 定義信號參數(shù)
  4. A = 1.0                  # 振幅
  5. fs = 1000.0              # 采樣頻率
  6. T = 1.0/fs               # 采樣間隔
  7. L = 1000                 # 信號長度
  8. t = np.arange(L) * T     # 時間向量
  9. f = 50.0                 # 信號頻率

  10. # 生成正弦波信號
  11. signal = A * np.sin(2 * np.pi * f * t)

  12. # 計算FFT
  13. fft_signal = np.fft.fft(signal)

  14. # 計算雙邊頻譜(默認情況下,fft給出的是單邊頻譜)
  15. fft_magnitude = np.abs(fft_signal)

  16. # 為了得到正確的頻率軸,我們需要在fft_magnitude的前半部分和后半部分分別乘以兩邊對應(yīng)的頻率
  17. N = len(fft_magnitude)
  18. freqs = np.fft.fftfreq(N, T)

  19. # 繪制頻譜圖
  20. plt.figure()
  21. plt.stem(freqs[:N // 2], fft_magnitude[:N // 2] * 2 / N, 'b', markerfmt=" ", basefmt="-b")
  22. plt.stem(freqs[-N // 2:], fft_magnitude[-N // 2:] * 2 / N, 'r', markerfmt=" ", basefmt="-r")
  23. plt.title('Frequency spectrum of a sine wave')
  24. plt.xlabel('Frequency (Hz)')
  25. plt.ylabel('Magnitude')
  26. plt.grid()
  27. plt.show()
復(fù)制代碼


這段代碼首先定義了一個簡單的正弦波信號,然后使用numpy.fft.fft計算信號的快速傅立葉變換(FFT)。接著,計算了FFT的幅度,并使用matplotlib.pyplot.stem繪制了頻譜圖。注意,由于FFT是對信號進行周期性擴展的,因此我們只需要考慮頻率軸的正半軸即可。雙邊頻譜的幅度是單邊頻譜幅度的兩倍,除以FFT點數(shù)的一半可以歸一化到單邊頻率范圍內(nèi)。最后,使用matplotlib.pyplot.show()顯示結(jié)果。

回復(fù)

使用道具 舉報

  • TA的每日心情

    2024-9-11 11:38
  • 簽到天數(shù): 5 天

    [LV.2]偶爾看看I

    8

    主題

    95

    回帖

    206

    積分

    高級技師

    積分
    206
    沙發(fā)
    發(fā)表于 2024-12-4 17:07:13 | 只看該作者
    樓上總結(jié)得真好,我完全贊同。
    回復(fù)

    使用道具 舉報

    該用戶從未簽到

    4

    主題

    106

    回帖

    179

    積分

    技術(shù)員

    積分
    179
    板凳
    發(fā)表于 2024-12-5 17:56:07 | 只看該作者
    這個解決方案聽起來很有前景。
    回復(fù)

    使用道具 舉報

    該用戶從未簽到

    5

    主題

    84

    回帖

    150

    積分

    技術(shù)員

    積分
    150
    地板
    發(fā)表于 2025-10-26 12:21:42 | 只看該作者
    作者對這個話題的研究很全面,讓我收獲頗豐。
    回復(fù)

    使用道具 舉報

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則

    QQ|Archiver|小黑屋|制造論壇 ( 浙B2-20090312-57 )|網(wǎng)站地圖

    GMT+8, 2025-12-14 15:36 , Processed in 0.025370 second(s), 20 queries .

    Powered by Discuz! X3.5

    Copyright © 2001-2020, Tencent Cloud.

    快速回復(fù) 返回頂部 返回列表