日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

瀏覽:36日期:2022-06-17 18:05:29

傅里葉變換是在高數(shù)是一個(gè)很重要的知識(shí)點(diǎn),今天將結(jié)合Python代碼實(shí)現(xiàn)傅立葉變換。

傅立葉變換

我們平時(shí)是如何去分解一個(gè)復(fù)雜的問題呢?一個(gè)經(jīng)典的方法就是把這個(gè)復(fù)雜的問題分解成為多個(gè)簡(jiǎn)單的可操作的子問題, 傅立葉變換也是基于這個(gè)思想。

傅里葉分析是研究如何將數(shù)學(xué)函數(shù)分解為一系列更簡(jiǎn)單的三角函數(shù)的領(lǐng)域。傅里葉變換是該領(lǐng)域的一種工具,用于將函數(shù)分解為其分量頻率。

在本教程中,傅立葉變換是一種工具,可以獲取信號(hào)并查看其中每個(gè)頻率的功率??匆豢丛摳盗⑷~變換中的重要術(shù)語(yǔ):

信號(hào):信號(hào)是隨時(shí)間變化的信息。例如,音頻,視頻和電壓走線都是信號(hào)的示例。 頻率:頻率是某物重復(fù)的速度。例如,時(shí)鐘以1赫茲(Hz)的頻率滴答,或每秒重復(fù)1次。 功率:功率表示每個(gè)頻率的強(qiáng)度。

下圖是一些正弦波的頻率和功率的直觀演示:

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

第一個(gè)是低頻正弦波,第二個(gè)是高頻正弦波,第三個(gè)是低頻低功率正弦波,因此低功率正弦波比其它兩個(gè)正弦波的峰較小。

時(shí)域與頻域

時(shí)域與頻域是查看信號(hào)的兩種不同方式,即信號(hào)的組成頻率或隨時(shí)間變化的信息。

在時(shí)域中,信號(hào)是隨時(shí)間(x軸)幅度(y軸)變化的波。您最有可能在時(shí)域中查看圖表,例如:

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

這是一些音頻的圖像,它是一個(gè)時(shí)域信號(hào)。橫軸表示時(shí)間,縱軸表示振幅。

在頻域中,信號(hào)表示為一系列頻率(x軸),每個(gè)頻率都具有關(guān)聯(lián)的功率(y軸)。下圖是經(jīng)過傅立葉變換后的上述音頻信號(hào):

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

代碼實(shí)現(xiàn)正弦波

音頻本質(zhì)上是正弦波。

下面是產(chǎn)生正弦波的代碼:

import numpy as npfrom matplotlib import pyplot as pltSAMPLE_RATE = 44100 # 赫茲DURATION = 5 # 秒def generate_sine_wave(freq, sample_rate, duration): x = np.linspace(0, duration, sample_rate * duration, endpoint=False) frequencies = x * freq y = np.sin((2 * np.pi) * frequencies) return x, y# 產(chǎn)生持續(xù)5秒的2赫茲正弦波x, y = generate_sine_wave(2, SAMPLE_RATE, DURATION)plt.plot(x, y)plt.show()

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

x軸以秒為單位表示時(shí)間,并且由于每秒鐘的時(shí)間都有兩個(gè)峰值,因此可以看到正弦波每秒振蕩兩次。

混合音頻

下面將兩個(gè)正弦波,混合音頻信號(hào)僅包括兩個(gè)步驟:

將正弦波加在一起,然后進(jìn)行歸一化的操作。

具體實(shí)現(xiàn)的代碼如下。

_, nice_tone = generate_sine_wave(400, SAMPLE_RATE, DURATION)_, noise_tone = generate_sine_wave(4000, SAMPLE_RATE, DURATION)noise_tone = noise_tone * 0.3mixed_tone = nice_tone + noise_tone

下一步是歸一化,或縮放信號(hào)以適合目標(biāo)格式。由于以后將如何存儲(chǔ)音頻,目標(biāo)格式為16位整數(shù),范圍為-32768到32767:

normalized_tone = np.int16((mixed_tone / mixed_tone.max()) * 32767)plt.plot(normalized_tone[:1000])plt.show()

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

看到的正弦波是生成的400 Hz音調(diào),將上面的正弦波轉(zhuǎn)化為音頻,最簡(jiǎn)單的方法是使用SciPy的wavfile.write方法將其存儲(chǔ)在WAV文件中。16位整數(shù)是WAV文件的標(biāo)準(zhǔn)數(shù)據(jù)類型,因此需要將信號(hào)標(biāo)準(zhǔn)化為16位整數(shù):

from scipy.io.wavfile import write# 記住,采樣率=44100赫茲是我們的播放率write('mysinewave.wav', SAMPLE_RATE, normalized_tone)

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

這個(gè)音頻聽起來音調(diào)很高。

