Why i can't plot a spectrum of a rectangular window function?
이전 댓글 표시
Hi everyone! I have a problem, so could you explain to me? I knew that, to plot a spectrum of any windows function we can use "wvtool" command in Matlab or you can find a code to do this on google. But, why i can do this with my code? My plot (use my code) is different with that uses "wvtool". P/s:i understood that spectrum of any window (rect, hanning....) function is FFT of the windows. Is that right or wrong?. And my code:
t=0:100;
N=length(t)-1;
rect=rectwin(N+1); % create a rectangular windows function
taxis=-N/2:N/2; % time axis
plot(taxis,rect); % Plot rectangular windows in time domain.
fftrect=fft(rect); % calculate spectrum of the rectangular window
figure;
plot(taxis,20*log10(abs(fftrect))) % Plot rectangular windows in frequency domain.
wvtool(rect) % Plot rectangular windows in frequency domain use "wvtool" to compare
채택된 답변
추가 답변 (1개)
Honglei Chen
2018년 1월 29일
There is a mistake in your plotting command. Because the spectrum is in frequency domain, you need to have a frequency axis instead of time axis.
As to the curve it self, your concept is correct. However, the one in wvtool is computed with 1024 points, you can reproduce it using the following code snippet.
nfft = 1024;
fftrect=fft(rect,nfft); % calculate spectrum of the rectangular window
faxis = 0:2/nfft:2-2/nfft;
figure;
plot(faxis(1:nfft/2),20*log10(abs(fftrect(1:nfft/2)))) % Plot rectangular windows in frequency domain.
HTH
댓글 수: 3
Le Dung
2018년 1월 30일
Honglei Chen
2018년 1월 30일
That's how the frequency axis is defined in normalized frequency domain. Essentially it divides 0 to 2 to nfft equal bins.
HTH
Le Dung
2018년 1월 30일
카테고리
도움말 센터 및 File Exchange에서 Windows에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!