Extracting the individual filters in a crossover filter

12 visualizaciones (últimos 30 días)
Simon Stone
Simon Stone el 7 de Mayo de 2021
Comentada: Soli el 6 de Dic. de 2023
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?

Respuesta aceptada

jibrahim
jibrahim el 7 de Mayo de 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)
  4 comentarios
jibrahim
jibrahim el 4 de Dic. de 2023
This method is not documented as of yet.
[b1,a1,b2,a2,b3,a3] = getFilterCoefficients(cof,numCrossovers);
b1 represents the numerator coefficients of the filter filter. a1 represents the denominator of the first filter. Each filter is a SOS filter, so b1 is N-by-3, where N is the number of sections in the SOS filter. a1 is N-by-3.
b2 and a2 represent the numerator and denominator coefficients of the second SOS filter, and so on.
Soli
Soli el 6 de Dic. de 2023
Hi, perfect ! Thank you very much for this info! :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Signal Processing Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by