¿Cómo agregar ruido gaussiano blanco a la señal usando MATLAB?

En este artículo, vamos a discutir la adición de » ruido gaussiano blanco » a señales como seno, coseno y onda cuadrada usando MATLAB. El ruido gaussiano blanco se puede agregar a las señales usando la función incorporada MATLAB/GNU-Octave awgn() . Aquí, «AWGN» significa «ruido gaussiano blanco aditivo».

AWGN es un modelo de ruido muy básico que se usa comúnmente en el sistema de comunicación, el procesamiento de señales y la teoría de la información para imitar el efecto de los procesos aleatorios que ocurren en la naturaleza. 

Normalmente tenemos diferentes sintaxis para la función awgn() según la cantidad y el tipo de parámetros que se le pasan. Pero aquí, estudiaremos solo dos sintaxis que se usan más comúnmente en el sistema de comunicación y el procesamiento de señales.

Sintaxis:

awgn(entrada_señal, snr)

Esta sintaxis agregará el ruido gaussiano blanco a la señal de entrada pasada y mantendrá la SNR (relación señal/ruido) pasada en dB. De forma predeterminada, esta sintaxis considera la potencia de input_signal como 0 dBW (decibelio vatio).

awgn(señal_entrada, snr, potencia_señal)

Esta sintaxis hará lo mismo que la primera, pero la única diferencia es que aquí la potencia de input_signal no se considera cero, sino que debe pasarse como uno de los argumentos junto con input_signal y snr.

Nota: La potencia de la señal se puede pasar como «medida» o algún valor escalar para establecer el nivel de señal de input_signal, según el cual se determina el nivel de ruido adecuado en función del valor de snr.

Implementación paso a paso

Comprendamos la implementación con la ayuda de un ejemplo en el que agregaremos el ruido blanco gaussiano a las ondas sinusoidales.

Paso 1: Definir los parámetros requeridos

Matlab

% sampling frequency
fs = 1000;
 
% time sampling with step
% size = 0.001 (1/fs)
t = 0:1/fs:1;
 
% frequency of input signal
f = 20;
 
% SNR to be maintained
snr = 10;

Paso 2: Definir la señal de entrada y trazar 

Matlab

% input message signal (sine wave)
% generates a sine wave of frequency f
st = sin(2 * pi * f * t);
 
% plot the input signal (sine wave)
% 'b' gives blue colour plot
plot(t, st, 'b', 'Linewidth', 2);
xlabel('Time');
ylabel('Amplitude');
title('Input Message Signal');
grid on;

Producción:

Señal de entrada (onda sinusoidal)

Paso 3: Agregar ruido gaussiano blanco a la señal y trazar

Matlab

% signal with white Gaussian noise
% adds White Gaussian Noise to the signal
st_nn = awgn(st, snr, 'measured');
 
% plot the noisy signal
% 'r' gives red colour plot
plot(t, st_nn, 'r', 'Linewidth', 2);
xlabel('Time');
ylabel('Amplitude');
title('Signal After Addition of Noise');
grid on;

Producción:

Señal ruidosa (con ruido gaussiano blanco)

Veamos otro ejemplo Adición de ruido gaussiano blanco a onda cuadrada. Tenemos que seguir los mismos tres pasos anteriores para agregar el ruido gaussiano blanco a la onda cuadrada. Pero esta vez representaremos tanto la señal de entrada como la señal ruidosa simultáneamente en la misma figura para analizar los cambios cuidadosamente.

Matlab

% sampling frequency
fs = 1000;
 
% time sampling with step size
% 0.001 (1/fs)
t = 0:1/fs:1;
 
% frequency of input signal
f = 10;
 
% SNR to be maintained 
snr = 5;
 
% Input Message Signal
% generates a square wave of
% frequency f
st = square(2 * pi * f * t);
subplot(2,1,1);
 
% 'b' gives blue colour plot
plot(t,st,'b','Linewidth',2);
xlabel('Time'); ylabel('Amplitude');
title('Input Message Signal');
grid on; 
 
% signal with white Gaussian
% noise adds White Gaussian
% Noise to the signal
st_nn = awgn(st,snr,'measured');
 
% gives a blue colour plot of
% square wave
subplot(2,1,2); plot(t, st, 'b', 'Linewidth', 2);
 
% puts the next graph on the
% same plot
hold on;
 
% gives a red colour plot of the
% AWGN noise
plot(t, st_nn, 'r');
xlabel('Time');
ylabel('Amplitude');
title('Signal After Addition of Noise');
grid on;
hold off;

Producción:

Gráficos de salida

Publicación traducida automáticamente

Artículo escrito por sanju6890 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *