How to design a FIR filter without the signal processing toolbox

7 visualizzazioni (ultimi 30 giorni)
I have a wave file with which I need to apply the FIR filter to. However I do not have the toolbox which gives you functions such as 'fir1' or 'filter'.
Does anyone know how to write the transfer function and how to calculate the constants required?

Risposte (1)

Star Strider
Star Strider il 16 Ago 2016
You can always code it yourself (as we had to do when I took my last signal processing course since we were told we could not use the Toolbox for our assignments).
York University (UK) has provided a filter design site that I’ve recommended in the past and that others have found helpful: Butterworth / Bessel / Chebyshev Filters. These are IIR — not FIR — filters, and should work for you.
Note that the filter function introduces a phase delay, and only coding the filtfilt function yourself will eliminate the phase distortion in the filtered signal. (Bessel filters, that are phase-neutral as continuous filters in hardware, lose that characteristic in their discrete transformations.)
  2 Commenti
Oliver Bunn
Oliver Bunn il 17 Ago 2016
Thank you, however when submitting the form I get a Server Error.
I will try later.
Star Strider
Star Strider il 17 Ago 2016
I just checked it to be sure it still existed. I didn’t try to design a filter with it this time, because I have the Signal Processing Toolbox. You can try emailing ‘anthony’ to see if it can be restored, since it’s a useful site.
The only other possibility I was able to find is Digital Filter Design on the Maple site. There’s a Maple Player that you can download that will let you interact with it, but I don’t know if it will let you actually design the filter and get the coefficients. I usually depend on the Wolfram site, but they don’t have anything on filter design that’s interactive. I can’t find any other sites.
That said, filters aren’t that difficult to design. It’s just inconvenient to write the code. The usual procedure is to design the continuous-time analogue version, then use the bilinear transform to do the discrete conversion.

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by