MATLAB和scipy計算巴特沃斯通帶濾波的比較

2021-07-29 21:47:58 字數 2203 閱讀 7836

最近從matlab轉到python進行科學計算,來比較下matlab和scipy計算巴特沃斯通帶濾波的效果。

clear; close all; clc;

samprat = 100.0; %取樣頻率

t = 10;

t = 0:1/samprat:(t*samprat-1)/samprat;

x = 5*sin(2*pi*t*5)+10*sin(2*pi*t*25);

ff = fft(x);

ff = abs(ff);

ff = ff*2/t/samprat;

f = 0.0:1/t:(samprat-1/t);

figure()

plot(f, ff);

title('濾波前');

[b,a] = butter(4,[0.01/(samprat/2),15/(samprat/2)]);%設計butterworth濾波器(帶通)

y =filter(b,a,x);

fff = fft(y);

fff = abs(fff);

fff = fff*2/t/samprat;

figure()

plot(f, fff)

title('濾波後');

plt.title('濾波前的頻譜')

plt.show()

ff = np.fft.fft(filtery)

ff = np.abs(ff)*2/t/samprat

plt.figure()

plt.plot(f, ff)

plt.title('濾波後的頻譜')

Scipy 高階科學計算

轉 scipy scipy包包含致力於科學計算中常見問題的各個工具箱。它的不同子模組相應於不同的應用。像插值,積分,優化,影象處理,特殊函式等等。scipy可以與其它標準科學計算程式庫進行比較,比如gsl gnu c或c 科學計算庫 或者matlab工具箱。scipy是python中科學計算程式的核...

SciPy 數值計算庫(一)

假設有一組實驗資料 x i y i 我們知道它們之間的函式關係 y f x 通過這些已知資訊,需要確定函式中的一些引數項。例如,如果f是乙個線型函式f x k x b,那麼引數k和b就是我們需要確定的值。如果將這些引數用 p 表示的話,那麼我們就是要找到一組 p 值使得如下公式中的s函式最小 s p...

Scipy空間 計算凸包(convexHull

凸包 數學上指,在實向量空間v中的一組點x的凸包或凸包絡是包含x的最小凸集。通俗的來說就是包圍一組散點的最小凸邊形。在scipy.spatial 中計算凸包的函式,scipy中convexhull輸入的引數可以是m2的點座標。其返回值的屬性.verticess是所有凸輪廓點在散點 m2 中的索引值。...