diyAudio

diyAudio (https://www.diyaudio.com/forums/index.php)
-   Software Tools (https://www.diyaudio.com/forums/software-tools/)
-   -   FIR filter design tool for Loudspeaker magnitude equalization (https://www.diyaudio.com/forums/software-tools/236190-fir-filter-design-tool-loudspeaker-magnitude-equalization.html)

ttmusic 18th May 2013 04:44 PM

FIR filter design tool for Loudspeaker magnitude equalization
 
Some time ago I discovered a very useful tool called "Engauge Digitizer" (Engauge Digitizer - Digitizing software)
It allows converting image file showing graphs into text file with associated numbers.
As it is quite easy to find commercial loudspeaker frequency response (scan from audio magazines, image from internet site like stereophile, own measurement), I got the idea to develop a simple tool to design a magnitude correction filter.
The different steps of the equalization process are:
- find a image file of your loudspeaker frequency response (dB vs frequency) (scan from paper or picture directly from the net)
- digitize it to get a text file with Engauge tool
- design correction FIR filter with the proposed tool
- apply the filter using a convolver (hardware DSP or with a media player like foobar/JRiver)

The program is written for Scilab which is a free scientific tool equivalent to Matlab (Home - Scilab)
You can dowload the filter design program at following link (http://fresponse.free.fr/filter_design.sce) as well as an example of input text file made with Engauge (System Audio SA1230 model measured some years ago by the french magazine "Revue du son") (http://fresponse.free.fr/sa_1230.txt)
The first part of the ".sce" file must be edited to configure to your own case.
It should be easy as there are comments in the file to make it comprehensive.
Some additional hints:
- input text file must be in the same directory as the .sce file unless you give the complete path in the input file name
- filter is saved in the same directory with .wav format
- Engauge is easy to use and has some tutorials available (one trick is to not forget to select "logarithmic scale" for frequency axis)
- Instead of designing a correction filter it is possible to generate a FIR filter that simulates the frequency response of the loudspeaker (for instance to simulate a loudspeaker when listenting with headphones)
- Equalization must not cover low & high frequencies (natural roll off of loudspeaker) this is why there are 2 parameters to define limits
- The target curve can be tailored by a constant slope & the option to add a psychoacoustic effect (dip at 3kHz)
- The FIR filter length & sampling frequency can be modified

Maybe it could be a good idea to create a database to share such frequency responses from commercial loudspeakers.
Any comment and idea for improvement are welcomed.
Thierry

jazbo8 22nd May 2013 03:35 AM

Is there a version for Matlab that we can try? Also, how do you handle the room response, which is very different from the speakers' measured response?

ttmusic 24th May 2013 06:24 PM

I have made a translation to Matlab http://fresponse.free.fr/filter_design.m
The intention of this simple tool is to correct only the loudspeaker and not the couple loudspeaker + room.
Of course you can use as input a curve of combined loudspeaker/room measurement but this can lead to large filter gains to compensate for strong dips in frequency response which is useless (using smoothed response curve can limit this risk as well as implementing a gain limit in the filter)

jazbo8 24th May 2013 08:30 PM

Thank you for making the translated version available, and the feedback on the room response, it seems like something worth trying. Al least an alternative to BruteFIR which I'm having some trouble with running...


All times are GMT. The time now is 05:34 AM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2019 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 17.65%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2019 DragonByte Technologies Ltd.
Copyright ©1999-2019 diyAudio

Wiki