日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

M 点滑动平均 Python 实现

發布時間:2025/3/19 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 M 点滑动平均 Python 实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1. 需要的 Python 庫

2. 一些主要的信號

(1)原始信號

(2)噪聲信號

(3)對原始信號加噪

(4)進行 M 點平均

3. 對系統的探究

(1)單位沖擊響應

(2)頻響


對于該滑動平均的具體介紹以及 Matlab 實現方法可以參考下面的這篇文章

M 點滑動平均 Matlab 實現

1. 需要的 Python 庫

Python 的好處就在于大量的庫文件,使用它們可以很好的進行工程處理,甚至與 Matlab 相比擬,在這次實現中,我們主要需要的是畫圖、傅里葉變換等操作

import numpy as np import matplotlib.pyplot as plt import scipy.fftpack

2. 一些主要的信號

(1)原始信號

隨便生成一個如下的正弦信號:

Fs = 1 size = 100 n = np.arange(0, size) / Fs a = np.sin(0.1 * np.pi * n) plt.title("Original Signal") plt.xlabel("n") plt.ylabel("a") plt.stem(n, a) # plt.savefig("E:\Python\Mpoint\ Original Signal") #生成的圖片進行保存 plt.show() #展示圖片

得到的圖片如下:

(2)噪聲信號

b = 0.1 * np.random.randn(size) #生成 size 長度的噪聲信號 plt.title("Noise") plt.xlabel("n") plt.ylabel("b") plt.stem(n, b) # plt.savefig("E:\Python\Mpoint\ Noise Signal") plt.show()

得到的噪聲信號如下:

(3)對原始信號加噪

簡單的信號加法操作

c = a + b plt.title("Signal added noise") plt.xlabel("n") plt.ylabel("c") plt.stem(n, c) # plt.savefig("E:\Python\Mpoint\ Signal added noise") plt.show()

得到如下信號:

(4)進行 M 點平均

s = np.zeros(100) k = np.arange(0, size) for i in k:for j in np.arange(0, 4): # M 為 5 的滑動平均s[k] = s[k] + c[k - j]s[k] = 1 / 5 * s[k] plt.title("Signal after filtering") plt.xlabel("n") plt.ylabel("d") plt.stem(k, s) # plt.savefig("E:\Python\Mpoint\ Signal after filtering") plt.show()

得到滑動平均后的信號如下:

3. 對系統的探究

(1)單位沖擊響應

u = np.zeros(100) l = {0, 1, 2, 3, 4} #其實就是 u[n] - u[n - 5],再取 1/M for x in l:u[x] = 1 plt.title("Unit impulse response") plt.xlabel("n") plt.ylabel("u") plt.stem(k, u) # plt.savefig("E:\Python\Mpoint\ Unit impulse response") plt.show()

(2)頻響

h = scipy.fftpack.fft(u) # 頻響就是對單位沖擊響應的傅里葉變化 plt.title("Frequency response") plt.xlabel("n") plt.ylabel("h") plt.plot(abs(h)) # plt.savefig("E:\Python\Mpoint\ Frequency response") plt.show()

?

?

總結

以上是生活随笔為你收集整理的M 点滑动平均 Python 实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。