Can anybody please give me the CODE for the below question in matlab?. urgently
이전 댓글 표시
find and sketch the phase and magnitude of DTFT of X[n] sin(n*pi/6) over a period -2pi to 2pi
댓글 수: 5
Wayne King
2013년 11월 15일
Sounds very much like a homework problem; so you should try on your own and show people where you get stuck with your own MATLAB code.
nihal
2013년 11월 15일
Umair Nadeem
2013년 11월 15일
I'll give it a try and let you know
nihal
2013년 11월 15일
Image Analyst
2013년 11월 15일
You're supposed to tag your question as homework so you don't trick people into doing your homework for you. http://www.mathworks.com/matlabcentral/answers/8626-how-do-i-get-help-on-homework-questions-on-matlab-answers. I'll tag it for you.
답변 (1개)
Umair Nadeem
2013년 11월 15일
편집: Umair Nadeem
2013년 11월 15일
I tried it myself and I came up with this. I had to assume a few things but it works with what seems to be your problem. Hope it helps
clear all;
clc;
fs = 1000; % Assumed Sampling frequency
ts = 1/fs; % Sampling rate
n = (-360:360); % duration/index
% Assuming pi = 180 --> pi/6 = 30
% It gives the frequency of signal = 30 Hz
xn = sin(n * 30 * ts);
plot(n, xn)
title('Plot of Signal from -2pi to 2pi')
xlabel('Samples')
ylabel('Magnitude');
% Total duration of signal
dur = length(n);
% NFFT = Duration which can be represented in the power of 2
NFFT = 2 ^ nextpow2(dur);
% Compute Fast Fourier Transform using number of points = NFFT
xn_freq = (fft(xn, NFFT))/dur;
% Calculate the points of x-axis in frequency domain
x_axis = (fs/2) * linspace(0, 1, (NFFT/2) + 1);
figure (2);
subplot 211;
% Selecting half points (N/2+1) only because the other half is a replica
plot(x_axis, 2 * abs(xn_freq(1 : NFFT/2 + 1)));
max_mag = max(2 * abs(xn_freq(1 : NFFT/2 + 1)));
fprintf('Maximum Magnitude is = %f', max_mag);
xlim([-360 360])
grid on;
title('Magnitude of Frequency Domain Spectrum (Peak at Signal Frequency)');
xlabel('Frequency from -360 to 360 (Hz)');
ylabel('Magnitude');
% Computation of phase
xn_ph = unwrap(angle(xn_freq));
% Computation of horizontal points to correctly represent the data
f_dom = (0:length(xn_freq)-1)'/length(xn_freq) * fs;
subplot 212;
plot(f_dom, xn_ph);
grid on;
xlim([-360 360])
title('Phase of Frequency Domain Spectrum (Peak at Initial Phase)');
xlabel('Frequency from -360 to 360 (Hz)');
ylabel('Phase');
댓글 수: 5
nihal
2013년 11월 15일
Umair Nadeem
2013년 11월 15일
There was a mistake in fprintf please correct it
nihal
2013년 11월 15일
Umair Nadeem
2013년 11월 17일
That was just a name for a variable for number of points of FFT, you can gve it any name you want.
카테고리
도움말 센터 및 File Exchange에서 Signal Operations에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!