Skip to main content

Wide Sense Stationary Signal (WSS)


Stationary and Wide Sense Stationary Process

A stochastic process {…, Xt-1, Xt, Xt+1, Xt+2, …} consisting of random variables indexed by time index t is a time series.

The stochastic behavior of {Xt} is determined by specifying the probability density or mass functions (pdf’s):

p(xt1, xt2, xt3, …, xtm)

for all finite collections of time indexes

{(t1, t2, …, tm), m < ∞}

i.e., all finite-dimensional distributions of {Xt}.

A time series {Xt} is strictly stationary if

p(t1 + τ, t2 + τ, …, tm + τ) = p(t1, t2, …, tm),

∀τ, ∀m, ∀(t1, t2, …, tm).

Where p(t1 + τ, t2 + τ, …, tm + τ) represents the cumulative distribution function of the unconditional (i.e., with no reference to any particular starting value) joint distribution. A process {Xt} is said to be strictly stationary or strict-sense stationary if τ doesn’t affect the function p. Thus, p is not a function of time.

A time series {Xt} is called covariance stationary if

E(Xt) = μ

Var(Xt) = σx2

Cov(Xt, Xt+τ) = γ(τ)

(All constant over time t)

Wide Sense Stationary Process

A random process is called weak-sense stationary or wide-sense stationary (WSS) if its mean function and its correlation function do not change by shifts in time.

μx(t) = μx

Rxx(t1, t2) = Rxx(t1 + α, t2 + α) for every α


Main Properties

  1. The mean and autocorrelation do not change over time.
  2. A wide-sense stationary (WSS) process has a constant mean, constant variance, and an autocorrelation function that depends only on the time difference (lag), not the absolute time.


For a WSS input to an LTI system, you are expected to study the output's statistical properties (such as mean, variance, and autocorrelation). You will find that the output signal is also a WSS signal. If your input signal has zero mean and unit variance, then the LTI output will have the same nature as the input signal, but:

  1. The mean of the output is scaled by the DC gain of the LTI system.
  2. The variance of the output is scaled by the total power gain of the system.



















MATLAB Code to Check the Autocorrelation Property of a WSS Signal Over Time

%The code is developed by SalimWireless.com
clc;
clear;
close all;


% Generate a wide-sense stationary (WSS) signal with 0 mean and unit variance
N = 1000; % Length of the signal
X = randn(1, N); % WSS signal


% Define the time indices t1 and t2
t1 = 0; % Time index 1
t2 = 100; % Time index 2


% Initialize autocorrelation value
Rx_val = 0;


% Loop to compute the sum for autocorrelation at (t1, t2)
for n = 1:N
% Ensure indices (n + t1) and (n + t2) are within bounds
if (n + t1 <= N) && (n + t2 <= N)
Rx_val = Rx_val + X(n + t1) * X(n + t2);
else
break; % Stop if indices go out of bounds
end
end


% Normalize by the length of the signal
Rx_val = Rx_val / N;


% Define the time indices t1 and t2
t3 = 100; % Time index 1
t4 = 200; % Time index 2


% Initialize autocorrelation value
Rx_val1 = 0;


% Loop to compute the sum for autocorrelation at (t1, t2)
for n = 1:N
% Ensure indices (n + t1) and (n + t2) are within bounds
if (n + t3 <= N) && (n + t4 <= N)
Rx_val1 = Rx_val1 + X(n + t3) * X(n + t4);
else
break; % Stop if indices go out of bounds
end
end


% Normalize by the length of the signal
Rx_val1 = Rx_val1 / N;
% Display the result
disp(['R_X(', num2str(t2), ') = ', num2str(Rx_val)]);
disp(['R_X(', num2str(t3), ', ', num2str(t4), ') = ', num2str(Rx_val)]);

Output

R_X( 100) = 0.039786
R_X(100, 200) = 0.039786


Copy the MATLAB Code above from here



MATLAB Code for the Output of an ARMA Filter When the Input is a WSS Signal

clc; clear; close all;

% Step 1: Get user input for WSS signal parameters
mu = input('Enter the mean of the WSS signal: ');
sigma2 = input('Enter the variance of the WSS signal: ');
N = 1000; % Length of signal

% Generate WSS signal with specified mean and variance
x = sqrt(sigma2) * randn(1, N) + mu;

% Step 2: Define ARMA filter coefficients
b = [1, -0.5]; % MA coefficients
a = [1, -0.8]; % AR coefficients (assumed stable)

% Step 3: Apply ARMA filter using built-in function
y = filter(b, a, x); % y[n] = (b/a) * x[n]

% Step 4: Calculate mean and variance
mean_x = mean(x);
mean_y = mean(y);
var_x = var(x);
var_y = var(y);

% Step 5: Display results
fprintf('Mean of input signal: %.4f\n', mean_x);
fprintf('Mean of output signal: %.4f\n', mean_y);
fprintf('Variance of input signal: %.4f\n', var_x);
fprintf('Variance of output signal: %.4f\n', var_y);

