Untitled

 avatar
unknown
plain_text
20 days ago
2.3 kB
1
Indexable
clc; clear; close all;

n = -20:20;  % Time axis (discrete time indices)
f = 1;     % Frequency for sinusoidal and cosine signals (Hz)
Fs = 100;    % Sampling frequency (samples/sec)
A = 1;       % Amplitude
tau = 5;    % Width parameter for rectangular and triangular pulses
alpha = 0.9; % Parameter for exponential signal

% --- 1. Sinusoidal Signal ---
t = n/Fs; % Convert discrete indices to time (seconds)
sinusoidal = A * sin(2*pi*f*t);

% --- 2. Cosine Signal ---
cosine = A * cos(2*pi*f*t);

% --- 3. Triangular Signal ---
triangular = zeros(size(n));
triangular(n >= -tau & n <= tau);
for i=1:length(n)
    if (n(i)>=-tau && n(i)<=0)
        triangular(i) = (1 + (n(i)/tau));
    elseif (n(i)>0 && n(i)<= tau)
        triangular(i) = (1- (n(i)/tau));
    end
end

% --- 4. Sawtooth Signal ---
sawtooth = A * mod(n, 10) / 5 -1; % Simple discrete sawtooth

% --- 5. Rectangular Signal ---
rectangular = zeros(size(n));
rectangular(n >= -tau/2 & n <= tau/2) = 1;

% --- 6. Exponential Signal ---
exponential = A * (alpha).^n;

% --- 7. Unit Impulse Signal ---
unit_impulse = zeros(size(n));
unit_impulse(n == 0) = 1;

% --- 8. Unit Step Signal ---
unit_step = zeros(size(n));
unit_step(n >= 0) = 1;

% --- 9. Unit Ramp Signal ---
unit_ramp = zeros(size(n));
unit_ramp(n >= 0) = n(n >= 0);

figure;

% Subplot layout
subplot(3,3,1);
stem(t,sinusoidal,'k'); title('Sinusoidal'); xlabel('Time (sec)'); ylabel('Amplitude');
subplot(3,3,2);
stem(t,cosine,'k'); title('Cosine'); xlabel('Time (sec)'); ylabel('Amplitude');
subplot(3,3,3);
stem(n,triangular,'k'); title('Triangular'); xlabel('n'); ylabel('Amplitude');
subplot(3,3,4);
stem(n,sawtooth,'k'); title('Sawtooth'); xlabel('n'); ylabel('Amplitude');
subplot(3,3,5);
stem(n,rectangular,'k'); title('Rectangular'); xlabel('n'); ylabel('Amplitude');
subplot(3,3,6);
stem(n,exponential,'k'); title('Exponential'); xlabel('n'); ylabel('Amplitude');
subplot(3,3,7);
stem(n,unit_impulse,'k'); title('Unit Impulse'); xlabel('n'); ylabel('Amplitude');
subplot(3,3,8);
stem(n,unit_step,'k'); title('Unit Step'); xlabel('n'); ylabel('Amplitude');
subplot(3,3,9);
stem(n,unit_ramp,'k'); title('Unit Ramp'); xlabel('n'); ylabel('Amplitude');

sgtitle('Elementary Discrete-Time Signals ');
Leave a Comment