problem in plotting figure

2 views (last 30 days)
imran khan
imran khan on 7 Nov 2019
Commented: imran khan on 12 Nov 2019
Dear fellows,i have modified code but i have problem in plotting the last figure(4) and problem is in this line plot(tvec,abs(zifft)).Problem was in my resolution in FFT.Can anyone edit my code please.
clc,close all,clear all
codn=100;
% fc=6e+3;
fs=36000;
bode=1000;
code=round(rand(1,codn));
code_len=round(1/bode/(1/fs))
for ii=1:codn
x((ii-1)*code_len+1:code_len*ii)=code(ii)
end
x2 = x-(1/2) % get rid of most of the dc peak
% set up time and frequency arrays
length(x)
N = length(x)
delt = 1/fs;
delf = fs/N;
tvec = (1:N)*delt;
n = 2^nextpow2(N);
fvec = (-n/2:n/2-1)*delf ; % shifted frequency array
figure(1)
plot(tvec,x2(1,:)+0.5)
title('orignal baseband')
xlabel('time');
ylabel('amplitude')
ylim([-1 1.5]);
y = fftshift(fft(x2,n));
z=abs(y);
figure(2)
plot(fvec,z)
title('FFT')
xlabel('frequency')
ylabel('amplitude')
figure(3)
z=y;
z(abs(fvec)>=50& abs(fvec)<=150)=0
plot(fvec,abs(y))
xlabel('frequency removed from 50 to 150 HZ');
ylabel('amplitude')
figure(4)
zf=fftshift(z)*n;
zifft=ifft(zf)+0.5;
plot(tvec,abs(zifft))
ylim([-1 1.5])
title('recovered signal')
xlabel('time');
ylabel('amplitude')

Answers (1)

KALYAN ACHARJYA
KALYAN ACHARJYA on 7 Nov 2019
Edited: KALYAN ACHARJYA on 8 Nov 2019
In the line no 44, see both variable have different lengths, how can plot two different lengths vectors
here
plot(tvec,abs(zifft))
##
>> whos tvec
Name Size Bytes Class Attributes
tvec 1x3600 28800 double
>> whos zifft
Name Size Bytes Class Attributes
zifft 1x4096 32768 double
Do change the code/equations, ensure that, in any plot all vectors must be same length.
Please check with back approach and see length of required variables why vectors reflects those having different lengths.
  7 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 11 Nov 2019
@Imran
Is this?
figure(4)
y=fftshift(fft(x2,length(tvec)));
z=y;
z(abs(fvec)>=50 & abs(fvec)<=150)=0
zf=fftshift(z)*n;
zifft=ifft(zf)+0.5;
plot(tvec,abs(zifft))
%ylim([-1 1.5])
title('recovered signal')
xlabel('time');
ylabel('amplitude')
56.png
imran khan
imran khan on 12 Nov 2019
no dear its not right.In time domain my signal should be close to figure(1) but with little bit distortion

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!