% Step 6: Plot input and output signals
figure;
subplot(2,1,1);
plot(x); title('Input Signal (WSS)'); ylabel('x[n]');
subplot(2,1,2);
plot(y); title('Output Signal (After ARMA Filter)'); ylabel('y[n]');

% Step 7: Autocorrelation comparison
figure;
subplot(2,1,1);
[R_x, lags_x] = xcorr(x - mean_x, 'biased');
plot(lags_x, R_x); title('Autocorrelation of Input x[n]');
xlabel('Lag'); ylabel('R_x');

subplot(2,1,2);
[R_y, lags_y] = xcorr(y - mean_y, 'biased');
plot(lags_y, R_y); title('Autocorrelation of Output y[n]');
xlabel('Lag'); ylabel('R_y');

Output

Enter the mean of the WSS signal: 0
Enter the variance of the WSS signal: 1
Mean of input signal: -0.0214
Mean of output signal: -0.0545
Variance of input signal: 1.0593
Variance of output signal: 1.3152

Copy the aforementioned MATLAB code from here


People are good at skipping over material they already know!

View Related Topics to







Admin & Author: Salim

s

  Website: www.salimwireless.com
  Interests: Signal Processing, Telecommunication, 5G Technology, Present & Future Wireless Technologies, Digital Signal Processing, Computer Networks, Millimeter Wave Band Channel, Web Development
  Seeking an opportunity in the Teaching or Electronics & Telecommunication domains.
  Possess M.Tech in Electronic Communication Systems.


Contact Us

Name

Email *

Message *

Popular Posts

Simulation of ASK, FSK, and PSK using MATLAB Simulink

📘 Overview 🧮 How to use MATLAB Simulink 🧮 Simulation of ASK using MATLAB Simulink 🧮 Simulation of FSK using MATLAB Simulink 🧮 Simulation of PSK using MATLAB Simulink 🧮 Simulator for ASK, FSK, and PSK 🧮 Digital Signal Processing Simulator 📚 Further Reading ASK, FSK & PSK HomePage MATLAB Simulation Simulation of Amplitude Shift Keying (ASK) using MATLAB Simulink      In Simulink, we pick different components/elements from MATLAB Simulink Library. Then we connect the components and perform a particular operation.  Result A sine wave source, a pulse generator, a product block, a mux, and a scope are shown in the diagram above. The pulse generator generates the '1' and '0' bit sequences. Sine wave sources produce a specific amplitude and frequency. The scope displays the modulated signal as well as the original bit sequence created by the pulse generator. Mux is a tool for displaying b...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...

📘 Overview of BER and SNR 🧮 Online Simulator for BER calculation of m-ary QAM and m-ary PSK 🧮 MATLAB Code for BER calculation of M-ary QAM, M-ary PSK, QPSK, BPSK, ... 📚 Further Reading 📂 View Other Topics on M-ary QAM, M-ary PSK, QPSK ... 🧮 Online Simulator for Constellation Diagram of m-ary QAM 🧮 Online Simulator for Constellation Diagram of m-ary PSK 🧮 MATLAB Code for BER calculation of ASK, FSK, and PSK 🧮 MATLAB Code for BER calculation of Alamouti Scheme 🧮 Different approaches to calculate BER vs SNR What is Bit Error Rate (BER)? The abbreviation BER stands for bit error rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. It is defined as,  In mathematics, BER = (number of bits received in error / total number of transmitted bits)  On the other hand, SNR ...

MATLAB Code for ASK, FSK, and PSK

