How can I replace System Toolbox, like phased.ULA() and phased.Pha​seShiftBea​mformer(), by pure Matlab code?

1 view (last 30 days)
Hi, everyone!
I'm doing a Matlab project, the aim of this project is to remove system toolbox, only use pure Matlab code. there are two system toolbox, I have no idea how to replace them. I pasted the code below:
clear all;
retVal = 1.0e+03 * [
3.5040 - 0.0300i, 3.6100 + 2.9130i;
-0.6230 + 0.0330i, -1.0960 + 1.2770i;
1.6360 - 1.1560i, 2.4620 + 2.2290i;
4.4610 + 2.9620i, 3.8240 + 6.1530i
];
c=3e8;
fc=77e9;
lambda=c/fc;
Ne = 4;
rxArray = phased.ULA('NumElements',Ne,'ElementSpacing',lambda/2);
% Form forward-facing beam
beamformer = phased.PhaseShiftBeamformer('SensorArray',rxArray,...
'PropagationSpeed',c,'OperatingFrequency',fc,'Direction',[0;0]);
% Beamform received data
Xbf = beamformer(retVal');
disp(Xbf);
I want to remove phased.ULA() and phased.PhaseShiftBeamformer(), and rewrite them with only pure Matlab code. I would greatly appreciate it if anyone can help? I have write some code to replace phased.ULA(), I pasted below:
clear all;
% Provided data
retVal = 1.0e+03 * [
3.5040 - 0.0300i, 3.6100 + 2.9130i;
-0.6230 + 0.0330i, -1.0960 + 1.2770i;
1.6360 - 1.1560i, 2.4620 + 2.2290i;
4.4610 + 2.9620i, 3.8240 + 6.1530i
];
c = 3e8;
fc = 77e9;
lambda = c / fc;
Ne = 4;
% Manually simulate ULA array response
theta = 0:pi/180:2*pi; % Angle range
element_positions = zeros(3, Ne);
for n = 1:Ne
element_positions(1, n) = 0; % x-coordinate
element_positions(2, n) = (n - (Ne+1)/2) * lambda/2; % y-coordinate
element_positions(3, n) = 0; % z-coordinate
end
Until now, I have no idea how to continue replacing phased.PhaseShiftBeamformer().

Answers (1)

Sarthak
Sarthak on 21 Dec 2023
Hi Weichun,
The phased.PhaseShiftBeamformer object implements a narrowband phase-shift beamformer. If you want to implement this with only MATLAB code; you can go through the following paper by IEEE.
They have explained the design for a narrowband phase-shift beamformer step by step and all results were generated in MATLAB. I think this should help you rewrite phased.PhaseShiftBeamformer in MATLAB.

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!