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

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

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

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

1 預(yù)備知識

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

2 simulink 仿真

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

Subsystem

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

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

所以這里需要使得2*pi*50的信號衰減,所以根據(jù),截止頻率的計(jì)算公式,可以改變增益的值,具體如下所示;

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;

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

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

%?高頻低頻疊加的信號
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 語言實(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ùn)行結(jié)果

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
PMR209ME6470M047R30 1 KEMET Corporation RC Network, Isolated, 47ohm, 630V, 0.47uF, Through Hole Mount, 2 Pins, RADIAL LEADED, ROHS COMPLIANT
$5.88 查看
U.FL-R-SMT(10) 1 Hirose Electric Co Ltd RF Connector, 1 Contact(s), Male, Board Mount, Surface Mount Terminal, Receptacle,

ECAD模型

下載ECAD模型
$1.24 查看
FTSH-105-01-F-DV-K 1 Samtec Inc Board Connector, 10 Contact(s), 2 Row(s), Male, Straight, 0.05 inch Pitch, Surface Mount Terminal, Locking, Receptacle, ROHS COMPLIANT
$3.98 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

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