📘 Overview & Theory 🧮 MATLAB Code for ASK 🧮 MATLAB Code for FSK 🧮 MATLAB Code for PSK 🧮 Simulator for binary ASK, FSK, and PSK Modulations 📚 Further Reading ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for ASK Modulation and Demodulation % The code is written by SalimWireless.Com % Clear previous data and plots clc; clear all; close all; % Parameters Tb = 1; % Bit duration (s) fc = 10; % Carrier frequency (Hz) N_bits = 10; % Number of bits Fs = 100 * fc; % Sampling frequency (ensure at least 2*fc, more for better representation) Ts = 1/Fs; % Sampling interval samples_per_bit = Fs * Tb; % Number of samples per bit duration % Generate random binary data rng(10); % Set random seed for reproducibility binary_data = randi([0, 1], 1, N_bits); % Generate random binary data (0 or 1) % Initialize arrays for continuous signals t_overall = 0:Ts:(N_bits...

Comparisons among ASK, PSK, and FSK | And the definitions of each

📘 Comparisons among ASK, FSK, and PSK 🧮 Online Simulator for calculating Bandwidth of ASK, FSK, and PSK 🧮 MATLAB Code for BER vs. SNR Analysis of ASK, FSK, and PSK 📚 Further Reading 📂 View Other Topics on Comparisons among ASK, PSK, and FSK ... 🧮 Comparisons of Noise Sensitivity, Bandwidth, Complexity, etc. 🧮 MATLAB Code for Constellation Diagrams of ASK, FSK, and PSK 🧮 Online Simulator for ASK, FSK, and PSK Generation 🧮 Online Simulator for ASK, FSK, and PSK Constellation 🧮 Some Questions and Answers Modulation ASK, FSK & PSK Constellation MATLAB Simulink MATLAB Code Comparisons among ASK, PSK, and FSK    Comparisons among ASK, PSK, and FSK Comparison among ASK, FSK, and PSK Parameters ASK FSK PSK Variable Characteristics Amplitude Frequency ...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...

🧮 MATLAB Code for BPSK, M-ary PSK, and M-ary QAM Together 🧮 MATLAB Code for M-ary QAM 🧮 MATLAB Code for M-ary PSK 📚 Further Reading MATLAB Script for BER vs. SNR for M-QAM, M-PSK, QPSK, BPSK % Written by Salim Wireless clc; clear; close all; num_symbols = 1e5; snr_db = -20:2:20; psk_orders = [2, 4, 8, 16, 32]; qam_orders = [4, 16, 64, 256]; ber_psk_results = zeros(length(psk_orders), length(snr_db)); ber_qam_results = zeros(length(qam_orders), length(snr_db)); for i = 1:length(psk_orders) psk_order = psk_orders(i); for j = 1:length(snr_db) data_symbols = randi([0, psk_order-1], 1, num_symbols); modulated_signal = pskmod(data_symbols, psk_order, pi/psk_order); received_signal = awgn(modulated_signal, snr_db(j), 'measured'); demodulated_symbols = pskdemod(received_signal, psk_order, pi/psk_order); ber_psk_results(i, j) = sum(data_symbols ~= demodulated_symbols) / num_symbols; end end for ...

Constellation Diagrams of ASK, PSK, and FSK

📘 Overview of Energy per Bit (Eb / N0) 🧮 Online Simulator for constellation diagrams of ASK, FSK, and PSK 🧮 Theory behind Constellation Diagrams of ASK, FSK, and PSK 🧮 MATLAB Codes for Constellation Diagrams of ASK, FSK, and PSK 📚 Further Reading 📂 Other Topics on Constellation Diagrams of ASK, PSK, and FSK ... 🧮 Simulator for constellation diagrams of m-ary PSK 🧮 Simulator for constellation diagrams of m-ary QAM BASK (Binary ASK) Modulation: Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1.    BFSK (Binary FSK) Modulation: Transmits one of two signals: +√Eb​ ( On the y-axis, the phase shift of 90 degrees with respect to the x-axis, which is also termed phase offset ) or √Eb (on x-axis), where Eb​ is the energy per bit. These signals represent binary 0 and 1.  BPSK (Binary PSK) Modulation: Transmits one of two signals...

MATLAB Code for Constellation Diagram of QAM configurations such as 4, 8, 16, 32, 64, 128, and 256-QAM

📘 Overview of QAM 🧮 MATLAB Code for m-ary QAM (4-QAM, 16-QAM, 32-QAM, ...) 🧮 Online Simulator for M-ary QAM Constellations (4-QAM, 16-QAM, 64-QAM, ...) 📚 Further Reading 📂 Other Topics on Constellation Diagrams of QAM configurations ... 🧮 MATLAB Code for 4-QAM 🧮 MATLAB Code for 16-QAM 🧮 MATLAB Code for m-ary QAM (4-QAM, 16-QAM, 32-QAM, ...) 🧮 Simulator for constellation diagrams of m-ary PSK 🧮 Simulator for constellation diagrams of m-ary QAM 🧮 Overview of Energy per Bit (Eb / N0) 🧮 Online Simulator for constellation diagrams of ASK, FSK, and PSK 🧮 Theory behind Constellation Diagrams of ASK, FSK, and PSK 🧮 MATLAB Codes for Constellation Diagrams of ASK, FSK, and PSK   One of the best-performing modulation techniques is QAM [↗] . Here, we modulate the symbols by varying the carrier signal's amplitude and phase in response to the vari...

MATLAB Code for Channel Impulse Response

MATLAB Code for Channel Impulse Response (CIR) 📘 Overview & Theory 🧮 MATLAB Code 🤔 How does CIR affect the signal? 🛠️ How to Mitigate Channel Distortion? 📚 Further Reading MATLAB Script for Simulating CIR This MATLAB script allows you to generate and visualize the channel impulse response (CIR). You can choose to create a 'random' multi-path channel or a near-'ideal' single-path channel to understand their distinct characteristics. % User input for choosing the type of impulse response response_type = input('Enter "random" for random channel impulse response or "ideal" for near-ideal impulse response: ', 's'); if strcmpi(response_type, 'random') % Parameters for random impulse response num_taps = input('Enter the number of taps: '); % Number of taps in the channel d...