## Comparing FIR1 bultiin function for generating coefficients with my Function.

### Ahsen Noor Subhopoto (view profile)

on 11 Jul 2019
Latest activity Commented on by Ahsen Noor Subhopoto

on 3 Aug 2019

### Kaashyap Pappu (view profile)

Hi, I am trying to create my own FIR1 by using Window functions but somehow I am not getting the exact results. I have shared the codes with corresponding outputs here;
%Window function is Rectangl, W(n) = 1;%
order = 10;
L = order + 1; %length of a Window
Tau = ceil((order-1)/2); % Tau = 5
Fc = 0.99 %for simplicity that is close to 1
%Builtin Function%
Rectangl = fir1(order,Fc,'low',rectwin(L));
%My function%
n = 0:1:order;
Hd_n = (sin((n-Tau)*Fc))./(pi*(n-Tau));
Hd_n(Tau+1) = Fc/pi;
[Hd_n' Rectangl']
%end
Output:
Both outputs are different. Like, Hd_n(1) = -0.0619, whereas Reactangl(1) = 0.0099.
Am I doing something wrong ? Your suggestions and debugging will be helpful for me.
Thank you,

R2019a

### Kaashyap Pappu (view profile)

on 26 Jul 2019

The difference between the 2 filter coefficients arises for the following reasons:
1. fir1” normalizes the coefficients as described here . Adding another argument to function changes this: fir1(order,Fc,'low',rectwin(L),'noscale').
2. The Hd_n vector has coefficients can be corrected by changing (sin((n-Tau)*Fc)) to (sin(pi*(n-Tau)*Fc)). The lack of pi expands the area under curve.
3. Hd_n(Tau+1) = Fc corrects the magnitude at center frequency.

#### 1 Comment

Ahsen Noor Subhopoto

### Ahsen Noor Subhopoto (view profile)

on 3 Aug 2019
Thank you, it really solved the problem.