Created Matlab echo signal: Is it an actual "echo?" Or am I just manipulating the signal to make it seem like an echo? This is just an outline of what I did (assume that all my dimensions fit):

    (code that imports audio to read audio as function x)
    X=fft(x);
    (code to define time t and frequency f)

    H=L+M*exp(-1i*2*pi*f*N)+O*exp(-1i*2*pi*f*P);
    % This is where it gets tricky 
    % In the frequency domain I have the function above where f is the frequency 
    % variable and L M N O P are arbitrary values

    Y=X.*H;   
    % again assume dimensions fit

    y=real(ifftshift(ifft(Y)*length(t)));
    %Taking the inverse fft and fftshift was the only way I could get back a signal
    % Once again assume the dimensions fit 


Here L M N O P = [.9 .75 1.0 .5 .5]





Is this legit? or am I just pulling my own leg?
Is it an actual "echo?" Or am I just manipulating the signal to make it seem like an echo?
To generate a repetitive echo all you need to do is pass your signal through an appropriate AR filter with a delay corresponding to the echo period. For instance the following code generates (for a damped 1 Hz sinusoid sampled at 100 Hz) an echo which repeats every 1000 samples. The strength of the echo can be adjusted by the AR filter coefficient (0.5 here)

Example Matlab code

% generate 10000 samples of a damped sinusoid at 100 Hz
sig = sin(2*pi*(0:9999)/100).*exp(-(0:9999)/200);

% AR filter to generate a repetitive echo, period 1000 samples (10 seconds)
b = 1;
a= [1 zeros(1,999), 0.5];

echo = filter(b,a,sig);


You may want to experiment with your AR filter to match your echo decay. Also look into 'gapped deconvolution'