How to make a random circularly-symmetric gaussian distributed additive noise component with mean 0 and variance (sigma^2)/2?
22 views (last 30 days)
Show older comments
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 Comment
Jon
on 3 Oct 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?
Accepted Answer
Jon
on 3 Oct 2023
Edited: Jon
on 3 Oct 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 Comments
More Answers (1)
Image Analyst
on 3 Oct 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.
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!