# MATLAB: Specter of a square signal(10Khz) at 10MHz frequency

vector same length

I want to draw a frequency spectre of a square signal. Sampling is being performed at 10MHz, i want to see 4 polygons of that frequency
My current code is like this
close all;
%Define number of samples to take
fs = 100e3; %%% 100 kHz
f0 = 10e3; %Hz
%Define signal
t = 0:1/fs:1-1/fs;
dT = length(y);
t1=(0:dT-1)/f0/100;
dolzina=length(t);
y= zeros(1,dolzina);
y(1:fix(dolzina/2))=1;
y=[y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y];
signal = y;
figure(1)
plot(t1, signal);
%Take fourier transform
fftsignal = fft(y);
%apply fftshift to put it in the form
fftsignal = fftshift(fftsignal);
%Next, calculate the frequency axis, which is defined by the sampling rate
f = fs/2*linspace(0,30,fs);
fq = length(f)
%Since the signal is complex, we need to plot the magnitude to get it to
%look right, so we use abs (absolute value)
figure(2)
plot(f, abs(fftsignal));
i get an error, that i can't plot the transformed signal because of vectors not being the same length
can anyone help?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load signal%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dummy dataFs = 100e3;     % sampling freqf0 = 10e3;     % signal freqduration = 1;   % signal duration (s)samples = Fs*duration;t = (0:samples-1)*1/Fs;% signal = square(2*pi*f0*t); % neg / pos symetrical square wave ( -1 / +1)signal = 0.5*(square(2*pi*f0*t)+1); % 0 / pos  square wave ( 0 / +1)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FFT parameters%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%NFFT = 10000;    % Overlap = 0.75;w = hanning(NFFT);     % Hanning window / Use the HANN function to get a Hanning window which has the first and last zero-weighted samples.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% display : averaged FFT spectrum %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[freq,fft_spectrum] = myfft_peak(signal, Fs, NFFT, Overlap);sensor_spectrum_dB = 20*log10(fft_spectrum);% convert to dB scale (ref = 1)figure(1),plot(freq,sensor_spectrum_dB,'b');gridtitle(['Averaged FFT Spectrum  / Fs = ' num2str(Fs) ' Hz / Delta f = ' num2str(freq(2)-freq(1)) ' Hz ']);xlabel('Frequency (Hz)');ylabel(' dB')text(locs+.02,pks,num2str(freq(locs)))function  [freq_vector,fft_spectrum] = myfft_peak(signal, Fs, nfft, Overlap)% FFT peak spectrum of signal  (example sinus amplitude 1   = 0 dB after fft).% Linear averaging%   signal - input signal, %   Fs - Sampling frequency (Hz).%   nfft - FFT window size%   Overlap - buffer overlap % (between 0 and 0.95)signal = signal(:);samples = length(signal);% fill signal with zeros if its length is lower than nfftif samples<nfft    s_tmp = zeros(nfft,1);    s_tmp((1:samples)) = signal;    signal = s_tmp;    samples = nfft;end% window : hanningwindow = hanning(nfft);window = window(:);%    compute fft with overlap  offset = fix((1-Overlap)*nfft); spectnum = 1+ fix((samples-nfft)/offset); % Number of windows%     % for info is equivalent to : %     noverlap = Overlap*nfft;%     spectnum = fix((samples-noverlap)/(nfft-noverlap));	% Number of windows    % main loop    fft_spectrum = 0;    for i=1:spectnum        start = (i-1)*offset;        sw = signal((1+start):(start+nfft)).*window;        fft_spectrum = fft_spectrum + (abs(fft(sw))*4/nfft);     % X=fft(x.*hanning(N))*4/N; % hanning only     end    fft_spectrum = fft_spectrum/spectnum; % to do linear averaging scaling% one sidded fft spectrum  % Select first half     if rem(nfft,2)    % nfft odd        select = (1:(nfft+1)/2)';    else        select = (1:nfft/2+1)';    endfft_spectrum = fft_spectrum(select);freq_vector = (select - 1)*Fs/nfft;end