matlabvectorgraphsignalsmodulation

Plottng Error Vector Must Be Same Length


So I'm Having Trouble graphing this SSB signal after I modulated it. I keep getting the Vector Length error.

function SSB = SSBMOD

%Setting Up Variables
amplitude = 1; % Defining Amplitude
tau_in = 0.010; %Defining Tau
t_in = -0.010:0.0001:0.010; % Defining Time range
Fs = 27000; %Defining Carrier Frequency
Fc = cos(2*pi*Fs*t_in); %Carrier Signal
F = 1/t_in(end)*t_in*Fs*1.25; %Setting Up Frequency Vector for Graph
Sig = ProjectSig(amplitude,tau_in,t_in); %Calling Generated Signal output Function

%Modulating The signal Using SSB AM modulation
SSB = Sig.*Fc;
%Performing Fast Fourier Transform
SSBff = fft(SSB);
%Filter Signal to SSB
for k = 1000:1800
    SSBff(k) = 0;
end
%Inverse Fourier Transform to Obtain SSB Signal
SSBSig = ifft(SSBff);

%Plotting Original Signal
subplot(3,3,1);
plot(t_in,Sig,'b');
axis([t_in(1) t_in(end) -1 1]);
title('Original Signal');
xlabel('Time (Sec)');
ylabel('V(t) (V)');
grid
shg

So right here below is the graph I'm having trouble with. I don't understand why My vector Lengths are off.

%Plotting SSB Signal
subplot(3,3,2);
plot(t_in,SSBSig,'b');
axis([t_in(1) t_in(end) -1 1]);
title('Single Sideband Signal');
xlabel('Time (Sec)');
ylabel('V(t) (V)');
grid
shg

end

Solution

  • t is only made up of 201 elements; setting SSBff(k) to zero from k = 1000 to 1800 increases the size of SSBff to 1800 elements. 1800 =/= 201. You should either increase your definition of t so you have more elements, or change what portions of SSBff you're setting to zero

    As an aside, your for loop can also be called with the one line

    SSBff(1000:1800) = 0;