Not a member?

# DSP Blogs > Parth Vakil > Modelling a Noisy Communication Signal in MATLAB for the Analog to Digital Conversion Process

Parth Vakil
Parth is an Electrical Engineer at Naval Research Lab in Washington DC. He graduated with a Masters in Electrical Engineering with a concentration in DSP from University of Maryland. He has been working in the field of communications, networks and signal processing for the last 5 years.

Would you like to be notified by email when Parth Vakil publishes a new blog?

Pageviews: 536

# Modelling a Noisy Communication Signal in MATLAB for the Analog to Digital Conversion Process

Posted by Parth Vakil on Oct 30 2007 under Matlab | Basics

A critical thing to realize while modeling the signal that is going to be digitally processed is the SNR. In a receiver, the noise floor (hence the noise variance and hence its power) are determined by the temperature and the Bandwidth. For a system with a constant bandwidth, relatively constant temperature, the noise power remains relatively constant as well. This implies that the noise variance is a constant.

In MATLAB, the easiest way to create a noisy signal is by using awgn(sig,SNR,'measured'). Or, this has been the method that I have used extensively to generate a noisy signal. Earlier, I failed to realize that this was not correctly modeling the signal that I wanted to process. Using awgn will produce noise after measuring the signal power.

Let me explain with an example. Say that we have generated a signal in MATLAB with variance of 0.5. Suppose we wanted SNR of 0dB, in MATLAB we would simply have y = awgn(sig,0,'measured').

If we measured the var(sig-y) we would end up with an answer of 0.5.

Let us follow the rest of the explanation in the pdf attached

The following short MATLAB script generates the noisy signal:

% Inputs: SNR Value, the Variance of the Noise of the reciever and the

% original sig

% Outputs: The noisy signal and the noise with the required noise variance

function [sign, noise] = sig_model(SNR, noise_var, sig)

sig_std = std(sig);

y = sqrt(noise_var)*sqrt(10^(SNR/10))*sig/sig_std;

sig_variance = var(sig)

scaled_signal_variance = var(y)

sign = awgn(y,SNR,'measured');

noise = sign-y;

noise_variance = var(noise)

Above script will generate the model of the analog signal that will hit the front end of the ADC. In the next blog, I will investigate the effects of the ADC process on this noisy signal.

3.25

posted by Parth Vakil
Parth is an Electrical Engineer at Naval Research Lab in Washington DC. He graduated with a Masters in Electrical Engineering with a concentration in DSP from University of Maryland. He has been working in the field of communications, networks and signal processing for the last 5 years.

Previous post by Parth Vakil: Hello and Introduction
Next post by Parth Vakil: Instantaneous Frequency Measurement
all articles by Parth Vakil

Would you like to be notified by email when Parth Vakil publishes a new blog?

Mobius
Said:
Hello, I am a practicing DSP engineer with interest in communications. I dont currently work in a communications field, but I am taking night classes in an MSEE program in this topic. I have some comments / questions: I am not accustomed to thinking of signal power as being equal to its variance, so I have been exploring this concept. Examining the defintions (for real signals): Average Power = 1/N * summation as n:1->N, of s(n)^2. Variance = 1/N * summation as n:1->N, of [s(n)-mean(s)]^2 These two only become equal when the signal's mean is zero. Would you say that this is typically (or always?) the case in Communications signals? Thanks!
6 years ago
0
Sorry, you need javascript enabled to post any comments.
Said:
u r doing nice work. am also working on project based on matlab. My aim is to reduce noise from noisy signal,image,audio &video signal.can u help me
5 years ago
0
Sorry, you need javascript enabled to post any comments.
vakilp
Replied:
ashonadvance, I am wondering what your SNR is and over what bandwidth. What bandwidths are the actual signals you are looking to reduce noise on. The simples way to do this, if you are operating over a large bandwidth with a "narrow band" signal, is to simply band pass filter it. This can increase your SNR quite a bit.
5 years ago
0
rkp123
Said:
HEY! im working on the transmitter and channel part of an SDR using matlab,could u help with the codin part?my knowledge of dsp is limited.just finished my 2nd yr b.tech
5 years ago
0
Sorry, you need javascript enabled to post any comments.
Said:
hello sir....am just an uder grad working on real time adaptive noise cancellation using neural networks and am stuck....!! any help...?? the problem is knw the basic idea of noise cancellation by substraction but inserting neurals into it seems to be tough...n am not able to find matlab simulation function either....expecting a hellp from ur end...thanks....
4 years ago
0
Sorry, you need javascript enabled to post any comments.
bvgopalimg
Said:
i need engineers help on image processing alogorithm developement
4 years ago
0
Sorry, you need javascript enabled to post any comments.
rk243491
Said:
hi vakil sir...am doing post grad,i need your help,i doing a dissertation on automatic gain control for a wireless receiver,in this main aim is to keeping the signal of wireless receiver within limits to avoid saturation of the ADC.as i have limited knowledge on MAT Lab,could u plz help me...i am expecting positive result from you sir.i am waiting for ur reply.
4 years ago
0
Sorry, you need javascript enabled to post any comments.
sepet2010
Said:
hi..i just want to ask u about SNR..how we want to measuring SNR using matlab for image processing?any source code suitable with that?thanks
3 years ago
0
Sorry, you need javascript enabled to post any comments.
9966886408
Said:
hello, can u send me some matlab code for noise filterring in speeech signal.bcz i am doing project under noice filterring by using fragmentation algorithms.E-mail: manoj.siripuram@gmail.com thank u .
3 years ago
0
Sorry, you need javascript enabled to post any comments.
9966886408
Said:
Hello , i have some doubts can you answer that plz 1)Difference between Windowing And Segmentation? 2)How do We find Feature Vector â€˜s From each frame? 3)How can We Choose Length of Feature Vector? 4)How do we find Energy of Speech Using Signal Representation?Is any thing to do change rather than Signal represantation? Thank you
3 years ago
0
Sorry, you need javascript enabled to post any comments.
ogechi
Said:
good material
2 years ago
0