upfirdn increases number of samples
Ältere Kommentare anzeigen
I'm trying to apply a bandpass filter to an audio sound that I am inputting into MATLAB. When I apply my bandpass filter to the audio sound then I find that the number of samples increases.
[xx,fs] = audioread('funk.wav');
% resample at 8000Hz
xx_resamp = resample(xx,8000,44100);
% Create bandpass filter
fsamp = 8000;
% f = (-0.5:.001:0.5)*fsamp;
fcuts = [0 20 230 250];
mags = [0 1 0];
devs = [0.01 0.05 0.01];
[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);
n = n + rem(n,2);
bpf = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
% Apply bandpass filter using upfirdn
y = upfirdn(xx_resamp,bpf);
% Find length of sample at different stages
lengthy = length(y) %returns 172915
lengthxxresamp = length(xx_resamp) %returns 172021
lengthbpf = length(bpf) %returns 895
% interestingly 172021 + 895 == 172915
Why does applying bpf using upfirdn increase the number of samples?
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
