参考链接:一阶RC低通数字滤波器算法实现
一阶RC无源低通滤波器电路图如下图所示
从时域角度可以列写出输出电压与输入电压的关系:
\[\left\{ {\begin{array}{*{20}{c}}
{{V_{in}} - {V_{out}} = R \cdot i}\\
{i = C \cdot \frac{{d{V_{out}}}}{{dt}}}
\end{array}} \right.
\]
下式带入上式得到:
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGsbGaam4qaiabgwSixpaalaaabaGa
% amizaiaadAfadaWgaaWcbaGaam4BaiaadwhacaWG0baabeaaaOqaai
% aadsgacaWG0baaaiabgUcaRiaadAfadaWgaaWcbaGaam4Baiaadwha
% caWG0baabeaakiabg2da9iaadAfadaWgaaWcbaGaamyAaiaad6gaae
% qaaaaa!5282!
RC \cdot \frac{{d{V_{out}}}}{{dt}} + {V_{out}} = {V_{in}}
\]
采用后(前)向差分,对上式进行离散化:
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGsbGaam4qaiabgwSixpaalaaabaGa
% amOvamaaBaaaleaacaWGVbaabeaakmaabmaabaGaam4AaaGaayjkai
% aawMcaaiabgkHiTiaadAfadaWgaaWcbaGaam4BaaqabaGcdaqadaqa
% aiaadUgacqGHsislcaaIXaaacaGLOaGaayzkaaaabaGaamivamaaBa
% aaleaacaWGZbaabeaaaaGccqGHRaWkcaWGwbWaaSbaaSqaaiaad+ga
% aeqaaOWaaeWaaeaacaWGRbaacaGLOaGaayzkaaGaeyypa0JaamOvam
% aaBaaaleaacaWGPbaabeaakmaabmaabaGaam4AaaGaayjkaiaawMca
% aaaa!5B6D!
RC \cdot \frac{{{V_o}\left( k \right) - {V_o}\left( {k - 1} \right)}}{{{T_s}}} + {V_o}\left( k \right) = {V_i}\left( k \right)
\]
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGsbGaam4qaiabgwSixpaalaaabaGa
% amOvamaaBaaaleaacaWGVbaabeaakmaabmaabaGaam4AaiabgUcaRi
% aaigdaaiaawIcacaGLPaaacqGHsislcaWGwbWaaSbaaSqaaiaad+ga
% aeqaaOWaaeWaaeaacaWGRbaacaGLOaGaayzkaaaabaGaamivamaaBa
% aaleaacaWGZbaabeaaaaGccqGHRaWkcaWGwbWaaSbaaSqaaiaad+ga
% aeqaaOWaaeWaaeaacaWGRbaacaGLOaGaayzkaaGaeyypa0JaamOvam
% aaBaaaleaacaWGPbaabeaakmaabmaabaGaam4AaaGaayjkaiaawMca
% aaaa!5B62!
RC \cdot \frac{{{V_o}\left( {k + 1} \right) - {V_o}\left( k \right)}}{{{T_s}}} + {V_o}\left( k \right) = {V_i}\left( k \right)
\]
化简得到:
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGwbWaaSbaaSqaaiaad+gaaeqaaOWa
% aeWaaeaacaWGRbaacaGLOaGaayzkaaGaeyypa0ZaaSaaaeaacaWGsb
% Gaam4qaaqaaiaadkfacaWGdbGaey4kaSIaamivamaaBaaaleaacaWG
% ZbaabeaaaaGccqGHflY1caWGwbWaaSbaaSqaaiaad+gaaeqaaOWaae
% WaaeaacaWGRbGaeyOeI0IaaGymaaGaayjkaiaawMcaaiabgUcaRmaa
% laaabaGaamivamaaBaaaleaacaWGZbaabeaaaOqaaiaadkfacaWGdb
% Gaey4kaSIaamivamaaBaaaleaacaWGZbaabeaaaaGccqGHflY1caWG
% wbWaaSbaaSqaaiaadMgaaeqaaOWaaeWaaeaacaWGRbaacaGLOaGaay
% zkaaaaaa!616C!
{V_o}\left( k \right) = \frac{{RC}}{{RC + {T_s}}} \cdot {V_o}\left( {k - 1} \right) + \frac{{{T_s}}}{{RC + {T_s}}} \cdot {V_i}\left( k \right)
\]
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGwbWaaSbaaSqaaiaad+gaaeqaaOWa
% aeWaaeaacaWGRbGaey4kaSIaaGymaaGaayjkaiaawMcaaiabg2da9m
% aabmaabaGaaGymaiabgkHiTmaalaaabaGaamivamaaBaaaleaacaWG
% ZbaabeaaaOqaaiaadkfacaWGdbaaaaGaayjkaiaawMcaaiabgwSixl
% aadAfadaWgaaWcbaGaam4BaaqabaGcdaqadaqaaiaadUgaaiaawIca
% caGLPaaacqGHRaWkdaWcaaqaaiaadsfadaWgaaWcbaGaam4Caaqaba
% aakeaacaWGsbGaam4qaaaacqGHflY1caWGwbWaaSbaaSqaaiaadMga
% aeqaaOWaaeWaaeaacaWGRbaacaGLOaGaayzkaaGaeyypa0JaamOvam
% aaBaaaleaacaWGVbaabeaakmaabmaabaGaam4AaaGaayjkaiaawMca
% aiabgUcaRmaalaaabaGaamivamaaBaaaleaacaWGZbaabeaaaOqaai
% aadkfacaWGdbaaamaadmaabaGaamOvamaaBaaaleaacaWGPbaabeaa
% kmaabmaabaGaam4AaaGaayjkaiaawMcaaiabgkHiTiaadAfadaWgaa
% WcbaGaam4BaaqabaGcdaqadaqaaiaadUgaaiaawIcacaGLPaaaaiaa
% wUfacaGLDbaaaaa!7519!
{V_o}\left( {k + 1} \right) = \left( {1 - \frac{{{T_s}}}{{RC}}} \right) \cdot {V_o}\left( k \right) + \frac{{{T_s}}}{{RC}} \cdot {V_i}\left( k \right) = {V_o}\left( k \right) + \frac{{{T_s}}}{{RC}}\left[ {{V_i}\left( k \right) - {V_o}\left( k \right)} \right]
\]
其中:
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGsbGaam4qaiabg2da9maalaaabaGa
% aGymaaqaaiaaikdacqaHapaCcaWGMbWaaSbaaSqaaiaadogacaWG1b
% GaamiDaaqabaaaaaaa!48D9!
RC = \frac{1}{{2\pi {f_{cut}}}}
\]
1. 已知截止频率,求系数
将RC表达式带入输入输出表达式中,得到下式:
\[{V_o}\left( k \right) = \frac{1}{{1 + 2\pi {f_{cut}} \cdot {T_s}}} \cdot {V_o}\left( {k - 1} \right) + \frac{{2\pi {f_{cut}} \cdot {T_s}}}{{1 + 2\pi {f_{cut}} \cdot {T_s}}} \cdot {V_i}\left( k \right)
\]
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaaqaaaaaaaaaWdbiaadAfapaWaaSbaaSqa
% a8qacaWGVbaapaqabaGcpeWaaeWaa8aabaWdbiaadUgaaiaawIcaca
% GLPaaacqGH9aqpdaqadaqaaiaaigdacqGHsislcaaIYaGaeqiWdaNa
% amOza8aadaWgaaWcbaWdbiaadogacaWG1bGaamiDaaWdaeqaaOWdbi
% abgwSixlaadsfadaWgaaWcbaGaam4CaaqabaaakiaawIcacaGLPaaa
% cqGHflY1caWGwbWdamaaBaaaleaapeGaam4BaaWdaeqaaOWdbmaabm
% aapaqaa8qacaWGRbGaeyOeI0IaaGymaaGaayjkaiaawMcaaiabgUca
% RiaaikdacqaHapaCcaWGMbWdamaaBaaaleaapeGaam4yaiaadwhaca
% WG0baapaqabaGcpeGaeyyXICTaamivamaaBaaaleaacaWGZbaabeaa
% kiabgwSixlaadAfapaWaaSbaaSqaa8qacaWGPbaapaqabaGcpeWaae
% Waa8aabaWdbiaadUgaaiaawIcacaGLPaaaaaa!6F06!
{V_o}\left( k \right) = \left( {1 - 2\pi {f_{cut}} \cdot {T_s}} \right) \cdot {V_o}\left( {k - 1} \right) + 2\pi {f_{cut}} \cdot {T_s} \cdot {V_i}\left( k \right)
\]
2. 已知系数,求截止频率
按照上式,所以两个系数表达式分别为:
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaadaGabaqaauaabeqaceaaaeaacaWGJbGa
% am4BaiaadAgadaWgaaWcbaGaaGymaaqabaGccqGH9aqpdaWcaaqaai
% aaigdaaeaacaaIXaGaey4kaSIaaGOmaiabec8aWjaadAgadaWgaaWc
% baGaam4yaiaadwhacaWG0baabeaakiabgwSixlaadsfadaWgaaWcba
% Gaam4CaaqabaaaaaGcbaGaam4yaiaad+gacaWGMbWaaSbaaSqaaiaa
% ikdaaeqaaOGaeyypa0ZaaSaaaeaacaaIYaGaeqiWdaNaamOzamaaBa
% aaleaacaWGJbGaamyDaiaadshaaeqaaOGaeyyXICTaamivamaaBaaa
% leaacaWGZbaabeaaaOqaaiaaigdacqGHRaWkcaaIYaGaeqiWdaNaam
% OzamaaBaaaleaacaWGJbGaamyDaiaadshaaeqaaOGaeyyXICTaamiv
% amaaBaaaleaacaWGZbaabeaaaaaaaaGccaGL7baaaaa!6E09!
\left\{ {\begin{array}{*{20}{c}}
{co{f_1} = \frac{1}{{1 + 2\pi {f_{cut}} \cdot {T_s}}}}\\
{co{f_2} = \frac{{2\pi {f_{cut}} \cdot {T_s}}}{{1 + 2\pi {f_{cut}} \cdot {T_s}}}}
\end{array}} \right.
\]
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaadaGabaqaauaabeqaceaaaeaacaWGJbGa
% am4BaiaadAgadaWgaaWcbaGaaGymaaqabaGccqGH9aqpcaaIXaGaey
% OeI0IaaGOmaiabec8aWjaadAgadaWgaaWcbaGaam4yaiaadwhacaWG
% 0baabeaakiabgwSixlaadsfadaWgaaWcbaGaam4Caaqabaaakeaaca
% WGJbGaam4BaiaadAgadaWgaaWcbaGaaGOmaaqabaGccqGH9aqpcaaI
% YaGaeqiWdaNaamOzamaaBaaaleaacaWGJbGaamyDaiaadshaaeqaaO
% GaeyyXICTaamivamaaBaaaleaacaWGZbaabeaaaaaakiaawUhaaaaa
% !60D6!
\left\{ {\begin{array}{*{20}{c}}
{co{f_1} = 1 - 2\pi {f_{cut}} \cdot {T_s}}\\
{co{f_2} = 2\pi {f_{cut}} \cdot {T_s}}
\end{array}} \right.
\]
若采样频率为Ts,所以截止频率为
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGMbWaaSbaaSqaaiaadogacaWG1bGa
% amiDaaqabaGccqGH9aqpdaWcaaqaaiaaigdacqGHsislcaWGJbGaam
% 4BaiaadAgadaWgaaWcbaGaaGymaaqabaaakeaacaaIYaGaeqiWdaNa
% amivamaaBaaaleaacaWGZbaabeaakiabgwSixlaadogacaWGVbGaam
% OzamaaBaaaleaacaaIXaaabeaaaaGccqGH9aqpdaWcaaqaaiaadoga
% caWGVbGaamOzamaaBaaaleaacaaIYaaabeaaaOqaaiaaikdacqaHap
% aCcaWGubWaaSbaaSqaaiaadohaaeqaaOGaeyyXIC9aaeWaaeaacaaI
% XaGaeyOeI0Iaam4yaiaad+gacaWGMbWaaSbaaSqaaiaaikdaaeqaaa
% GccaGLOaGaayzkaaaaaaaa!6675!
{f_{cut}} = \frac{{1 - co{f_1}}}{{2\pi {T_s} \cdot co{f_1}}} = \frac{{co{f_2}}}{{2\pi {T_s} \cdot \left( {1 - co{f_2}} \right)}}
\]
\[% MathType!MTEF!2!1!+-
% feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqipu0Je9sqqr
% pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs
% 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai
% aabeqaamaabaabauaakeaacaWGMbWaaSbaaSqaaiaadogacaWG1bGa
% amiDaaqabaGccqGH9aqpdaWcaaqaaiaaigdacqGHsislcaWGJbGaam
% 4BaiaadAgadaWgaaWcbaGaaGymaaqabaaakeaacaaIYaGaeqiWdaNa
% amivamaaBaaaleaacaWGZbaabeaakmaaBaaaleaacaaIXaaabeaaaa
% GccqGH9aqpdaWcaaqaaiaadogacaWGVbGaamOzamaaBaaaleaacaaI
% YaaabeaaaOqaaiaaikdacqaHapaCcaWGubWaaSbaaSqaaiaadohaae
% qaaaaaaaa!5826!
{f_{cut}} = \frac{{1 - co{f_1}}}{{2\pi {T_s}_1}} = \frac{{co{f_2}}}{{2\pi {T_s}}}
\]