please help correct fft command used to compute equation
1 回表示 (過去 30 日間)
古いコメントを表示
given a discrete-time sinusoid x[n]=10cos(200*pi*t+1.2) where n is between 0 and 100 (including 0 and 100)
With the use of the fft command, i attempted to develop the MATLAB function to compute the follwing equation. Also use the command max in the peak search to determine the peak freqency.
t = 0:0.001:0.1-0.001;
x = 10*cos(200*pi*t+1.2);
function X = dtft(x, 200*pi)
[L1, L] = size(x);
z = exp(-j*w); X = 0;
for n = L-1:-1:0,
X = x(n+1) + z .* X;
end
Y=(X^2)/N
p = max(X)
no outputs return at all. please help correct. thank u!
0 件のコメント
採用された回答
Wayne King
2012 年 10 月 23 日
編集済み: Wayne King
2012 年 10 月 23 日
"With the use of the fft command..."
where have you used the fft() command?
Fs = 1000;
t = 0:0.001:0.1-0.001;
x = 10*cos(2*pi*100*t+1.2);
xdft = fft(x);
xdft = xdft(1:length(x)/2+1);
freq = 0:Fs/length(x):Fs/2;
[maxval,idx] = max(abs(xdft));
freq(idx)
As you see freq(idx) produces the frequency corresponding to the maximum absolute value in the DFT of x.
その他の回答 (1 件)
Matt J
2012 年 10 月 23 日
編集済み: Matt J
2012 年 10 月 23 日
Stop reposting your question in the hopes that somebody will do your homework for you. Thankfully, Wayne's code isn't the complete solution.
Your code doesn't fail to return outputs. It completely fails to run, because it contains absurd syntax errors, like
function X = dtft(x, 200*pi)
When defining a function, it makes no sense to use expressions like 200*pi in the argument list.
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!