完成此步驟后,就當(dāng)作音頻樣本了。下一步是使用傅立葉變換消除高音調(diào)!

傅立葉變換

現(xiàn)在對(duì)生成的音頻上使用FFT了。FFT是一種算法,可實(shí)現(xiàn)傅立葉變換并可以在時(shí)域中為信號(hào)計(jì)算頻譜。

from scipy.fft import fft, fftfreq# 標(biāo)準(zhǔn)化音調(diào)中的樣本數(shù)N = SAMPLE_RATE * DURATIONyf = fft(normalized_tone)xf = fftfreq(N, 1 / SAMPLE_RATE)plt.plot(xf, np.abs(yf))plt.show()

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換我們可以在正頻率中看到兩個(gè)峰值,正頻率峰值位于400 Hz和4000 Hz,與之前生成的音頻的頻率相對(duì)應(yīng)。

計(jì)算傅里葉變換

yf = fft(normalized_tone)xf = fftfreq(N, 1 / SAMPLE_RATE)

上面代碼的功能

fft() 計(jì)算轉(zhuǎn)換本身。 fftfreq()計(jì)算的輸出中每個(gè)倉(cāng)中心的頻率fft()。沒有這個(gè),就無法在頻譜上繪制x軸

fft()輸出的頻譜圍繞y軸反射,因此負(fù)半部分是正半部分的鏡像,我們一般只需計(jì)算一半對(duì)稱值,即可更快地進(jìn)行傅立葉變換。scipy.fft以的形式實(shí)施此速度駭客rfft()。

from scipy.fft import rfft, rfftfreq# 注意前面多余的“r”yf = rfft(normalized_tone)xf = rfftfreq(N, 1 / SAMPLE_RATE)plt.plot(xf, np.abs(yf))plt.show()

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

過濾信號(hào)

傅里葉變換的一大優(yōu)點(diǎn)是它是可逆的,我們可以利用此優(yōu)勢(shì)來過濾音頻并擺脫高音調(diào)頻率。

# 最大頻率為采樣率的一半points_per_freq = len(xf) / (SAMPLE_RATE / 2)# 我們的目標(biāo)頻率是4000赫茲 將44100變成4000target_idx = int(points_per_freq * 4000)

然后,您可以將其設(shè)置yf為0目標(biāo)頻率附近的index來擺脫它:

yf[target_idx - 1 : target_idx + 2] = 0plt.plot(xf, np.abs(yf))plt.show()

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

由于只有一個(gè)高峰,下面應(yīng)用傅立葉逆變換返回時(shí)域。

應(yīng)用逆FFT與應(yīng)用FFT相似:

from scipy.fft import irfftnew_sig = irfft(yf)plt.plot(new_sig[:1000])plt.show()

由于您正在使用rfft(),因此需要使用irfft()來應(yīng)用反函數(shù)。但是,如果您使用過fft(),則反函數(shù)將是ifft()。現(xiàn)在,您的繪圖應(yīng)如下所示:

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

現(xiàn)在有一個(gè)以400 Hz振蕩的正弦波,并且您已經(jīng)成功地消除了4000 Hz的噪聲。

對(duì)信號(hào)進(jìn)行歸一化,然后再將其寫入文件。

norm_new_sig = np.int16(new_sig * (32767 / new_sig.max()))write('clean.wav', SAMPLE_RATE, norm_new_sig)

Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換

