problem in plotting figure

2 ビュー (過去 30 日間)
imran khan
imran khan 2019 年 11 月 7 日
コメント済み: imran khan 2019 年 11 月 12 日
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')

回答 (1 件)

KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 11 月 7 日
編集済み: KALYAN ACHARJYA 2019 年 11 月 8 日
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 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 11 月 11 日
@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 2019 年 11 月 12 日
no dear its not right.In time domain my signal should be close to figure(1) but with little bit distortion

サインインしてコメントする。

カテゴリ

Help Center および File ExchangePlot Customization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by