How to generate a dataset in MATLAB for the given scenario ?
2 次查看(过去 30 天)
显示 更早的评论
Hello all, I am working on Machine learning based classification task wherein I have to generate Traning dataset based on the following scenario in MATLAB but not getting it clearly:
Scenario: The system consists of single antenna Transmitter and multiple antenna receiver. The signal received at the receiver is given by the following expression.
----(1)
where , ,M indicates number of antennas at receiver, is transmitted signal and is zero mean circularly symmetric complex Gaussian with variance P i.e., , is a received vector and is given as and and it is a Rayleigh channel between transmitter and each antenna of receiver.
My query is that I am getting confused due to presence of multiple (M) antennas at receiver. So how can we produce a training data set with 10^5 samples for this given scenario.
Any help in this regard will be highly appreciated.
0 个评论
回答(1 个)
Aastha
2024-9-17
As I understand, you want to generate a training dataset with 10^5 samples in a single antenna transmitter and multiple antennas at receiver scenario.
You may follow the steps mentioned below to do so:
1. First, generate the 10^5 samples of the transmitted signals that are independent and identically distributed samples from zero mean circularly symmetric complex Gaussian with variance “P”. The code snippet below illustrates an example wherein the transmitted signal “s_n” is a vector consisting of 10^5 elements:
N = 1e5; % Number of data points
P = 0.5; % Power
s_n = sqrt(0.5) * (randn(N, 1) + 1i * randn(N, 1)) * sqrt(P);
For any further information on “randn” function, you can refer to the following documentation:
2. Next, generate the Rayleigh channel coefficients. The channel coefficients are circularly symmetric complex Gaussian random variables with unit variance whose magnitude has a Rayleigh distribution. You may refer to the code snippet below to generate Rayleigh channel coefficients:
M = 4; % Number of antennas at the receiver
h = sqrt(0.5) * (randn(M, N) + 1i * randn(M, N));
3. Lastly, generate the Mx1 received signal. The code snippet below illustrates how to generate the received signal:
r_n = h .* transpose(s_n);
You may refer to the link mentioned below for more information on "transpose" function:
I hope this helps!
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Propagation and Channel Models 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!