在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FIR連續(xù)采樣分段卷積時域重疊相加法

安費諾傳感器學堂 ? 來源:安費諾傳感器學堂 ? 2024-06-14 10:30 ? 次閱讀

在上一個文檔里,我們提到了FIR系統(tǒng)在時域的分段卷積中使用“重疊保留(Overlap-Save)”的處理方式,這里我們續(xù)集,說明一下“重疊相加(Overlap-Add)”的處理方式。 信號處理在時域和頻域中處理是有差異的。 說得通俗一點就是:時域中處理是直接用采集到的信號進行計算;而頻域中則要用離散傅里葉變換(DFT)/離散傅里葉反變換(IDFT)對采集到的信號進行轉(zhuǎn)換到頻域,然后再從頻域轉(zhuǎn)回時域處理。

在我們看到的參考文檔[1]中,描述的是在頻域進行DFT,然后由IDFT轉(zhuǎn)回時域處理的過程。如下圖所示。大概的過程是:

每次處理的數(shù)據(jù)長度為L,然后在每分段的尾部添加(M-1)個0之后,讓每次處理的數(shù)據(jù)序列長度N=L+M-1,通常N為2的冪次倍;

同時對于濾波器,也需要將原來長度為b的序列,通過填0的方式增加到長度為N;

由DFT將兩個數(shù)列分別轉(zhuǎn)換到頻域,相乘后,再IDFT轉(zhuǎn)回時域,就得到N=(L+M-1)的時域卷積結(jié)果;

保留每次操作的所有數(shù)據(jù),然后在下一次操作結(jié)束后,將最新數(shù)據(jù)的最前面的(M-1)個結(jié)果數(shù)據(jù)和上一次結(jié)果數(shù)據(jù)的最后(M-1)個數(shù)據(jù)順序相加......持續(xù)直至結(jié)束。

3b52778c-2986-11ef-a4c8-92fbcf53809c.png

FIR頻域的重疊相加示意圖

我們看看時域的卷積應該怎么操作。

3b759190-2986-11ef-a4c8-92fbcf53809c.png

FIR時域重疊相加操作示意圖

如上圖所示:

每次讀取長為L的數(shù)據(jù)序列,然后與長度為M的濾波器進行卷積,生成一個(L+M-1)的卷積結(jié)果序列;

保留每次操作的所有數(shù)據(jù),然后在下一次操作結(jié)束后,將最新數(shù)據(jù)的最前面的(M-1)個結(jié)果數(shù)據(jù)和上一次結(jié)果數(shù)據(jù)的最后(M-1)個數(shù)據(jù)順序相加......持續(xù)直至結(jié)束。

兩個過程看起來略有差異,甚至會覺得時域的處理更簡單省事,會不會更省時?其實頻域看起來費時,但數(shù)據(jù)規(guī)模到了一定程度之后,頻域的處理速度就具有優(yōu)勢了。然而對于一般的應用,直接卷積操作還是可以接受的。

還記得上次我們提到Python中卷積函數(shù)np.convolve的三種模式吧?該函數(shù)對卷積是在時域中進行的。

在Python中,卷積函數(shù)np.convolve(data_segment, b, mode)對指定長度的數(shù)據(jù)data_segment(長度L),和FIR濾波器系數(shù)序列b(長度M)進行卷積。輸出的結(jié)果序列則分為以下三種:

full:結(jié)果長度=M+L-1

same:結(jié)果長度=max(M,L)

valid:結(jié)果長度=max(M,L)-min(M,L)+1=L-(M-1)

在這里,我們需要選用full模式,這樣就獲取每段卷積一個不落的所有數(shù)據(jù)(L+M-1)。先看模擬效果后看Python代碼。 故事情節(jié)設定:50Hz的信號中,夾雜300,450Hz的干擾。濾除干擾。

3b92b48c-2986-11ef-a4c8-92fbcf53809c.png

FIR選頻濾波器的幅頻響應

3ba70892-2986-11ef-a4c8-92fbcf53809c.png

