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

您的位置:首頁技術文章
文章詳情頁

Python使用scipy.fft進行大學經典的傅立葉變換

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

傅里葉變換是在高數是一個很重要的知識點,今天將結合Python代碼實現傅立葉變換。

傅立葉變換

我們平時是如何去分解一個復雜的問題呢?一個經典的方法就是把這個復雜的問題分解成為多個簡單的可操作的子問題, 傅立葉變換也是基于這個思想。

傅里葉分析是研究如何將數學函數分解為一系列更簡單的三角函數的領域。傅里葉變換是該領域的一種工具,用于將函數分解為其分量頻率。

在本教程中,傅立葉變換是一種工具,可以獲取信號并查看其中每個頻率的功率。看一看該傅立葉變換中的重要術語:

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

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

Python使用scipy.fft進行大學經典的傅立葉變換

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

時域與頻域

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

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

Python使用scipy.fft進行大學經典的傅立葉變換

這是一些音頻的圖像,它是一個時域信號。橫軸表示時間,縱軸表示振幅。

在頻域中,信號表示為一系列頻率(x軸),每個頻率都具有關聯的功率(y軸)。下圖是經過傅立葉變換后的上述音頻信號:

Python使用scipy.fft進行大學經典的傅立葉變換

代碼實現正弦波

音頻本質上是正弦波。

下面是產生正弦波的代碼:

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# 產生持續5秒的2赫茲正弦波x, y = generate_sine_wave(2, SAMPLE_RATE, DURATION)plt.plot(x, y)plt.show()

Python使用scipy.fft進行大學經典的傅立葉變換

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

混合音頻

下面將兩個正弦波,混合音頻信號僅包括兩個步驟:

將正弦波加在一起,然后進行歸一化的操作。

具體實現的代碼如下。

_, 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

下一步是歸一化,或縮放信號以適合目標格式。由于以后將如何存儲音頻,目標格式為16位整數,范圍為-32768到32767:

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

Python使用scipy.fft進行大學經典的傅立葉變換

看到的正弦波是生成的400 Hz音調,將上面的正弦波轉化為音頻,最簡單的方法是使用SciPy的wavfile.write方法將其存儲在WAV文件中。16位整數是WAV文件的標準數據類型,因此需要將信號標準化為16位整數:

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

Python使用scipy.fft進行大學經典的傅立葉變換

這個音頻聽起來音調很高。

完成此步驟后,就當作音頻樣本了。下一步是使用傅立葉變換消除高音調!

傅立葉變換

現在對生成的音頻上使用FFT了。FFT是一種算法,可實現傅立葉變換并可以在時域中為信號計算頻譜。

from scipy.fft import fft, fftfreq# 標準化音調中的樣本數N = SAMPLE_RATE * DURATIONyf = fft(normalized_tone)xf = fftfreq(N, 1 / SAMPLE_RATE)plt.plot(xf, np.abs(yf))plt.show()

Python使用scipy.fft進行大學經典的傅立葉變換我們可以在正頻率中看到兩個峰值,正頻率峰值位于400 Hz和4000 Hz,與之前生成的音頻的頻率相對應。

計算傅里葉變換

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

上面代碼的功能

fft() 計算轉換本身。 fftfreq()計算的輸出中每個倉中心的頻率fft()。沒有這個,就無法在頻譜上繪制x軸

fft()輸出的頻譜圍繞y軸反射,因此負半部分是正半部分的鏡像,我們一般只需計算一半對稱值,即可更快地進行傅立葉變換。scipy.fft以的形式實施此速度駭客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進行大學經典的傅立葉變換

過濾信號

傅里葉變換的一大優點是它是可逆的,我們可以利用此優勢來過濾音頻并擺脫高音調頻率。

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

然后,您可以將其設置yf為0目標頻率附近的index來擺脫它:

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

Python使用scipy.fft進行大學經典的傅立葉變換

由于只有一個高峰,下面應用傅立葉逆變換返回時域。

應用逆FFT與應用FFT相似:

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

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

Python使用scipy.fft進行大學經典的傅立葉變換

現在有一個以400 Hz振蕩的正弦波,并且您已經成功地消除了4000 Hz的噪聲。

對信號進行歸一化,然后再將其寫入文件。

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

Python使用scipy.fft進行大學經典的傅立葉變換

