加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1 預(yù)備知識(shí)
    • 2 simulink 仿真
    • 3 simulink 運(yùn)行結(jié)果
    • 4 matlab 實(shí)現(xiàn)
    • 5 matlab 運(yùn)行結(jié)果
    • 6 C 語(yǔ)言實(shí)現(xiàn)
    • 7 C 語(yǔ)言運(yùn)行結(jié)果
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

快速掃盲 | 一階RC低通數(shù)字濾波器算法實(shí)現(xiàn)

2020/07/06
406
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
  • 1 預(yù)備知識(shí)
  • 2 simulink 仿真
  • 3 simulink 運(yùn)行結(jié)果
  • 4 matlab 實(shí)現(xiàn)
  • 5 matlab 運(yùn)行結(jié)果
  • 6 C 語(yǔ)言實(shí)現(xiàn)
  • 7 C 語(yǔ)言運(yùn)行結(jié)果

1 預(yù)備知識(shí)

低通濾波器LPF)可以濾除頻率高于截止頻率的信號(hào),類(lèi)似的還有高通濾波器,帶通濾波器,帶阻濾波器。一階 RC 低通濾波器的電路如下圖所示;

2 simulink 仿真

這里直接根據(jù)公式③構(gòu)建一搞Subsystem;

Subsystem

整體的仿真圖如下:其中Sine Wave頻率設(shè)置為2*pi*50

其中Sine Wave1頻率設(shè)置為2*pi

所以這里需要使得2*pi*50的信號(hào)衰減,所以根據(jù),截止頻率的計(jì)算公式,可以改變?cè)鲆娴闹?,具體如下所示;

3 simulink 運(yùn)行結(jié)果

最終的仿真的運(yùn)行結(jié)果如下圖所示;Gain Value0.005

Gain Value0.0318

4 matlab 實(shí)現(xiàn)

根據(jù)公式

實(shí)現(xiàn)數(shù)字一階 RC 低通濾波器,具體 matlab 程序如下;

Serial?=?0:0.1:100;
Fs?=?1;
Phase?=?0;
Amp?=?1;

%?高頻信號(hào)
N0?=?2*pi*Fs*Serial?-?Phase;
X0?=?Amp*sin(N);
subplot(4,1,1);
plot(X0);

%?低頻信號(hào)
Fs?=?0.02;
N1?=?2*pi*Fs*Serial?-?Phase;
X1?=?Amp*sin(N1);
subplot(4,1,2);
plot(X1);

%?高頻低頻疊加的信號(hào)
X2=X0+X1;
subplot(4,1,3);
plot(X2);

%Xi-Yi=RC*(Yi?-?Yi-1)/DetalT
len?=?length(X2);
X3=X2;
p=0.05;

%?一階 RC 濾波得到 X3
for?i=2:len
????X3(i)?=?p*X2(i)+(1-p)*X3(i-1);
end

subplot(4,1,4);
plot(X3);

5 matlab 運(yùn)行結(jié)果

運(yùn)行結(jié)果如下所示;

6 C 語(yǔ)言實(shí)現(xiàn)

low_filter.h

typedef?struct
{
?????int16_t??Input;
?????int16_t??Output[2];
?????int32_t??FilterTf;??
?????int32_t??FilterTs;
?????int32_t??Kr;
?????int32_t??Ky;
?
}?low_filter;


void?low_filter_init(low_filter?*v);
int16_t?low_filter_calc(low_filter?*v);

其中;

  • FilterTs為采樣時(shí)間;FilterTfRC時(shí)間常數(shù)

具體參考下圖;

low_filter.c

void?low_filter_init(low_filter?*v){
?
?????v->Kr?=?v->FilterTs*1024/(v->FilterTs?+?v->FilterTf);
?????v->Ky?=?v->FilterTf*1024/(v->FilterTs?+?v->FilterTf);
}

int16_t?low_filter_calc(low_filter?*v){

????int32_t?tmp?=?0;

????tmp?=?((int32_t)v->Kr*v->Input?+?v->Ky*v->Output[1])/1024;
?
????if(tmp>32767){
??????tmp?=?32767;
????}
?
???if(?tmp?<?-32768){
????tmp?=?-32768;
???}
?
????v->Output[0]?=?(int16_t)tmp;
????v->Output[1]?=?v->Output[0];
???return?v->Output[0];
}

7 C 語(yǔ)言運(yùn)行結(jié)果

實(shí)際測(cè)試結(jié)果;

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
2N7002DW 1 Diodes Incorporated Power Field-Effect Transistor, N-Channel, Metal-oxide Semiconductor FET
$0.41 查看
T491D106K035AT 1 KEMET Corporation Tantalum Capacitor, Polarized, Tantalum (dry/solid), 35V, 10% +Tol, 10% -Tol, 10uF, Surface Mount, 2917, CHIP

ECAD模型

下載ECAD模型
$1.01 查看
C1608X7R1H104K080AA 1 TDK Corporation Ceramic Capacitor, Multilayer, Ceramic, 50V, 10% +Tol, 10% -Tol, X7R, 15% TC, 0.1uF, Surface Mount, 0603, CHIP, ROHS COMPLIANT

ECAD模型

下載ECAD模型
$0.1 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

CSDN博客專(zhuān)家,公眾號(hào)小麥大叔主筆,資深嵌入式系統(tǒng)工程師,曾從事移動(dòng)終端,智能硬件以及物聯(lián)網(wǎng)等消費(fèi)電子產(chǎn)品的軟硬件研發(fā),分享,總結(jié),提高,相互交流,共同進(jìn)步。