I get Vectors must be the same length. error

Hello, maybe someone know why I get this error?
F=1000;
Fn=F/2;
f=[0:20:160 180 200 220 240:20:500] ;
am=[ones(1,9) 0.9 0.5 0.1 zeros(1,14)];
fn=f/Fn;
N=32;
a=1;
b=firls(N, fn, am);
H=freqz(b, a, 1000);
w=hamming(N);
figure(2);
plot(w*Fn/pi, abs(H));
Thanks in advance

2 Comments

I've edited the code today. Please use the "{} Code" button the next time. Thanks.
For the function "plot(x,y)", if x and y are some vector or matrix, they must have same length or size. If you assume x=w*Fn/pi and y=abs(H), then you can observe that the size of x and y are different. Regards M.Kalita

Sign in to comment.

Answers (1)

Request 2 outputs from your freqz call, rather than creating your own frequency vector:
[H,w]=freqz(b, a, 1000);
figure(2);
plot(w, abs(H));

Categories

Find more on Printing and Saving in Help Center and File Exchange

Tags

Asked:

on 12 Apr 2017

Answered:

on 12 Apr 2017

Community Treasure Hunt

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

Start Hunting!