What is the problem in this code?

조회 수: 1 (최근 30일)
Hassan Ali Shah
Hassan Ali Shah 2015년 1월 2일
댓글: Hassan Ali Shah 2015년 1월 2일
f0=100;
f=(0:f0/40:f0*2);
Ts=1/fs;
n=0:8;
xs = 5*cos(2*pi*f0*n*Ts);
i=fft(xs);
plot(f,abs(i(1:81)))
  댓글 수: 1
Hassan Ali Shah
Hassan Ali Shah 2015년 1월 2일
it gives the error Index exceeds matrix dimensions.
Error in Untitled (line 7) plot(n,abs(i(1:81)));

댓글을 달려면 로그인하십시오.

채택된 답변

Shoaibur Rahman
Shoaibur Rahman 2015년 1월 2일
편집: Shoaibur Rahman 2015년 1월 2일
Your n has a length of 9, as n=0:8, so i will have length of 9 as well,and hence, you cannot write i(1:81). There are many ways to solve this. Here is one: replace n = 0:8 by n = linspace(0,8,length(f)). This will make both f and i of same length.
Also, although plot(f,abs(i(1:81))) works fine, but you can simply use plot(f,abs(i))
Another way may be: keep everything same, but write i = fft(xs,length(f)) . This will perform 81 point fft on xs. Again, you can use plot(f,abs(i))
  댓글 수: 1
Hassan Ali Shah
Hassan Ali Shah 2015년 1월 2일
thanks dear. it worked.though both the ways are doing good,but your "another way" suits me more. thanks alot

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Filter Analysis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by