Output Length of signal filtered using FIR Filters
Mostrar comentarios más antiguos
[EDIT: 20110622 20:11 - reformat - WDR]
Hello Experts,
The output of the FIR filters is convolution of the input signal and the filter kernel. In that case, the length of the output signal should be greater than input signal by M-1 points where M is the length of the filter kernel.
x=ecg(500)'+0.25*randn(500,1); %noisy waveform
h=fdesign.lowpass('Fp,Fst,Ap,Ast',0.15,0.2,1,60);
d=design(h,'equiripple'); %Lowpass FIR filter
y=filtfilt(d.Numerator,1,x); %zero-phase filtering
y1=filter(d.Numerator,1,x); %conventional filtering
In the above code, the length of the output is same as the length of my input signal even though I have implemented FIR filtering.
Can someone explain the reason of same length of the output signal? I expected my output signal to be greater than input signal.
Does MATLAB use convolution for filtering?
Sanket
Respuesta aceptada
Más respuestas (2)
Jarrod Rivituso
el 22 de Abr. de 2011
I believe generally convolution is used, though I am no signal processing expert so I can't speak to all filter variations.
The doc page for the basic filter function explains the exact equation used, which looks to me to be pretty much a convolution:
The simple example they have there is telling:
>> data = [1:0.2:4]';
>> windowSize = 5;
>> filter(ones(1,windowSize)/windowSize,1,data)
ans =
0.2000
0.4400
0.7200
1.0400
1.4000
1.6000
1.8000
2.0000
2.2000
2.4000
2.6000
2.8000
3.0000
3.2000
3.4000
3.6000
The first output is 0.2, which kinda shows that the beginning of the vector is padded with zeros, in this case. Again, I'm not sure what other filter variations do.
If you want a true convolution, try the convn function. It will (optionally) output vectors that are longer than the input:
>> data = [1:0.2:4]';
>> windowSize = 5;
>> convn(ones(1,windowSize)/windowSize,1,data)
ans =
0.2000
0.4400
0.7200
1.0400
1.4000
1.6000
1.8000
2.0000
2.2000
2.4000
2.6000
2.8000
3.0000
3.2000
3.4000
3.6000
2.9600
2.2800
1.5600
0.8000
Sanket
el 22 de Abr. de 2011
0 votos
Categorías
Más información sobre Single-Rate Filters en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!