Generation of random phase factors.
14 次查看(过去 30 天)
显示 更早的评论
How to generate a random phase vector of size MxN following these conditions:
for M=1:5
N = 4; % number of columns in output phase matrix (P_out)
theta= 1xN random values over range of [0:360] degrees
P=exp(j*theta) % Phase factor
P_out= MxN output row vector for random N values of theta
end
Conditions for choosing theta:
- 0 <= theta <= 2*pi % Range of theta
- Each theta is any whole number multiple of smallest non-zero theta.for e.g.,
say for N = 4: theta=[45,0,180,225]% random angles
here each value of theta is a some whole number multiple of 45: [45x0=45, 45x1=45, 45x4=180, 45x5=225]
So,
P_out=MXN matrix having all different angles in a row.
Any help is much appreciated, regards
0 个评论
采纳的回答
Wayne King
2013-12-8
编辑:Wayne King
2013-12-8
Maybe you want something like this:
N = 4; % number you want
MaxAngle = floor(360/N)-1;
StartAng = randi([0 MaxAngle],1,1);
phaseangles = StartAng:StartAng:N*StartAng;
I've tried to make sure above that you only get angles in [0 360] but you if you really want every phase angle to be a multiple of some starting angle, the more angles you want, the greater that restricts your initial angle choice --unless you don't care about wrapping around the circle.
Of course, Image Analyst's comments about radians vs. degrees apply here as well.
更多回答(2 个)
Image Analyst
2013-12-8
编辑:Image Analyst
2013-12-8
Try this:
numberOfAngles = 4; % or however many you need
theta = 45 * (randi(8, 1, numberOfAngles) - 1)
Of course, multiply by pi/180 if you want it in radians. Also, you can use sind(), cosd(), etc. if you want to use functions that work in degrees instead of radians.
Wayne King
2013-12-8
编辑:Wayne King
2013-12-8
The way you have set it up, the phase angles are not random
If you really want phase angles randomly chosen to cover the interval (-pi, pi]
theta = -pi+2*pi*rand(10,1);
The above gives you 10 of them.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!