hello i have this program that make ifft for some random vary maybe someone can help me with the fft? thanks
N=10;
fs=1e6;
T=1e-3;
% random signal
bit=randint(20,1); % 20 bits 0 or 1 1 x 20
% serial-to-parallel converter
par=reshape(bit,2,10); % 2 x 10 2 bits for sym
% mapper
sym=par'*[2;1]; % multiplay for mapper 00-0 01-1 10-2 11-3
phase=[-3*pi/4,3*pi/4,-pi/4,pi/4];
phase_sym=phase(sym+1); % every sym gets phase for example pi/4 will get '3'
% IFFT
for k=0:N-1
i=1;
for t=1/fs:1/fs:T
x(k+1,i)=cos((2*pi*k*t)/T+phase_sym(k+1))+j*sin((2*pi*k*t)/T+phase_sym(k+1));
i=i+1;
end
end

 채택된 답변

Arturo Moncada-Torres
Arturo Moncada-Torres 2011년 5월 20일

0 개 추천

Why don't you use MATLAB's fft and ifft functions directly?
EDIT
For example, if you want it to have a length of 1000, it is very easy:
% Suppose "x" is the signal you want
x_fft = fft(x, 1000);
x_mag = abs(x_fft); % Magnitude
x_pha = angle(x_fft); % Phase

추가 답변 (2개)

itsik
itsik 2011년 5월 20일

0 개 추천

cause i need the length of the fft will be 1000 do u know how i make it? with fft?
itsik
itsik 2011년 5월 20일

0 개 추천

maybe someone's know? or how to replace all this code in ifft command?

카테고리

도움말 센터File Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by