Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

How do you filter signals of arbitrary length with complex bandpass decimator?

조회 수: 1 (최근 30일)
william eden
william eden 2019년 7월 20일
마감: MATLAB Answer Bot 2021년 8월 20일
I am trying to impliment a 10 band octave graphic EQ and have run into some problems creating narrow enough bandpass filters for the lower octaves whilst keeping the order and computation to a minimum. I understand the Complex Bandpass Decimator can reduce computation and the order of the filters using it's multirate and multistage approach. I have managed to do this with the following code however I am not understanding how to pass a signal of artbitary length through the system, I get an error stating that the input signal must be a multiple of the decimation rate. How can I avoid this issue?
function y = bandPassLinMRMS(x, gain1, fs)
Fc = 32;
tw = 20;
bw = 20;
D = fs/(bw+(tw*2));
%fc = 64/(fs/2);
Ast = 40;
%% Bandpass 1
bp = dsp.ComplexBandpassDecimator(D , Fc, 'SampleRate',fs,...
'TransitionWidth',tw,...
'StopbandAttenuation',Ast);
freqz(bp);
y = bp(x)*gain1;
end

답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by