FIR系統(tǒng)重疊相加的濾波結(jié)果示意圖

這里要特別說明一點:卷積后的數(shù)據(jù)長度,最終會比原來的數(shù)多出(M-1)個,所以輸出到圖的時候,需要有意控制長度。 濾波過程中要經(jīng)歷“熱身”,所以最開始階段有(M-1)個數(shù)據(jù)也是可以剔除的。同樣,如果我們看卷積最終結(jié)果尾部不處理,也有(M-1)個無效數(shù)據(jù)的輸出需要截取。

3bd9424e-2986-11ef-a4c8-92fbcf53809c.png

卷積后尾部無效數(shù)據(jù)(M-1)

上代碼,我們自己在代碼中劃重點,并調(diào)整輸出結(jié)果的有效長度范圍:

import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
from scipy.fft import fft
import math


# 創(chuàng)建帶通濾波器
f1 = 40
f2 = 60
filter_len = 80     # 濾波器長度
fs = 1600           # 采樣頻率維持不變


b = signal.firwin(filter_len, [f1, f2], pass_zero=False, fs=fs)


# 設置數(shù)據(jù)長度
seg_filter_len = 256                            # filter output length of each segment data
segment_len = seg_filter_len - filter_len + 1   # 分段數(shù)據(jù)目標長度 seg_filter_len = segment_len + filter_len - 1
target_length = segment_len * 50                # 總數(shù)據(jù)長度


# 而新的時間序列的上限 b
bspace = target_length / fs


# 生成的時間序列為L的整數(shù)倍,模擬每次采樣的數(shù)據(jù)的長度
t = np.arange(0, bspace, 1/fs)


# 產(chǎn)生一個含有300Hz,450Hz和50Hz信號的模擬信號
x = np.sin(2 * np.pi * 50 * t) + 0.5 * np.sin(2 * np.pi * 300 * t) + 0.5 * np.sin(2 * np.pi * 450 * t)


segments = []
for i in range(0, len(x), segment_len):
    segments.append(x[i:i+segment_len])


#Filtering&Overlap-Add processing
# Total outputput buffer, len = target_length + filter_len - 1
filtered_signals = np.zeros(target_length + filter_len - 1)             
for i in range(len(segments)):
    filtered_segment = np.convolve(segments[i], b, mode='full')    # full模式用于保留所有卷積結(jié)果 N = L + M -1
    filtered_signals[i*segment_len:i*segment_len+len(filtered_segment)] += filtered_segment # 疊加過程


filtered_signals = filtered_signals#[:target_length] # 保留和原信號等長的部分


#FilterFreqResponse
w, h = signal.freqz(b, 1, fs=fs)
plt.figure()
plt.plot(w, abs(h))
plt.title('Filter Freq Response')
plt.grid()
plt.xlabel('f[Hz]')
plt.ylabel('Amplitude')


# Signal Before filtering & Spectrum
n = len(x)
freq = np.fft.fftfreq(n, 1/fs)
y = np.fft.fft(x)


