wz(gk)=sqrt(-1/imag(1/q)/pi*lambda*Mp2);
时间: 2023-11-04 19:04:19 浏览: 42
这行代码计算了物方距离为 z(gk) 时的高斯光束聚焦后的束腰半径。其中 q 表示复合透镜的复合焦距,是一个复数。实部表示物方焦距,虚部表示像方距离。imag(1/q) 表示像方距离,即复合透镜的焦距。-1/imag(1/q)/pi*lambda*Mp2 计算了聚焦后的束腰半径,其中 lambda 是光的波长,Mp2 是复合透镜的传输矩阵元素。
相关问题
function f=cubic(A) A=A./A(1);% Nomalization of the parameter of x^4. p=-1/3*A(2)^2+A(3); q=2/27*A(2)^3+A(4)-1/3*A(3)*A(2); w=(-1+sqrt(3)*i)/2; y(1)=(-q/2+sqrt((q/2).^2+(p/3).^3)).^(1/3)+... (-q/2-sqrt((q/2).^2+(p/3).^3)).^(1/3); y(2)=(-q/2+sqrt((q/2).^2+(p/3).^3)).^(1/3).*w+... (-q/2-sqrt((q/2).^2+(p/3).^3)).^(1/3).*w^2; y(3)=(-q/2+sqrt((q/2).^2+(p/3).^3)).^(1/3).*w^2+... (-q/2-sqrt((q/2).^2+(p/3).^3)).^(1/3).*w; x=y-A(2)/3; A x'
这是一段 MATLAB 函数代码,其输入参数为一个向量 A,输出结果为一个向量 x。
该函数的作用是利用求解三次方程的公式,计算出满足以下方程的 x 的值:
x^3 + A(2)*x^2/A(1) + A(3)*x/A(1)^2 + A(4)/A(1)^3 = 0
在函数中,首先进行了归一化,将 A 向量中的元素都除以 A 的第一个元素。接着,根据三次方程的求解公式,计算出了 p 和 q 两个值,然后使用这两个值求解出三个实数解或复数解 y1、y2、y3。最后,将 y1、y2、y3 分别减去 A(2)/3 得到 x1、x2、x3,其中 x 的值即为其中的一个实数解。
以下是该函数的一个示例:
```matlab
>> A = [1, 2, 3, 4];
>> x = cubic(A);
>> x
x = -3.6505
```
该示例中,输入向量 A 为 [1, 2, 3, 4],则根据上述方程计算得到 x 的值为 -3.6505。
matlab编程4-PSK载波调制信号在AWGN信道下的误比特率,误符号率,理论误符号率,理论误比特率 c=sqrt(2/T)*exp(j*2*pi*fc*t); %载波信号 c1=sqrt(2/T)*cos(2*pi*fc*t); %同相载波 c2=-sqrt(2/T)*sin(2*pi*fc*t); %正交载波
下面是一个基于4-PSK调制的Matlab代码,可以计算在AWGN信道下的误比特率、误符号率、理论误符号率和理论误比特率:
```matlab
clear all;
clc;
M = 4; % 4-PSK调制
k = log2(M); % 每个符号的比特数
fs = 100; % 采样频率
T = 1/fs; % 采样间隔
fc = 10; % 载波频率
EbNo = 0:1:20; % 信噪比范围
EsNo = EbNo + 10*log10(k); % 符号噪声比
n = 100000; % 发送符号总数
data = randi([0 1],n,k);% 随机生成数据
dataSym = bi2de(data); % 将比特转换为符号
modData = pskmod(dataSym,M); % 进行4-PSK调制
c1 = sqrt(2/T)*cos(2*pi*fc*(0:n-1)*T)'; % 同相载波
c2 = -sqrt(2/T)*sin(2*pi*fc*(0:n-1)*T)'; % 正交载波
c = c1 + 1j*c2; % 载波信号
s = modData.*c; % 调制信号
% 4-PSK解调
demodData = zeros(n, k);
demodDataSym = zeros(n, 1);
for i = 1:n
r = awgn(s(i), EsNo, 'measured'); % 加入高斯白噪声
r1 = real(r);
r2 = imag(r);
% 判决器决定接收到的符号
if r1 > 0 && r2 > 0
demodDataSym(i) = 0;
demodData(i,:) = [0 0];
elseif r1 < 0 && r2 > 0
demodDataSym(i) = 1;
demodData(i,:) = [0 1];
elseif r1 < 0 && r2 < 0
demodDataSym(i) = 2;
demodData(i,:) = [1 1];
else
demodDataSym(i) = 3;
demodData(i,:) = [1 0];
end
end
[numErrors, ber] = biterr(data, demodData); % 计算误比特率
[numErrors, ser] = symerr(dataSym, demodDataSym); % 计算误符号率
% 理论误比特率和误符号率
theoSer = 2*qfunc(sqrt(2*EsNo)*sin(pi/M)); % 理论误符号率
theoBer = theoSer/k; % 理论误比特率
% 绘图
figure;
semilogy(EbNo, ber, 'b-o', 'linewidth', 2);
hold on;
semilogy(EsNo, theoBer, 'r--', 'linewidth', 2);
grid on;
xlabel('Eb/No (dB)');
ylabel('BER');
legend('实验误比特率', '理论误比特率');
figure;
semilogy(EbNo, ser, 'b-o', 'linewidth', 2);
hold on;
semilogy(EsNo, theoSer, 'r--', 'linewidth', 2);
grid on;
xlabel('Eb/No (dB)');
ylabel('SER');
legend('实验误符号率', '理论误符号率');
```
在上述代码中,首先生成随机的比特数据,将比特转换为符号,进行4-PSK调制,加入高斯白噪声后进行4-PSK解调,最后计算误比特率和误符号率。同时,还计算了理论误符号率和理论误比特率,并将实验结果和理论值进行比较。绘制了误比特率和误符号率随信噪比变化的曲线。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)