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

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

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

介紹一下FIR濾波器的使用

冬至子 ? 來源:振動(dòng)信號(hào)研究所 ? 作者:一只小綠豆 ? 2023-05-26 15:13 ? 次閱讀

1. 濾波的目的

信號(hào)實(shí)時(shí)處理中,濾波是十分必要的,因?yàn)樾盘?hào)中難免會(huì)由于各種原因混入噪聲,干擾我們對(duì)信號(hào)進(jìn)行分析。

這里強(qiáng)調(diào)了“實(shí)時(shí)”,是因?yàn)樵谝恍﹫?chǎng)景中,我們可能需要對(duì)信號(hào)進(jìn)行離線的、交互式的分析,此時(shí)僅僅是對(duì)原始信號(hào)進(jìn)行采集即可,無需軟件 進(jìn)行濾波,只需要硬件在采集信號(hào)時(shí)做一下抗混疊濾波即可,這種場(chǎng)景不是本文所關(guān)心的。

在更多的場(chǎng)景下,比如我們的運(yùn)動(dòng)手表、手環(huán)在處理ppg信號(hào)計(jì)算心率時(shí),是會(huì)進(jìn)行實(shí)時(shí)計(jì)算的,那么就會(huì)進(jìn)行實(shí)時(shí)濾波處理:因?yàn)榇蠖鄶?shù)人的心率頻率在0.7~3.6Hz范圍內(nèi),至少在這之外的頻率會(huì)在計(jì)算心率之前濾除掉。

2. 信號(hào)模擬

比如我們要處理一個(gè)信號(hào),但是我們僅僅關(guān)心信號(hào)100Hz以下的頻段,這時(shí)我們就需要一個(gè)低通濾波器了,此時(shí)我們先模擬出一個(gè)包含5Hz和3000Hz頻率成分的信號(hào),假設(shè)信號(hào)采樣頻率為8192,采樣時(shí)間為1秒,共計(jì)8192個(gè)點(diǎn)。信號(hào)生成和展示的代碼如下:

import numpy as np
from numpy import cos
import matplotlib.pyplot as plt

pi = np.pi
t = np.linspace(0, 1, 8192)

signal = 3 * cos(2 * pi * 5 * t + pi/3) + 7 * cos(2 * np.pi * 3000 * t + 3/8*pi)

plt.figure()
plt.plot(t, signal)
plt.show()

我們生成了這樣的一個(gè)信號(hào):

圖片

生成的信號(hào)

3. FIR濾波器系數(shù)生成

這一步可以使用matlab進(jìn)行輔助,本文僅僅是想要一個(gè)截止頻率為10Hz的FIR低通濾波器,步驟如下:

  1. 打開matlab;
  2. 點(diǎn)擊"APP";
  3. 找到濾波器設(shè)計(jì)工具,并點(diǎn)擊;
  4. 選擇響應(yīng)類型、設(shè)計(jì)方法、階數(shù)等。

圖片

輔助設(shè)計(jì)界面

  1. 點(diǎn)擊“文件” 、“導(dǎo)出”、“系數(shù)文件”,導(dǎo)出系數(shù)文件,我把導(dǎo)出的系數(shù)(FIR低通濾波系數(shù)僅有分子)畫出來后如下圖:

圖片

系數(shù)波形圖

3. FIR濾波原理

采用FIR進(jìn)行濾波,從操作上看是進(jìn)行卷積操作,對(duì)上述濾波器的系數(shù)進(jìn)行FFT變換即可窺見一斑:

import numpy as np
import matplotlib.pyplot as plt
# b = [......] 101個(gè)系數(shù)組成的列表,此處省略
delta_f = 1
plt.plot([delta_f * i for i in range(4097)], abs(np.fft.rfft(b, 8192)))  # 單邊FFT
plt.show()

圖片

系數(shù)的傅里葉變換

