基于Python的數(shù)字信號處理初步

姓名:韓宜真

學號:17020120095

轉載自:https://mp.weixin.qq.com/s/uTVhAWR5N1ZgoxmWL4Zj_g

【嵌牛導讀】本文介紹了一種用python進行數(shù)字信號處理的方法

【嵌牛鼻子】CPU計算能力基于python

【嵌牛提問】如何用python做信號處理?

【嵌牛正文】

Python 是目前的熱門語言,一直覺得掌握一門編程語言對作為搞技術的來說還是很有必要的喘沿,結合工作中能用到的一些數(shù)據(jù)處理和分析的內(nèi)容,覺得從數(shù)據(jù)分析入手艺挪,爭取能夠掌握Python在數(shù)據(jù)處理領域的一些應用被丧。下面是基于Python的numpy進行的數(shù)字信號的頻譜分析介紹

一儿礼、傅里葉變換

傅里葉變換是信號領域溝通時域和頻域的橋梁乍钻,在頻域里可以更方便的進行一些分析肛循。傅里葉主要針對的是平穩(wěn)信號的頻率特性分析蛛株,簡單說就是具有一定周期性的信號,因為傅里葉變換采取的是有限取樣的方式育拨,所以對于取樣長度和取樣對象有著一定的要求。

二欢摄、基于Python的頻譜分析

# _*_ coding:utf-8 _*_

import numpy as np #導入一個數(shù)據(jù)處理的模塊

import pylab as pl #導入一個繪圖模塊熬丧,matplotlib下的模塊

sampling_rate = 8000 ##取樣頻率

fft_size ?=512 ? #FFT處理的取樣長度

t = np.arange(0,1.1,1.0/sampling_rate)

#np.arange(起點,終點怀挠,間隔)產(chǎn)生1s長的取樣時間

x = np.sin(2*np.pi*156.25*t)+2*np.sin(2*np.pi*234.375*t)

#兩個正弦波疊加析蝴,156.25HZ和234.375HZ,因此如上面簡單

#的介紹FFT對于取樣時間有要求绿淋,

#N點FFT進行精確頻譜分析的要求是N個取樣點包含整數(shù)個

#取樣對象的波形闷畸。

#因此N點FFT能夠完美計算頻譜對取樣對象的要求

#是n*Fs/N(n*采樣頻率/FFT長度),

#因此對8KHZ和512點而言吞滞,

#完美采樣對象的周期最小要求是8000/512=15.625HZ,

#所以156.25的n為10,234.375的n為15佑菩。

xs = x[:fft_size]# 從波形數(shù)據(jù)中取樣fft_size個點進行運算

xf = np.fft.rfft(xs)/fft_size # 利用np.fft.rfft()進行FFT計算,rfft()是為了更方便

#對實數(shù)信號進行變換裁赠,由公式可知/fft_size為了正確顯示波形能量

# rfft函數(shù)的返回值是N/2+1個復數(shù)殿漠,分別表示從0(Hz)

#到sampling_rate/2(Hz)的分。

#于是可以通過下面的np.linspace計算出返回值中每個下標對應的真正的頻率:

freqs = np.linspace(0,sampling_rate/2,fft_size/2+1)

# np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)?

#在指定的間隔內(nèi)返回均勻間隔的數(shù)字

xfp = 20*np.log10(np.clip(np.abs(xf),1e-20,1e1000))

#最后我們計算每個頻率分量的幅值佩捞,并通過 20*np.log10()?

#將其轉換為以db單位的值绞幌。為了防止0幅值的成分造成log10無法計算,

#我們調(diào)用np.clip對xf的幅值進行上下限處理

pl.figure(figsize=(8,4))

pl.subplot(211)

pl.plot(t[:fft_size], xs)

pl.xlabel(u"時間(秒)")

pl.title(u"The Wave and Spectrum 156.25Hz234.375Hz")

pl.subplot(212)

pl.plot(freqs, xfp)

pl.xlabel(u"Hz")

pl.subplots_adjust(hspace=0.4)

pl.show()

#繪圖顯示結果

現(xiàn)在來看看頻譜泄露一忱,將采樣對象的頻率改變

x = np.sin(2*np.pi*100*t)+2*np.sin(2*np.pi*234.375*t)

我們明顯看出莲蜘,第一個對象的頻譜分析出現(xiàn)“泄露”,能量分散到其他頻率上帘营,

沒法準確計算到計算對象的頻譜特性票渠。

窗函數(shù)

上面我們可以看出可以通過加“窗”函數(shù)的方法來處理,盡量保證FFT長度內(nèi)

的取樣對象是對稱的仪吧。

import pylab as pl

import scipy.signal as signal

pl.figure(figsize=(8,3))

pl.plot(signal.hann(512))#漢明窗函數(shù)?

pl.show()

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庄新,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子薯鼠,更是在濱河造成了極大的恐慌择诈,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件出皇,死亡現(xiàn)場離奇詭異羞芍,居然都是意外死亡,警方通過查閱死者的電腦和手機郊艘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門荷科,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唯咬,“玉大人,你說我怎么就攤上這事畏浆〉ㄒ龋” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵刻获,是天一觀的道長蜀涨。 經(jīng)常有香客問我,道長蝎毡,這世上最難降的妖魔是什么厚柳? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮沐兵,結果婚禮上别垮,老公的妹妹穿的比我還像新娘。我一直安慰自己扎谎,他們只是感情好碳想,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毁靶,像睡著了一般移袍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上老充,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天葡盗,我揣著相機與錄音,去河邊找鬼啡浊。 笑死觅够,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的巷嚣。 我是一名探鬼主播喘先,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼廷粒!你這毒婦竟也來了窘拯?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤坝茎,失蹤者是張志新(化名)和其女友劉穎涤姊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗤放,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡思喊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了次酌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恨课。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡舆乔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出剂公,到底是詐尸還是另有隱情希俩,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布纲辽,位于F島的核電站斜纪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏文兑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一腺劣、第九天 我趴在偏房一處隱蔽的房頂上張望绿贞。 院中可真熱鬧,春花似錦橘原、人聲如沸籍铁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拒名。三九已至,卻和暖如春芋酌,著一層夾襖步出監(jiān)牢的瞬間增显,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工脐帝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留同云,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓堵腹,卻偏偏與公主長得像炸站,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疚顷,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容