add (white) Gaussian noise to displacement signal, noise level = ( |x-x*| / |x*| ): can I use utilize awgn()?

4 views (last 30 days)
I want to add artificial (white) Gaussian noise to my numerically generated signal. In the title of my question,
x %is the displacement signal including noise
x* %is the noiseless displacement signal
noise_level = ( |x-x*| / |x*| )
I read that awgn() function requires the signal-noise-ratio. I have no deep knowledge about signal theory.
My question is whether I can translate my noise_level into a SNR?

Accepted Answer

Nadia Shaik
Nadia Shaik on 6 Mar 2023
Hi Simon,
I understand that you want to translate noise level to SNR so that you can add AWGN noise to a signal.
SNR stands for Signal-to-Noise Ratio, which is a measure of the ratio of the power of the signal to the power of the noise. It is often expressed in decibels (dB) and is a common metric used to evaluate the quality of a signal in the presence of noise.
The formula to convert noise_level to SNR in decibels (dB) is:
SNRdB = 10 * log10(P_signal / P_noise)
where P_signal is the power of the noiseless signal, and P_noise is the power of the noise.
To calculate P_noise, you can use the following formula:
P_noise = (noise_level * norm(x))^2;
where x is the noiseless signal.
You can calculate SNR and then pass it to "awgn" function to add Gaussian noise to your signal.
I hope this helps!

More Answers (0)

Categories

Find more on Propagation and Channel Models in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!