PDA

View Full Version : کشیدن سری فوریه



forodo
سه شنبه 14 آبان 1392, 23:19 عصر
سلام
من این کد رو نوشتم ولی هیچ اروری نمی گیره و صفحه سفید واسه من میاره و هیچ شکلی رو نمی کشه.

fs=50;
N=100;
n=0:N-1;
x=cos(22*pi*(n/N))+cos(26*pi*(n/N))+cos(46*pi*(n/N));
y=fft(n);
plot(y,fs)

لطفاً بگید کجای کار مشکل داره.
با تشکر

rahnema1
چهارشنبه 15 آبان 1392, 04:57 صبح
سلام
x اینجا چه کاره است؟
دستور( plot(y برای شما نموداری رسم می کنه که محور xاون بخش حقیقی و محور y اون بخش موهومی تبدیل هست گذاشتن fs نمی دونم اینجا چه فایده ای داره
اگه سیگنال شما x باشه باید از x تبدیل fft بگیرید اگه می خواهید power spectrum بدست بیاورید این کار کنید

fs=50;N=100;n=0:N-1;x=cos(22*pi*(n/N))+cos(26*pi*(n/N))+cos(46*pi*(n/N));
figure;
[psdestx,Fxx] = periodogram(x,rectwin(length(x)),length(x),fs);
plot(Fxx,10*log10(psdestx)); grid on;
xlabel('Hz'); ylabel('Power/Frequency (dB/Hz)');
title('Periodogram Power Spectral Density Estimate');


یا این جوری:

fs=50;N=100;n=0:N-1;x=cos(22*pi*(n/N))+cos(26*pi*(n/N))+cos(46*pi*(n/N));
xdft = fft(x);
xdft = xdft(1:N/2+1);
psdx = (1/(fs*N)).*abs(xdft).^2;
psdx(2:end-1) = 2*psdx(2:end-1);
freq = 0:fs/length(x):fs/2;
plot(freq,10*log10(psdx)); grid on;
title('Periodogram Using FFT');
xlabel('Frequency (Hz)'); ylabel('Power/Frequency (dB/Hz)');


منبع:www.mathworks.com/help/signal/ug/psd-estimate-using-fft.html (http://www.mathworks.com/help/signal/ug/psd-estimate-using-fft.html)