一階RC濾波器的演算法實現(低通和高通)3102 - 程式人生
文章推薦指數: 80 %
本文的優勢是比較詳細,引數配置都有公式依據。
... @brief implement 1 order RC low pass filter * raw data filtered by a simple RC low pass ...
程式人生>>一階RC濾波器的演算法實現(低通和高通)3102
一階RC濾波器的演算法實現(低通和高通)3102
阿新••發佈:2018-12-02
目前,專案需要處理訊號。
目標訊號是特定頻率範圍內的訊號。
高頻視為干擾。
而一階RC濾波器容易實現。
但是網上資料往往沒有詳細的推導。
因此在這裡把筆記記下。
本文的優勢是比較詳細,引數配置都有公式依據。
目錄
1、一階RC低通濾波器的演算法實現
1.1演算法推導
1.2波特圖
1.3用C語言實現
2、一階RC高通濾波器的原理以及實現
2.1原理推導
2.2波特圖
2.3用C語言實現
3上機測試
1、一階RC低通濾波器的演算法實現
1.1演算法推導
一階RC濾波器的硬體電路如圖:
圖中輸入電壓是Vi,電阻R,電容C,輸出電壓為Vo。
假設電路的輸出阻抗很大(即不帶任何負載),輸入阻抗很小(理想情況)。
可以得到以下公式:
1.2波特圖
用Octave或者Matlab可以得到傳遞函式的波特圖:
fcut=1000;
RC=1/2/pi/fcut;
%pkgloadcontrol%Octave用的讀取control包
y1=tf(1,[RC,1])
bode(y1)
以上波特圖可見,在截止頻率處(,代入f=1k,可得截至角頻率是6283rad/s),訊號會衰減到原來的0.707。
這電路對頻率大於截止頻率的高頻訊號,具有比較強的衰減作用,同時對該訊號有比較大的相位移動。
1.3用C語言實現
C語言的實現1
/**
*@briefimplement1orderRClowpassfilter
*rawdatafilteredbyasimpleRClowpass[email protected]=5Hz
*@paramVi : Vi(k)
*@paramVi_p : Vi(k-1)
*@paramVo : Vo(k)
*@paramVo_p : Vo(k-1)
*@noteThisexampleshowsasimplewaytoreportendofconversion
*andgetconversionresult.Youcanaddyourownimplementation.
*@retvalNone
*/
voidLowPassFilter_RC_1order(float*Vi,float*Vo,float*Vo_p,floatsampleFrq)
{
floatCutFrq,RC,Cof1,Cof2;
//lowpassfilter@cutofffrequency=5Hz
CutFrq=5;
RC=(float)1.0/2.0/PI/CutFrq;
Cof1=1/(1+RC*sampleFrq);
Cof2=RC*sampleFrq/(1+RC*sampleFrq);
*Vo=Cof1*(*Vi)+Cof2*(*Vo_p);
//update
*Vo_p=*Vo;
}
呼叫例子:
floatb_ADCLoad1Volt,b_ADCLoad1VoltFltr,b_ADCLoad1VoltFltrPrv;
LowPassFilter_RC_1order(&b_ADCLoad1Volt,&b_ADCLoad1VoltFltr,&b_ADCLoad1VoltFltrPrv,1000.0);
C語言實現2:
//***********StructureDefinition********//
typedefstruct{
floatVi;
floatVo_prev;
floatVo;
floatFcutoff;
floatFs;
}LPF_1orderRC_F;
//***********StructureInitFunction****//
voidLPF_1orderRC_F_init(LPF_1orderRC_F*v)
{
v->Vi=0;
v->Vo_prev=0;
v->Vo=0;
//lowpassfilter@cutofffrequency=5Hz
v->Fcutoff=5;
//execute1000everysecond
v->Fs=1000;
}
//***********FunctionDefinition********//
floatLPF_1orderRC_F_FUNC(LPF_1orderRC_F*v)
{
floatRC,Cof1,Cof2;
RC=(float)1.0/2.0/PI/v->Fcutoff;
Cof1=1/(1+RC*v->Fs);
Cof2=RC*v->Fs/(1+RC*v->Fs);
v->Vo=Cof1*v->Vi+Cof2*v->Vo_prev;
v->Vo_prev=v->Vo;
returnv->Vo;
}
LPF_1orderRC_Flpf_1orderrc_handle;
呼叫方式:
...
intmain(void)
{
...
LPF_1orderRC_F_init(&lpf_1orderrc_handle);//初始化
while(1)
{
...
if(flag_1ms==1)
{
lpf_1orderrc_handle.Vi=ADCresult;//假設ADCresult是ADC取樣結果
LPF_1orderRC_F_FUNC(&lpf_1orderrc_handle);//usage
FilteredResult=lpf_1orderrc_handle.Vo;//FilteredResult存放濾波結果
}
}
}
什麼是半透鏡
«上一篇
懲罰函式法(內點法、外點法)求解約束優化問題最優值matlab下一篇»
相關推薦
一階RC濾波器的演算法實現(低通和高通)3102
目前,專案需要處理訊號。
目標訊號是特定頻率範圍內的訊號。
高頻視為干擾。
而一階RC濾波器容易實現。
但是網上資料往往沒有詳細的推導。
因此在這裡把筆記記下。
...
相關濾波器演算法速度做到極致
相關濾波類方法從一開始能被我盯上,就是因為速度比較快,不管哪個CV演算法,速度都是重要的指標之一,tracking問題尤甚,工業應用永遠把速度排在效能之前,學術...
機器學習演算法原理與實踐(三)、卡爾曼濾波器演算法淺析及matlab實戰
卡爾曼濾波器是一種利用線性系統狀態方程,通...
垃圾收集器與記憶體分配策略——垃圾收集演算法與HotSpot虛擬機器演算法實現
垃圾收集演算法的具體實現涉及大量的程式細節,這裡只描述其演算法的基本思想和發展過程
一、常見的垃圾收集演算法對比如下
收集...
關於N的階乘(n!)的java演算法實現
很多公司面試都會有一個問題,就是求N階乘,主要是考查一些程式設計的基礎知識如迴圈、型別的最大長度、遞迴等。
例如最簡單的實...
決策樹分類器演算法實現
#-*-coding:cp936-*-
#決策樹分類器
my_data=[['slashdot','USA','ye...
Android計步器演算法實現(2)
前言
之前的那套演算法自己平時玩玩其實還是沒問題的,但是在大工程裡面運用遇到了一些不得不優化的問題:
定...
協同過濾Item-based演算法實現電影推薦系統
系統詳細設計
離線計算推薦電影模組
系統所用演算法:
本系統採用協同過濾(Collaborativ...
機器學習(三):感知器演算法實現鳶尾花分類專案實戰
上一章我們已經介紹了感知器演算法規則,並且用python語言實現了。
現在我們應用感知器學習規則進行鳶尾花分類實驗...
AndrewNg機器學習筆記+Weka相關演算法實現(四)SVM和原始對偶問題
這篇部落格主要講解了Ng的課第六、七個視訊,涉及到的內容包括,函式間隔和幾何間隔、最優間隔分類器(Optim...
搜尋
基礎教學
Mysql入門
Sql入門
Android入門
Docker入門
Go語言入門
Ruby程式入門
Python入門
Python進階
Django入門
Python爬蟲入門
最近訪問
一階RC濾波器的演算法實現(低通和高通)3102
彙編-將輸入的十進位制數轉化為二進位制
UI++TextInputLayout+的簡單用法
如何在vue中使用觸控事件
軟閾值(Soft+Thresholding)函式解讀
巴斯卡三角形+C++版
HDU+6441+Find+Integer(數論)
ldap增刪改查
Python(10)_組織列表(排序)
lnmp環境搭建方案
延伸文章資訊
- 1一阶低通滤波(LPF)的原理及应用(以APM/PX4飞控为例)
一阶低通滤波器(Low Pass Filter,LPF),顾名思义就是当输入信号的频率在LPF设定的频率(截止频率)以内时,该信号可以通过(无衰减),而当该信号的频率高于该频率 ...
- 2實驗十二、低通主動濾波器
所謂低通濾波器(LPS:low pass filter) 是允許低頻訊. 號通過,而不允許高頻訊號通過的濾波器。圖一所示. 是RC 低通濾波電路,其電壓迴路公式:.
- 3低通濾波器- 維基百科,自由的百科全書
低通濾波器(英語:Low-pass filter)容許低頻訊號通過,但減弱(或減少)頻率高於截止頻率的訊號的通過。對於不同濾波器而言,每個頻率的訊號的減弱程度不同。
- 4濾波器
依其. 功能可分低通濾波器(low pass filter)、高通濾波器(high pass filter)、帶通濾波器. Page 3. (band pass filter)、帶拒濾波器(ba...
- 5一階RC濾波器的演算法實現(低通和高通)3102 - 程式人生
本文的優勢是比較詳細,引數配置都有公式依據。 ... @brief implement 1 order RC low pass filter * raw data filtered by a s...