到此這篇關(guān)于Python使用scipy.fft進(jìn)行大學(xué)經(jīng)典的傅立葉變換的文章就介紹到這了,更多相關(guān)Python 傅立葉變換內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人日韩精品| 精品亚洲成人| 激情婷婷综合| 国产+成+人+亚洲欧洲在线| 久久久精品区| 91亚洲国产| 国产精品成人国产| 国产精品自拍区| 精品99久久| 蜜桃视频免费观看一区| 日本aⅴ免费视频一区二区三区| 久久亚洲色图| 午夜久久av| 亚洲中字黄色| 日韩啪啪电影网| 久久精品免费一区二区三区| 色婷婷狠狠五月综合天色拍| 日本中文字幕一区二区视频 | 视频一区欧美日韩| 四虎884aa成人精品最新| 免费在线观看一区| 久久国产精品免费一区二区三区| 国产精品三p一区二区| 首页欧美精品中文字幕| 欧美1区免费| 欧洲激情综合| 蜜臀91精品一区二区三区| 国产视频一区三区| 视频精品一区| 久久最新视频| 91九色精品国产一区二区| 鲁鲁在线中文| 国产成人精品三级高清久久91| 国产精品一区二区美女视频免费看| 亚洲精品自拍| 亚洲精品大片| 久久av影视| 麻豆国产欧美一区二区三区| 欧美一级一区| 国产麻豆精品| 美腿丝袜亚洲三区| 美腿丝袜在线亚洲一区| 老司机免费视频一区二区| 精品三级在线观看视频| 蜜臀久久精品| 免费观看亚洲| 欧美天堂视频| 妖精视频成人观看www| 激情五月综合| 亚洲女同中文字幕| 国产精品毛片视频| 欧美亚洲tv| 国产一区二区三区探花| 免费毛片在线不卡| 国产模特精品视频久久久久| 日韩精品一级二级 | 日产精品一区二区| 婷婷色综合网| 成人免费电影网址| 亚洲综合日韩| 国产精品欧美大片| 久久婷婷一区| 91国内精品| 久久影院午夜精品| 欧美精品黄色| 日韩高清一区| 日韩电影二区| 蜜桃av一区二区在线观看| 日韩成人午夜精品| 精品视频在线一区二区在线| 欧美sm一区| 日韩精品欧美成人高清一区二区| 国产一区二区精品久| 电影91久久久| 久久精品免费一区二区三区| 日韩一区二区三区精品| 中文字幕一区久| 黄色成人精品网站| 国产欧美欧美| 欧美日韩激情| 日韩一区二区三区四区五区 | 午夜视频一区二区在线观看| 国产v日韩v欧美v| 亚洲激精日韩激精欧美精品| 午夜天堂精品久久久久| 亚洲精品**中文毛片| 亚洲区欧美区| 免费日韩一区二区三区| 欧美日韩国产一区二区三区不卡| 亚洲深夜福利| sm久久捆绑调教精品一区| 日韩精品高清不卡| 福利视频一区| 在线免费观看亚洲| 精品日韩视频| 亚洲免费成人av在线| 国产一区二区久久久久| 亚洲综合丁香| 首页国产精品| 欧美精品福利| 在线精品亚洲| 神马午夜久久| 天堂va欧美ⅴa亚洲va一国产| 国产aⅴ精品一区二区四区| 日本色综合中文字幕| 丝袜a∨在线一区二区三区不卡| 深夜视频一区二区| 久久gogo国模啪啪裸体| 三级欧美韩日大片在线看| 亚洲18在线| 国产免费成人| 国产视频一区在线观看一区免费| 国产aa精品| 欧美午夜三级| 亚洲精品大片| 黑丝一区二区| 美女视频黄 久久| 免费一区二区视频| 欧美亚洲国产精品久久| 欧美日韩尤物久久| 亚洲欧美日本国产| 亚洲精品一区二区妖精| 免费观看久久av| 欧洲av一区二区| 不卡专区在线| 91亚洲自偷观看高清| 国产麻豆精品久久| 国产精品久久免费视频| 国产精品一区免费在线| 欧美成人国产| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 怡红院精品视频在线观看极品| 麻豆精品视频在线| 日本不卡高清视频| 9久re热视频在线精品| 国产精品视区| 在线亚洲欧美| 国产一区导航| 久久国产精品成人免费观看的软件| 麻豆成人在线| 欧洲av一区二区| 日本午夜精品久久久久| 悠悠资源网久久精品| 神马久久午夜| 97在线精品| 欧美少妇精品| 欧美精品第一区| 国产乱子精品一区二区在线观看 | 午夜欧美巨大性欧美巨大| 精品视频自拍| 久久99高清| 老牛影视精品| 日韩中文首页| 亚洲大片在线| 激情欧美亚洲| 精品久久一区| 欧洲一区二区三区精品| 91精品观看| 亚洲美洲欧洲综合国产一区| 日韩久久精品网| 99久久久久国产精品| 日本在线精品| 亚洲午夜精品久久久久久app| 久久久国产亚洲精品| 亚洲天堂黄色| 蜜臀av一区二区在线免费观看| 亚洲精品免费观看| 日韩1区2区日韩1区2区| 麻豆精品在线观看| 久久精品国产www456c0m| 99国产精品私拍| 亚洲综合中文| 国产精品羞羞答答在线观看| 日韩欧美一区二区三区在线视频 | 精品国产aⅴ| 999精品色在线播放| 免费久久久久久久久| 在线国产一区| 亚洲91在线| 91亚洲国产高清| 亚洲手机在线| 蜜臀av在线播放一区二区三区| 69堂免费精品视频在线播放| 美女性感视频久久| 天堂资源在线亚洲| 蜜桃视频一区二区三区| 国产精品一区二区av日韩在线| 日本一区二区中文字幕| 久久激情综合网| 日韩精品欧美激情一区二区| 尤物在线精品| 欧美亚洲人成在线| 天堂中文av在线资源库| 综合亚洲视频| 国产夫妻在线| 国产一级一区二区| 国产精品成人一区二区网站软件| 精品成av人一区二区三区 | 亚洲乱码一区| 高清av一区|