Azzera filtri
Azzera filtri

How to make a random circularly-symmetric gaussian distributed additive noise component with mean 0 and variance (sigma^2)/2?

22 visualizzazioni (ultimi 30 giorni)
yBob(t) = xAlice(t) hab(t) + nb(t)
where t denotes the time, denotes the convolution operator, hab(t) denotes the circularly-symmetric Gaussian-distributed channel response with mean 0 and variance σ2 h /2 in each dimension, and nb(t) denotes the circularly-symmetric Gaussian-distributed additive noise component with mean 0 and variance σ2 n /2 in each dimension.
hab(t) and nb(t) should be different, but how?
If I write this code then I get same hab(t) and nb(t):
N=16;
t = linspace(0, 2*pi, N);
j = sqrt(-1);
hab = cos(t) + j*sin (t);
plot(x, y, 'bo-', 'LineWidth', 2);
grid on;
title('hab');
xlabel('Real Component');
ylabel('Imaginary Component');
nb = cos(t) + j*sin(t);
plot(x, y, 'bo-', 'LineWidth', 2);
grid on;
title('nab');
xlabel('Real Component');
ylabel('Imaginary Component');
But I want different hab and nb. hab and nb should be circularly symmetric gaussian-distributed with 0 mean.
Using below code I didn't get circular symmetric gaussian but only gaussian with mean 0. But I want both.
hab = (1/sqrt(2))*(randn(N, 1) +1i*randn(N,1));
plot(hab, 'bo-', 'LineWidth', 2);
grid on;
title('hab');
xlabel('Real Component');
ylabel('Imaginary Component');
nb = (1/sqrt(2))*(randn(N, 1) +1i*randn(N,1));
plot(nb, 'bo-', 'LineWidth', 2);
grid on;
title('nb');
xlabel('Real Component');
ylabel('Imaginary Component');
Through this I got the different value of hab and nb, but it is not circularly-symmetric gaussian.
  1 Commento
Jon
Jon il 3 Ott 2023
Why do you say that it is not circularly symmetric gaussian? How are you checking this and deciding it is not circularly symmetric gaussian?

Accedi per commentare.

Risposta accettata

Jon
Jon il 3 Ott 2023
Modificato: Jon il 3 Ott 2023
Using your code and plotting results, qualitatively it looks like you are getting two circularly symmetric distriuted sets of data, what is it that you think isn't working?
N = 1000;
hab = (1/sqrt(2))*(randn(N, 1) +1i*randn(N,1)); %circularly-symmetric Gaussian-distributed and channel coefficient
nb = (1/sqrt(2))*(randn(N, 1) +1i*randn(N,1));
plot(hab,'o'),
xlim([-3,3])
ylim([-3,3])
axis equal
title('hab')
plot(nb,'o')
xlim([-3,3])
ylim([-3,3])
axis equal
title('nb')
  4 Commenti

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 3 Ott 2023
Not exactly sure what you want, but how about this:
g = fspecial("gaussian", 201, 40); % Create Gaussian intensity pattern.
imshow(g, []); % Display it as an image.
axis('on', 'image') % Turn on axis tick marks and labels.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by