日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python雷达信号处理,信号处理之功率谱原理与python实现

發布時間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python雷达信号处理,信号处理之功率谱原理与python实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上面"腦機接口社區"關注我們

更多技術干貨第一時間送達

功率譜圖又叫功率譜密度圖

功率譜是功率譜密度函數的簡稱,它定義為單位頻帶內的信號功率。它表示了信號功率隨著頻率的變化情況,即信號功率在頻域的分布狀況。

功率譜表示了信號功率隨著頻率的變化關系。常用于功率信號(區別于能量信號)的表述與分析,其曲線(即功率譜曲線)一般橫坐標為頻率,縱坐標為功率。由于功率沒有負值,所以功率譜曲線上的縱坐標也沒有負數值,功率譜曲線所覆蓋的面積在數值上等于信號的總功率(能量)。

知乎用戶CrisYang對功率譜、能量譜、幅值譜之間的關系進行了詳細的說明:

在頻譜分析中幅度和功率是由緊密聯系的兩個不同的物理量:能量能表述為幅值的平方和,也能表述為功率在時間上的積分;功率譜密度,是指用密度的概念表示信號功率在各頻率點的分布情況,是對隨機變量均方值的量度,是單位頻率的平均功率量綱;也就是說,對功率譜在頻域上積分就可以得到信號的平均功率,而不是能量。能量譜密度是單位頻率的幅值平方和量綱,能量譜密度曲線下面的面積才是這個信號的總能量。于是,功率譜、能量譜、幅值譜之間的緊密關系主要表述為:能量譜是功率譜密度函數在相位上的卷積,也是幅值譜密度函數的平方在頻率上的積分;功率譜是信號自相關函數的傅里葉變換,能量譜是信號本身傅立葉變換幅度的平方。

from scipy.fftpack import fft, fftshift, ifftfrom scipy.fftpack import fftfreqimport numpy as npimport matplotlib.pyplot as pltimport warningswarnings.filterwarnings("ignore")

fs = 1000#采樣點數num_fft = 1024;

"""生成原始信號序列

在原始信號中加上噪聲np.random.randn(t.size)"""t = np.arange(0, 1, 1/fs)f0 = 100f1 = 200x = np.cos(2*np.pi*f0*t) + 3*np.cos(2*np.pi*f1*t) + np.random.randn(t.size)

plt.figure(figsize=(15, 12))ax=plt.subplot(511)ax.set_title('original signal')plt.tight_layout()plt.plot(x)

"""FFT(Fast Fourier Transformation)快速傅里葉變換"""Y = fft(x, num_fft)Y = np.abs(Y)

ax=plt.subplot(512)ax.set_title('fft transform')plt.plot(20*np.log10(Y[:num_fft//2]))

"""功率譜 power spectrum直接平方"""ps = Y**2 / num_fftax=plt.subplot(513)ax.set_title('direct method')plt.plot(20*np.log10(ps[:num_fft//2]))

"""相關功譜率 power spectrum using correlate間接法"""cor_x = np.correlate(x, x, 'same')cor_X = fft(cor_x, num_fft)ps_cor = np.abs(cor_X)ps_cor = ps_cor / np.max(ps_cor)ax=plt.subplot(514)ax.set_title('indirect method')plt.plot(20*np.log10(ps_cor[:num_fft//2]))plt.tight_layout()plt.show()

代碼來源于網絡,本文對代碼進行注釋并整理

功率譜是功率譜密度(Power Spectral Density, PSD)函數的簡稱,它定義為單位頻帶內的信號功率。

它表示了信號功率隨著頻率的變化關系,即信號功率在頻域的分布狀況。

功率譜密度的單位用每赫茲的瓦特數(W/Hz)表示,

它的另一種單位 dB,當單位為dB時是因為對數據做了對數處理(10logX)

做對數處理的目的是拉高低振幅成分,便于觀察噪聲中的周期信號

功率譜估計是頻域分析的主要分析手段,我們之前看到的是幅度隨時間變化的腦電波

功率譜展現的是腦電功率隨頻率變化的頻圖。

在睡眠的分期以及智力活動與EEG之間的關系等很多方面,功率譜分析都非常有用。

MNE中專門針對Raw對象(也就是原始腦電信號),有多種繪制PSD圖的方式

1.利用plot_psd()繪制功率譜圖

2.利用plot_psd_topo()在腦地形圖上繪制功率譜圖

下面以plot_psd為例介紹一下繪制PSD的案例。

# 引入python庫import mnefrom mne.datasets import sampleimport matplotlib.pyplot as plt

# sample的存放地址data_path = sample.data_path()# 該fif文件存放地址file_name = data_path + '/MEG/sample/sample_audvis_raw.fif'

"""讀取數據文件"""raw = mne.io.read_raw_fif(file_name,preload=True)

"""繪制指定通道的功率譜圖

"""picks = ['eeg']raw.plot_psd(picks=picks)plt.show()

"""設置更窄頻率范圍

設置fmin和fmax來指定頻率的跨度。"""

picks = ['eeg']#raw.plot_psd(picks=picks,fmin=0,fmax=100)raw.plot_psd(picks=picks,fmin=0,fmax=80)plt.show()

更多閱讀

腦機接口BCI學習交流QQ群:903290195

總結

以上是生活随笔為你收集整理的python雷达信号处理,信号处理之功率谱原理与python实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。