MATLAB: How to generate a signal with duration and period

signal processing

I want to generate a signal using the function: (sin(2π/u)T +1), taken at t = 0, 1, 2, . . . 32sec with u = 32 sec and repeated every 128 seconds.
A noise with the variance of 0.01 also needs to be added to the signal.
The signal should look like this:

Best Answer

  • I guess you made a mistake will writing the equation of periodic function. (sin(2π/u)T +1) canot create such a signal. Try the following code
    duration = 32;
    period = 128;
    u = 32;
    T = 0:32;
    one_cycle = [sin(pi/u*T) zeros(1, period-numel(T))]+1;
    num_cycles = 5;
    signal = repmat(one_cycle, 1, num_cycles);
    noisy_signal = signal + randn(1, numel(signal))*0.1; % noise with variance 0.1
    T = 0:numel(noisy_signal)-1;
    subplot(2,1,1);
    plot(T, signal);
    subplot(2,1,2);
    plot(T, noisy_signal);