dimanche 26 juillet 2015

Matlab: Random Signals with Additive Noise

I am learning Randoms Signals as well as MatLab. I have a few questions, as I know little of both topics.

I have no idea how to start this problem...

Problem statement is as follows: I am looking to generate a baseband transmission scheme that is made of binary rectangular pulses. The transmitted signal is contaminated by additive noise. By using mean and variance estimators I am to determine the mean and variance using the generated noise with no signal transmitted. At that point, I look to subtract the estimated mean from the signal yielding a fairly clean signal.

(For entirety, I will post the entire project in this post, yet I aim to resolve the above steps first prior to the ones below.)

Using that signal I have to use a "detector" (not sure of what this is referring to) to decide whether a 0 or 1 was transmitted. Then compare the received string and transmitted string to determine the number of errors and the average probability of error.

I was told I needed to learn how to generate a Gaussian random variable. After following some examples I have this: (Please advise me if it does not pertain to a solution of problem I mentioned above)

close all
clc
%% Generation of a signal bpsk modulation
%This takes a set of random numbers and converts them to bits 0's & 1's
%The 2*X-1 will create -1's in place of the 0's from the bit conversion.
signal_i = 2*(rand(1,10^5)>0.5)-1;
signal_q = zeros(1,10^5);
%In communication systems we have two components
%which is why we have singal i and q
scatterplot(signal_i + signal_q);
%% Combining for complex representation
signal = complex(signal_i, signal_q);
p_signal = mean(abs(signal).^2)
e_signal = (abs(signal).^2);
%% Adding some noise of a known variance
for var = 1/50:1/10:0.5
    noise = 1/sqrt(2)*(randn(1,10^5)+j*randn(1,10^5))*sqrt(var);
      addNoise = signal + noise;
      figure(1);
      plot(real(addNoise),imag(addNoise),'b*');
      drawnow('expose');
  end

I shall stop the questions here as there is much to cover as is. However, eventually I will need to transmit the sequence using two cases with parameters, one Gaussian noise and the other Laplacian.

I was given the sequences of: Equal probabilities: 10001011000111101001 Unequal probabilities: 11001111011011101101

Am I on the right track with the current code vs project requirements? If not, where shall I start?

Thanks in advance.




Aucun commentaire:

Enregistrer un commentaire