Cutoff frequency variable LPF by 160th-order FIR filter designed by window method usin Hamming window for ST Nucleo F401RE.
Dependencies: UIT_ACM1602NI UIT_ADDA mbed
Diff: main.cpp
- Revision:
- 1:24c33c8719b2
- Parent:
- 0:b8bffbcb85fd
- Child:
- 3:54eac4891e35
--- a/main.cpp Mon Nov 10 02:45:18 2014 +0000 +++ b/main.cpp Mon Nov 10 02:56:27 2014 +0000 @@ -1,5 +1,5 @@ //------------------------------------------------------------------ -// Cutoff frequency variable LPF and HPF by FIR 160th-order filter +// Cutoff frequency variable LPF by FIR 160th-order filter // A0: Signal to be filtered // A2: Value which controls cutoff frequency // @@ -27,8 +27,6 @@ DigitalIn sw1_(D2, PullDown); // 0: disable filter // 1: enable filter -DigitalIn sw2_(D3, PullDown); // 0: LPF - // 1: HPF WindowingDesign design_(ORDER_, FS_); DigitalOut dOut_(D7); @@ -78,7 +76,6 @@ myAdc_.SetIntrVec(AdcIsr); // Assign ISR for ADC interrupt float fc1 = 0; - WindowingDesign::Type pb = WindowingDesign::LPF; while (true) { // fc: cutoff frequency, 100 -- 2000 Hz @@ -87,7 +84,6 @@ if (sw1_ == 0) { printf("Through\r\n"); - lcd.ClearLine(1); lcd.WriteStringXY("Through ", 0, 0); wait(0.2f); lcd.ClearLine(0); @@ -101,22 +97,9 @@ char str[18]; sprintf(str, "fc = %4d Hz", int(fc+0.5f)); lcd.WriteStringXY(str, 0, 0); - if (sw2_ == 0) - { - pb = WindowingDesign::LPF; - printf("LPF\r\n"); - lcd.WriteStringXY("LPF", 0, 1); - } - else - { - pb = WindowingDesign::HPF; - printf("HPF\r\n"); - lcd.WriteStringXY("HPF", 0, 1); - } fc1 = fc; - // Design new coefficients based on new fc - design_.Design(ORDER_, pb, fc1, hm_); + design_.Design(ORDER_, WindowingDesign::LPF, fc1, hm_); } } wait(0.1f);