Python FFT的輸入與輸出分析

2021-10-10 21:27:56 字數 1344 閱讀 9988

本文簡述如何使用numpy的fft lib進行快速傅利葉變換,以及對fft變換後結果的分析。由於水平有限,不當之處望指正。

使用如下**生成仿結他c和弦聲音片段,如下**所示。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

import librosa

import ipython.display as ipd

sr = 8000

l = 3

t = sr * l

t = np.array(range(0, t)) / sr

x = np.sin(2 * np.pi * 130.81 * t) + 0.8 * np.sin(2 * np.pi * 164.81 * t) + 1.2 * np.sin(2 * np.pi * 196.00 * t)

x = x / max(x)

ipd.audio(x, rate=sr)

上述**中:

numpy的fft變換非常簡單,使用fft()函式即可。

y = np.fft.fft(x)
所以,如何讀懂fft的返回結果y呢?使用如下**將fft的返回結果y對映到頻率上即可:

上述使用3秒的資料(24000個點)分析頻率特徵比較消耗計算時間,也可以通過更少的資料來分析,如下述**使用1024個取樣點。由於取樣點變少,而分析的頻率範圍(0 ~ 8000hz)不變,因此輸出結果的精度降低了。

輸入與輸出

在c 程式中,輸入與輸出可以看做是一連串的資料流,輸入即可視為從檔案或鍵盤中輸入程式中的一串資料流,而輸出則可以視為從程式中輸出一連串的資料流到顯示屏或檔案中。在編寫c 程式時,如果需要使用輸入輸出時,則需要包含標頭檔案 在 中定義了用於輸入輸出的物件,例如常見的 cin 表示標準輸入 cout 表...

輸入與輸出

2.文字輸入與輸出 3.讀寫二進位制資料 4.zip文件 物件序列化 反序列化 操作檔案 記憶體對映檔案 輸入流 輸出流 inputstream outputstream read write int b 均為阻塞方法 應該被正確關閉。注意 close flush 均會沖刷輸出流的緩衝區,如果不正確...

python的輸入與輸出 python輸入與輸出

python格式化輸出的方法 要使用 格式化字串字面值 請在字串的開始引號或三引號之前加上乙個 f 或 f 在此字串中,你可以在 字元之間寫可以引用的變數或字面值的 python 表示式。yes votes 42 572 654 no votes 43 132 495 percentage yes ...