# How do I get frequency response as values from multibandParametricEQ System object?

1 view (last 30 days)
Hiroshi Iwamura on 22 Aug 2018
Edited: michio on 28 Oct 2019
I cant visualize the response using visualize(mPEQ). But I want "values" as [h,w]. How do I get?

Kei Otsuka on 24 Aug 2018
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 CommentsShowHide 1 older comment
Kei Otsuka on 25 Aug 2018
That's great, thanks for sharing your experience with us.
&#01
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));

R2016a

### Community Treasure Hunt

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

Start Hunting!