plt.figure()
plt.subplot(221)
plt.plot(t[:500], x[:500])
plt.title('Original Signal')
plt.subplot(222)
plt.plot(freq[:n//2], np.abs(y[:n//2]*2/n)) # 標幺,繪制前一半
plt.title('SpectrumofOrginalSignal')
plt.grid()


#SignalAfterfiltering & Spectrum
n = len(x)
y = np.fft.fft(filtered_signals)


plt.subplot(223)
# 1. Normal output
plt.plot(t[:500], filtered_signals[:500])
plt.title('Filtered Signal')
plt.subplot(224)
plt.plot(freq[:n//2], np.abs(y[:n//2]*2/n)) # 標幺,繪制前一半
plt.title('Spectrum of Filtered Signal')
plt.grid()


plt.tight_layout()


plt.show()


# 2. End of convolution without end cutoff: for test purpose
plt.figure()
temp = t[8000:8850]
s = filtered_signals[8079:8929]
plt.plot(temp, s)
plt.title('Filtered Signal')
plt.grid()
plt.show()

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)字濾波器
    +關(guān)注

    關(guān)注

    4

    文章

    270

    瀏覽量

    47026
  • FIR
    FIR
    +關(guān)注

    關(guān)注

    4

    文章

    146

    瀏覽量

    33173
  • 信號
    +關(guān)注

    關(guān)注

    11

    文章

    2791

    瀏覽量

    76764

原文標題:數(shù)字濾波器(5)—FIR連續(xù)采樣分段卷積時域重疊相加法

文章出處:【微信號:安費諾傳感器學堂,微信公眾號:安費諾傳感器學堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    運算放大器的同相加法器和反相加法

      運算放大器構(gòu)成加法器 可以分為同相加法器和反相加法
    發(fā)表于 08-05 17:17 ?3.1w次閱讀
    運算放大器的同<b class='flag-5'>相加法</b>器和反<b class='flag-5'>相加法</b>器

    求函數(shù)計算序列線性卷積結(jié)果

    定義一個函數(shù)文件,功能是采用重疊相加法完成無限長序列與有限長序列的線性卷積,然后用該函數(shù)文件計算序列x[k]=2k+1,0≤k≤18與序列h[k]={1,2,3,4;k=0,1,2,3}的線性
    發(fā)表于 11-29 13:36

    畢業(yè)設計_分段卷積MATLAB仿真與DSP實現(xiàn)

    相加法重疊保留法。每種方法先對輸入序列進行分段,再將各段進行快速傅里葉變換,接著進行傅里葉逆變換得到各段輸出,將輸出結(jié)果進行處理就得到了最終結(jié)果
    發(fā)表于 12-25 13:43

    采樣的頻域效應解析

    來看看。  首先要記住的是,時域信號相乘相當于頻域卷積。因此,我們可以通過將原始信號的傅立葉變換與增量函數(shù)的傅立葉變換進行卷積,從而得到采樣信號的傅立葉變換。  事實證明,增量函數(shù)的傅
    發(fā)表于 09-02 17:42

    相加法電路(由LF155組成的)

    相加法電路(由LF155組成的)
    發(fā)表于 01-21 14:16 ?5059次閱讀
    同<b class='flag-5'>相加法</b>電路(由LF155組成的)

    相加法電路

    相加法運算電路為若干個輸入信號從集成運放的反相輸入端引入,輸出信號為它們反相按比例放大的代數(shù)和。
    發(fā)表于 09-22 11:44 ?3327次閱讀
    反<b class='flag-5'>相加法</b>電路

    相加法器電路原理與同相加法器計算

    相加法器輸入阻抗高,輸出阻抗低 反相加法器輸入阻抗低,輸出阻抗高.加法器是一種數(shù)位電路,其可進行數(shù)字的加法計算。當選用同相加法器時,如A輸
    發(fā)表于 09-13 17:23 ?5.8w次閱讀
    同<b class='flag-5'>相加法</b>器電路原理與同<b class='flag-5'>相加法</b>器計算

    運算電路:同相加法運算電路與反相加法運算電路解析

    加法運算電路能實現(xiàn)多個模擬量的求和運算。圖1所示為一個3個輸入信號的反相加法運算電路。
    發(fā)表于 05-15 09:41 ?21.1w次閱讀
    運算電路:同<b class='flag-5'>相加法</b>運算電路與反<b class='flag-5'>相加法</b>運算電路解析

    加法器與減法器_反相加法器與同相加法

    加法器是產(chǎn)生數(shù)的和的裝置。加數(shù)和被加數(shù)為輸入,和數(shù)與進位為輸出的裝置為半加器。減法電路是基本集成運放電路的一種,減法電路可以由反相加法電路構(gòu)成,也可以由差分電路構(gòu)成。基本集成運放電路有加、減、積分和微分等四種運算。一般是由集成運放外加反饋網(wǎng)絡所構(gòu)成的運算電路來實現(xiàn)。
    發(fā)表于 08-16 11:09 ?16.7w次閱讀
    <b class='flag-5'>加法</b>器與減法器_反<b class='flag-5'>相加法</b>器與同<b class='flag-5'>相加法</b>器

    連續(xù)時間系統(tǒng)時域分析的MATLAB實現(xiàn)

    掌握應用 MATLAB 實現(xiàn)對線性時不變連續(xù)時間系統(tǒng)的時域分析,即熟悉應用 MATLAB 實現(xiàn)微分方程的求解、連續(xù)時間信號卷積計算等。
    發(fā)表于 11-10 08:00 ?0次下載
    <b class='flag-5'>連續(xù)</b>時間系統(tǒng)<b class='flag-5'>時域</b>分析的MATLAB實現(xiàn)

    相加法器的應用領(lǐng)域

    相加法器(又稱為同相組合器、輸入能量合成器、同相求和器)是一種電子電路器件,主要應用在通信、信號處理、調(diào)試和測量等領(lǐng)域。
    的頭像 發(fā)表于 06-06 17:21 ?1570次閱讀
    同<b class='flag-5'>相加法</b>器的應用領(lǐng)域

    實用電路分享-同相加法

    相加法器(又稱為同相組合器、輸入能量合成器、同相求和器)是一種電子電路器件,主要應用在通信、信號處理、調(diào)試和測量等領(lǐng)域。
    的頭像 發(fā)表于 06-13 14:53 ?1.1w次閱讀
    實用電路分享-同<b class='flag-5'>相加法</b>器

    什么是反相加法運算電路?反相加法運算電路與減法運算電路

    在電子技術(shù)的海洋中,有一種電路如同數(shù)學中的加法器一樣,能夠?qū)⒉煌男盘栠M行相加處理。這就是被廣泛應用于信號處理領(lǐng)域的反相加法運算電路。
    的頭像 發(fā)表于 02-17 15:34 ?4649次閱讀
    什么是反<b class='flag-5'>相加法</b>運算電路?反<b class='flag-5'>相加法</b>運算電路與減法運算電路

    相加法器和反相加法器的區(qū)別是什么

    相加法器和反相加法器是運算放大器在模擬電路設計中常用的兩種基本電路結(jié)構(gòu),它們在信號處理方面有著不同的特性和應用場景。
    的頭像 發(fā)表于 05-23 14:35 ?2599次閱讀

    FIR頻域重疊相加法

    傳感器和信號處理僅一線之隔,信號的前后端合理搭配,是我們更準確地感知這個世界的一種基本態(tài)度和方式。
    的頭像 發(fā)表于 09-09 11:29 ?485次閱讀
    <b class='flag-5'>FIR</b>頻域<b class='flag-5'>重疊</b><b class='flag-5'>相加法</b>
    主站蜘蛛池模板: 1024手机在线观看视频| 国产视频h| 禁漫画羞羞动漫入口| 色噜噜狠狠网站| 国产高清视频在线免费观看| 久久免费福利视频| 久久精品国产精品亚洲人人 | 国产精品毛片一区二区三区| 日日爱视频| 男女在线观看视频| 毛片a区| 色成人综合网| 国产主播一区二区| 九月丁香婷婷亚洲综合色| 国产小视频免费看| 午夜精品视频任你躁| 成年人视频黄色| xxx69欧美| 欧美日韩不卡码一区二区三区| 天天夜夜人人| 久久99热久久精品23| 狠狠色丁香六月色| 777丰满影院| 色爽视频| 天天挨操| 一级毛片一片毛| www.夜色| 年下系列高h文| 国模无水印一区二区三区| 2021精品综合久久久久| 色妞综合网| 人人干网| 五月天激情综合网| 天天天色| 亚洲宅男天堂a在线| 91夜夜人人揉人人捏人人添| 一区在线免费观看| 黄 色 片 在 线 看| 美国三级网| 九九精品久久久久久噜噜| 午夜黄网|