MATLAB Answers

Extracting the individual filters in a crossover filter

6 views (last 30 days)
Simon Stone
Simon Stone on 7 May 2021
Commented: Simon Stone on 10 May 2021
I have set up a crossover filter like so:
cof = crossoverFilter(1, 5000, 48, 44100);
I know I can visualize the two constituent filters like so:
visualize(cof);
But for publication purposes, I would like to change the visualization quite a bit. That's why I'm looking for a way to extract the individual filters from the crossover filter in some way, but I cannot seem to figure it out. I even tried going through the code of the visualize function, but I am having a hard time making sense of it.
Am I missing something? Or is there really no easy way to get to the filter coefficients?

Accepted Answer

jibrahim
jibrahim on 7 May 2021
Hi Simon,
There is no documented way to get the individual filters. However, there is a hidden function that should help you:
numCrossovers = 2;
cof = crossoverFilter(numCrossovers, [300 5000], 48, 44100);
% Get the SOS filter coefficients for the 3 filters
[b1,a1,b2,a2,b3,a3] = getFilterCoefficients(cof,numCrossovers);
% Use fvtool to visualize
fvtool([b1,a1],[b2,a2],[b3,a3])
% Visualize using dynamic filter visualizer
fv = dsp.DynamicFilterVisualizer('SampleRate',cof.SampleRate);
fv(b1,a1,b2,a2,b3,a3)
  1 Comment
Simon Stone
Simon Stone on 10 May 2021
Brilliant, working like a charm! Exactly what I needed and a huge help. Thank you!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by