Implementation of FIR and IIR Filters using Arduino

OK, so you're just processing samples as they come in over Serial and you can control that rate so the Arduino doesn't get overloaded. Then you don't have any problem with limited storage. A typical FIR or IIR filter might use 20-50 storage locations, which would probably be 16-bit integers or 32-bit floats. That's not a very large amount of storage at all.

Well, an FIR filter would be implemented by storing the last M samples of the input and then running the filter over those samples when required. (See the t-filter example.) An IIR would run the filter on each incoming value and store M result values. The IIR would usually also store M input values so it would seem that it needs twice as much memory but usually M is much smaller for an IIR of equivalent performance.

Where is the data supposed to go after it's processed? Back to Matlab on Serial? Save it on an SD card?