精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

介紹一下FIR濾波器的使用

冬至子 ? 來源:振動信號研究所 ? 作者:一只小綠豆 ? 2023-05-26 15:13 ? 次閱讀

1. 濾波的目的

信號實時處理中,濾波是十分必要的,因為信號中難免會由于各種原因混入噪聲,干擾我們對信號進行分析。

這里強調了“實時”,是因為在一些場景中,我們可能需要對信號進行離線的、交互式的分析,此時僅僅是對原始信號進行采集即可,無需軟件 進行濾波,只需要硬件在采集信號時做一下抗混疊濾波即可,這種場景不是本文所關心的。

在更多的場景下,比如我們的運動手表、手環在處理ppg信號計算心率時,是會進行實時計算的,那么就會進行實時濾波處理:因為大多數人的心率頻率在0.7~3.6Hz范圍內,至少在這之外的頻率會在計算心率之前濾除掉。

2. 信號模擬

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

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()

我們生成了這樣的一個信號:

圖片

生成的信號

3. FIR濾波器系數生成

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

  1. 打開matlab;
  2. 點擊"APP";
  3. 找到濾波器設計工具,并點擊;
  4. 選擇響應類型、設計方法、階數等。

圖片

輔助設計界面

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

圖片

系數波形圖

3. FIR濾波原理

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

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

圖片

系數的傅里葉變換

這里得到的就是濾波器的幅頻響應曲線,和濾波器輔助設計工具中所展示的幅頻響應曲線是一致的。

4. 濾波計算代碼與結果

把第二步生成的信號中高于100Hz的頻率成分(即3000Hz的成分)濾除,得到的結果如下圖所示,在結果的開頭和結尾產生了失真,這是因為在卷積運算過程中,在剛開始和結尾計算時有效信息不足進行了補零操作導致的。

圖片

濾波的結果

這一步的運算代碼如下:

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()
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 濾波器
    +關注

    關注

    160

    文章

    7729

    瀏覽量

    177687
  • 低通濾波器
    +關注

    關注

    14

    文章

    473

    瀏覽量

    47331
  • FIR
    FIR
    +關注

    關注

    4

    文章

    146

    瀏覽量

    33113
  • FFT變換
    +關注

    關注

    2

    文章

    10

    瀏覽量

    8753
收藏 人收藏

    評論

    相關推薦

    DSP in FPGA:FIR濾波器

    FIR 濾波器廣泛應用于數字信號處理中,主要功能就是將不感興趣的信號濾除,留下有用信號。##全并行FIR濾波器結構
    發表于 06-27 10:02 ?9373次閱讀

    如何設計低通FIR濾波器

    此示例顯示如何設計低通FIR濾波器。這里介紹的許多概念可以擴展到其他響應,如高通,帶通等。FIR濾波器被廣泛使用,因為它們具有強大的設計算法
    發表于 08-23 10:00

    并行FIR濾波器Verilog設計

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

    什么是fir數字濾波器 什么叫FIR濾波器

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

    高效FIR濾波器的設計與仿真-基于FPGA

    高效FIR濾波器的設計與仿真-基于FPGA 摘要:該文在介紹有限沖激響應(FIR)數字濾波器理論及常見實現方法的基礎上,提出了
    發表于 01-16 09:56 ?1629次閱讀
    高效<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的設計與仿真-基于FPGA

    用MATLAB設計FIR濾波器的方法

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

    高階FIR正交鏡像濾波器的設計

    本文計論了高階FIR型正交鏡像濾波器的設計問題。根據FIR 正交鏡像濾波器 設計的基本原理,將高階正交鏡像濾波器的設計問題轉換為單變量的優化
    發表于 08-29 16:16 ?29次下載
    高階<b class='flag-5'>FIR</b>正交鏡像<b class='flag-5'>濾波器</b>的設計

    fir_濾波器sourc

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

    基于MATLAB的FIR濾波器設計與濾波

    基于MATLAB的FIR濾波器設計與濾波
    發表于 12-14 22:08 ?64次下載

    詳解FIR濾波器和IIR濾波器的區別

    數字濾波器廣泛應用于硬件電路設計,般分為FIR濾波器和IIR濾波器。那么FIR
    發表于 05-03 11:36 ?20次下載

    FIR濾波器的FPGA設計與實現

    本文針對快速、準確選擇參數符合項目要求的濾波器設計方法的目的,通過系統的介紹有限脈沖響應( Finite Impulse Response,FIR濾波器的原理、結構形式以及幾種
    發表于 12-21 14:53 ?14次下載
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的FPGA設計與實現

    FPGA的FIR抽取濾波器設計詳細教程

    介紹FIR抽取濾波器的工作原理,重點闡述了用XC2V1000實現FIR抽取濾波器的方法,并給出了仿真波形和設計特點。
    發表于 04-19 11:34 ?2243次閱讀
    FPGA的<b class='flag-5'>FIR</b>抽取<b class='flag-5'>濾波器</b>設計詳細教程

    FIR濾波器與IIR濾波器到底有什么區別

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

    FIR濾波器和IIR濾波器的區別與聯系

    1.根據沖激響應的不同,將數字濾波器分為有限沖激響應(FIR濾波器和無限沖激響應(IIR)濾波器。對于FIR
    的頭像 發表于 12-30 23:45 ?3652次閱讀

    IIR濾波器FIR濾波器的區別

    數字濾波器是數字信號處理中最常用的種技術,可以對數字信號進行濾波、降噪、增強等處理,其中最常見的兩種數字濾波器是IIR濾波器
    的頭像 發表于 06-03 10:21 ?1.9w次閱讀