FVTool: filter array as parameter

2 次查看(过去 30 天)
I would like to pass a filter vector as a parameter to FVTool to automate different plots of my MATLAB script.
Example: I have this:
plotter = fvtool(getFilter(octaveFilterBank{1}), ...
getFilter(octaveFilterBank{2}), ...
'FrequencyScale', 'log', ...
'Fs', Fs);
I want something like this:
% Init the array:
filter_array = [getFilter(octaveFilterBank{1}), ...
getFilter(octaveFilterBank{2})];
% Plot:
plotter = fvtool(filter_array, ...
'FrequencyScale', 'log', ...
'Fs', Fs);
How can I do this?

采纳的回答

Gabriele Bunkheila
Hi Nycholas,
Please give the following a try and let us know if it works for you:
filter1 = octaveFilter('CenterFrequency',1000);
filter2 = octaveFilter('CenterFrequency',2000);
filterArray = {getFilter(filter1), getFilter(filter2)};
fvtool(filterArray{:})
Thanks,
Gabriele.
  1 个评论
Nycholas Maia
Nycholas Maia 2018-1-8
Thank you Gabriele! You are right! Now it's working!
In my case, my final code is:
% Preallocate the filter bank:
octaveFilterBank = cell(1, 5);
for n = 1:5
% Change the Center Frequency Dinamically:
freq = 1000 * n;
% Get the filter:
filter = getFilter(octaveFilter('CenterFrequency', freq));
% Add to filter array:
octaveFilterBank{n} = filter;
end
% Plot filter array:
fvtool(octaveFilterBank{:})

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by