到此這篇關于Python使用scipy.fft進行大學經典的傅立葉變換的文章就介紹到這了,更多相關Python 傅立葉變換內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久国产精品一区三寸| 欧美+亚洲+精品+三区| 免费不卡在线观看| 国产劲爆久久| 亚洲欧美日韩专区| 久久亚洲影院| 女生影院久久| 日韩在线a电影| 精品一区二区三区免费看| 精品一区二区三区的国产在线观看| 久久精品伊人| 久久国产精品久久w女人spa| 麻豆国产91在线播放| 久久亚洲影院| 欧美日韩一区二区综合| 91欧美极品| 中文无码久久精品| 午夜久久美女| 蜜桃精品在线| 麻豆精品蜜桃| 国产精品亚洲四区在线观看 | 欧美黄色精品| 日韩高清不卡一区二区| 欧美日韩日本国产亚洲在线| 欧美成人a交片免费看| 首页国产欧美日韩丝袜| 日韩av免费| 香蕉精品久久| 亚洲激情偷拍| 免费视频最近日韩| 狠狠久久婷婷| 99久久精品费精品国产| 日韩不卡在线| 999久久久精品国产| 亚洲经典在线| 日本va欧美va精品| 国产综合视频| 国产真实久久| 亚洲日本欧美| 国产精品毛片视频| 中文在线资源| 国产婷婷精品| 五月天激情综合网| 免费高清在线一区| 精品伊人久久| 亚洲一区二区av| 国产精品jk白丝蜜臀av小说| 中文在线а√在线8| 日韩黄色大片网站| 视频一区二区不卡| 精品视频黄色| 日本蜜桃在线观看视频| 自由日本语亚洲人高潮| 久久久天天操| 亚洲日本网址| 日韩一区二区三免费高清在线观看| 久久的色偷偷| 一区二区视频欧美| 久久国内精品自在自线400部| 中文字幕视频精品一区二区三区| 日韩三级精品| 免费国产自久久久久三四区久久 | 亚洲午夜电影| 国产一区白浆| 日韩88av| 日本成人在线不卡视频| 韩国精品主播一区二区在线观看 | 亚洲色图网站| 欧美日中文字幕| 你懂的国产精品永久在线| 日韩不卡免费高清视频| 综合国产精品| 久久精品电影| 电影91久久久| 青青在线精品| 日韩精品一卡| 亚洲精品九九| 亚洲色诱最新| 久久一级电影| 99热国内精品| 欧美成人基地| 日本免费久久| 麻豆成人在线观看| 午夜亚洲福利| 日韩三区四区| 欧美精品中文| 日韩高清在线不卡| 日韩一区免费| 亚洲精品乱码久久久久久蜜桃麻豆| 蜜桃成人av| 亚洲综合三区| 日本国产一区| 免费一级欧美在线观看视频| 国产精品一区高清| 亚洲色图网站| 日本免费在线视频不卡一不卡二| 视频国产精品| 精品日韩一区| 国产一区观看| 亚洲欧美专区| 午夜在线一区二区| 久久亚洲色图| 国产乱人伦丫前精品视频| 久久一区精品| 欧美成人高清| 国产一卡不卡| 欧美有码在线| 日韩美女一区二区三区在线观看| 日韩视频免费| 国产高清日韩| 日韩一区二区三区免费| 蜜臀av性久久久久蜜臀aⅴ流畅| 中文字幕一区二区三区日韩精品| 亚洲69av| www.51av欧美视频| 免费在线视频一区| 精品国产91| 极品裸体白嫩激情啪啪国产精品| 国产福利91精品一区二区| 国产精品成久久久久| 久久精品色播| 日韩欧美三级| 夜鲁夜鲁夜鲁视频在线播放| caoporn视频在线| 亚洲精品系列| 日韩三区在线| 玖玖精品视频| 欧美日韩国产观看视频| 日韩高清一区在线| 天堂av在线一区| 久久精品成人| 国产v日韩v欧美v| 日韩黄色av| 视频一区日韩精品| 丝袜诱惑制服诱惑色一区在线观看 | 精品一区av| 蜜桃av一区二区| 一区久久精品| 91成人精品| 免费精品国产的网站免费观看| 国产精品久久久久久久免费观看| 国产精品三级| 精品国产午夜肉伦伦影院| 久久不射网站| 美国三级日本三级久久99| 亚洲一区欧美| 国产日韩免费| 亚洲自啪免费| 国产成人精选| 欧美激情五月| 成人国产精选| 国产精品88久久久久久| 国产一区国产二区国产三区| 日韩欧美在线精品| 免费在线观看日韩欧美| 亚洲精品影视| 国产私拍福利精品视频二区| 精品国产亚洲日本| 国产视频一区在线观看一区免费| 精品免费在线| 久久高清免费| 蜜桃免费网站一区二区三区| 18国产精品| 精品三级久久| 蜜臀久久99精品久久久画质超高清| 日韩专区视频网站| 久久久精品区| 尹人成人综合网| 久久不卡国产精品一区二区| 韩国精品主播一区二区在线观看 | 国产一区二区三区黄网站| 国户精品久久久久久久久久久不卡| 久久av在线| 人在线成免费视频| 少妇高潮一区二区三区99| 91欧美国产| 婷婷综合电影| 自由日本语亚洲人高潮| 久久精品理论片| 91国内精品| 蜜桃久久久久久久| 亚洲五月婷婷| 三级在线看中文字幕完整版| 国产日韩高清一区二区三区在线| 久久久久久久久丰满| 欧美一级久久| 亚洲视频二区| 亚洲一区区二区| 国产综合亚洲精品一区二| 国产成年精品| 精品一区二区男人吃奶| 日韩精品亚洲专区| 伊人影院久久| 午夜一区在线| 狠狠色狠狠色综合日日tαg| 欧美精选视频一区二区| 91免费精品| 久久精品免费一区二区三区| 日韩专区精品| 99国产精品久久久久久久 |