How do I get frequency response as values from multibandParametricEQ System object?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hiroshi Iwamura
el 22 de Ag. de 2018
I cant visualize the response using visualize(mPEQ). But I want "values" as [h,w]. How do I get?
0 comentarios
Respuesta aceptada
Kei Otsuka
el 24 de Ag. de 2018
To extract frequency response, modifying or adding your own function to multibandParametricEQ.m might be helpful.
For example, you can use computefreqz, one of the dsp.util.FilterVisualizer object function to calculate frequency response within a multibandParametricEQ.
?
#1. Add following to visualize function defined in multibandParametricEQ.m
fVector = logspace(log10(20),log10(Fs/2),NFFT);
H = obj.visualObj.computefreqz(coeffs, fVector', Fs);
data = 20*log10(abs(H));
#2. Add output arguments to visualize function
function [data, fVector] = visualize(obj,NFFT)
#3. Confirm if modified method works
mPEQ = multibandParametricEQ(...
'NumEQBands',1,...
'Frequencies',9.5e3,...
'PeakGains',10);
[h, w] = visualize(mPEQ)
figure, semilogx(w,h)
ax = gca;
ax.YLim = [-25 25];
ax.XLim = [20 44100/2];
xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)')
grid on
grid minor
2 comentarios
Kei Otsuka
el 25 de Ag. de 2018
That's great, thanks for sharing your experience with us.

The error you run into was because dsp.util.FilterVisualizer is not available on R2016a. This is just FYI, but you can use freqz instead like this;
fVector = logspace(log10(20),log10(Fs/2),NFFT);
H = freqz(coeffs{1}, [1;coeffs{2}], fVector', Fs);
data = 20*log10(abs(H));
Más respuestas (0)
Ver también
Categorías
Más información sobre Audio Processing Algorithm Design en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!