這里得到的就是濾波器的幅頻響應(yīng)曲線,和濾波器輔助設(shè)計(jì)工具中所展示的幅頻響應(yīng)曲線是一致的。

4. 濾波計(jì)算代碼與結(jié)果

把第二步生成的信號(hào)中高于100Hz的頻率成分(即3000Hz的成分)濾除,得到的結(jié)果如下圖所示,在結(jié)果的開頭和結(jié)尾產(chǎn)生了失真,這是因?yàn)樵诰矸e運(yùn)算過程中,在剛開始和結(jié)尾計(jì)算時(shí)有效信息不足進(jìn)行了補(bǔ)零操作導(dǎo)致的。

圖片

濾波的結(jié)果

這一步的運(yùn)算代碼如下:

import numpy as np
from numpy import cos
import matplotlib.pyplot as plt
from filter_coeff import b
pi = np.pi

t = np.linspace(0, 1, 8192)
signal = 3 * cos(2 * pi * 5 * t + pi/3) + 7 * cos(2 * np.pi * 3000 * t + 3/8*pi)

fir_len = len(b)

res = []
for i in range(len(signal)):
    print(i)
    temp = 0
    if i < fir_len:
        data = (fir_len-i) * [0] + signal[0:i].tolist()
    elif i > len(signal) - fir_len:
        data = signal[i:].tolist() + (fir_len - len(signal) + i) * [0]
    else:
        data = signal[i:i+fir_len]
    for j in range(fir_len):
        temp += b[j] * data[-j-1]
    res.append(temp)


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

    關(guān)注

    161

    文章

    7817

    瀏覽量

    178132
  • 低通濾波器
    +關(guān)注

    關(guān)注

    14

    文章

    474

    瀏覽量

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

    關(guān)注

    4

    文章

    146

    瀏覽量

    33174
  • FFT變換
    +關(guān)注

    關(guān)注

    2

    文章

    10

    瀏覽量

    8765
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DSP in FPGA:FIR濾波器

    FIR 濾波器廣泛應(yīng)用于數(shù)字信號(hào)處理中,主要功能就是將不感興趣的信號(hào)濾除,留下有用信號(hào)。##全并行FIR濾波器結(jié)構(gòu)
    發(fā)表于 06-27 10:02 ?9546次閱讀

    如何設(shè)計(jì)低通FIR濾波器

    此示例顯示如何設(shè)計(jì)低通FIR濾波器。這里介紹的許多概念可以擴(kuò)展到其他響應(yīng),如高通,帶通等。FIR濾波器被廣泛使用,因?yàn)樗鼈兙哂袕?qiáng)大的設(shè)計(jì)算法
    發(fā)表于 08-23 10:00

    并行FIR濾波器Verilog設(shè)計(jì)

    本文將簡單介紹FIR濾波器的原理,詳細(xì)介紹使用Verilog HDL設(shè)計(jì)并行FIR濾波器的流程和
    發(fā)表于 09-25 17:44

    什么是fir數(shù)字濾波器 什么叫FIR濾波器

    什么是fir數(shù)字濾波器 Part 1: Basics1.1 什么是FIR濾波器?FIR 濾波器
    發(fā)表于 01-16 09:42 ?1.7w次閱讀

    高效FIR濾波器的設(shè)計(jì)與仿真-基于FPGA

    高效FIR濾波器的設(shè)計(jì)與仿真-基于FPGA 摘要:該文在介紹有限沖激響應(yīng)(FIR)數(shù)字濾波器理論及常見實(shí)現(xiàn)方法的基礎(chǔ)上,提出了
    發(fā)表于 01-16 09:56 ?1664次閱讀
    高效<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的設(shè)計(jì)與仿真-基于FPGA

    用MATLAB設(shè)計(jì)FIR濾波器的方法

    用MATLAB設(shè)計(jì)FIR濾波器的方法 摘? 要 介紹了利用MATLAB信號(hào)處理工具箱進(jìn)行FIR濾波器設(shè)計(jì)的三種方法:程序設(shè)計(jì)法、FDATo
    發(fā)表于 01-16 18:12 ?1.5w次閱讀
    用MATLAB設(shè)計(jì)<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的方法

    高階FIR正交鏡像濾波器的設(shè)計(jì)

    本文計(jì)論了高階FIR型正交鏡像濾波器的設(shè)計(jì)問題。根據(jù)FIR 正交鏡像濾波器 設(shè)計(jì)的基本原理,將高階正交鏡像濾波器的設(shè)計(jì)問題轉(zhuǎn)換為單變量的優(yōu)化
    發(fā)表于 08-29 16:16 ?29次下載
    高階<b class='flag-5'>FIR</b>正交鏡像<b class='flag-5'>濾波器</b>的設(shè)計(jì)

    fir_濾波器sourc

    fir濾波器的有關(guān)資料 fir_濾波器sourc.rar
    發(fā)表于 12-14 14:12 ?24次下載

    基于MATLAB的FIR濾波器設(shè)計(jì)與濾波

    基于MATLAB的FIR濾波器設(shè)計(jì)與濾波
    發(fā)表于 12-14 22:08 ?64次下載

    詳解FIR濾波器和IIR濾波器的區(qū)別

    數(shù)字濾波器廣泛應(yīng)用于硬件電路設(shè)計(jì),般分為FIR濾波器和IIR濾波器。那么FIR
    發(fā)表于 05-03 11:36 ?20次下載

    FIR濾波器的FPGA設(shè)計(jì)與實(shí)現(xiàn)

    本文針對(duì)快速、準(zhǔn)確選擇參數(shù)符合項(xiàng)目要求的濾波器設(shè)計(jì)方法的目的,通過系統(tǒng)的介紹有限脈沖響應(yīng)( Finite Impulse Response,FIR濾波器的原理、結(jié)構(gòu)形式以及幾種
    發(fā)表于 12-21 14:53 ?14次下載
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的FPGA設(shè)計(jì)與實(shí)現(xiàn)

    FPGA的FIR抽取濾波器設(shè)計(jì)詳細(xì)教程

    介紹FIR抽取濾波器的工作原理,重點(diǎn)闡述了用XC2V1000實(shí)現(xiàn)FIR抽取濾波器的方法,并給出了仿真波形和設(shè)計(jì)特點(diǎn)。
    發(fā)表于 04-19 11:34 ?2318次閱讀
    FPGA的<b class='flag-5'>FIR</b>抽取<b class='flag-5'>濾波器</b>設(shè)計(jì)詳細(xì)教程

    FIR濾波器與IIR濾波器到底有什么區(qū)別

    你知道FIR濾波器與IIR濾波器的不同點(diǎn)嗎?它有有什么特點(diǎn)?濾波器是工程師工作中必不可少的器件,濾波器分為很多種,本文詳細(xì)
    發(fā)表于 08-09 14:15 ?3.3w次閱讀
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>與IIR<b class='flag-5'>濾波器</b>到底有什么區(qū)別

    FIR濾波器和IIR濾波器的區(qū)別與聯(lián)系

    1.根據(jù)沖激響應(yīng)的不同,將數(shù)字濾波器分為有限沖激響應(yīng)(FIR濾波器和無限沖激響應(yīng)(IIR)濾波器。對(duì)于FIR
    的頭像 發(fā)表于 12-30 23:45 ?3882次閱讀

    IIR濾波器FIR濾波器的區(qū)別

    數(shù)字濾波器是數(shù)字信號(hào)處理中最常用的種技術(shù),可以對(duì)數(shù)字信號(hào)進(jìn)行濾波、降噪、增強(qiáng)等處理,其中最常見的兩種數(shù)字濾波器是IIR濾波器
    的頭像 發(fā)表于 06-03 10:21 ?1.9w次閱讀