确定复最小二乘矩阵的不动点类型
方法的使用fixed.complexQRMatrixSolveFixedpointTypes
函数解析确定复最小二乘矩阵方程解的不动点类型
,在那里
是一个
——- - - - - -
矩阵
,
是
——- - - - - -
,
是
——- - - - - -
.
矩阵方程解的不动点类型 是有界的,如果行数, 的, 比列数大得多, (即。 ), 是满秩。如果 本身不是满秩的,那么它可以通过添加随机噪声来实现。随机噪声自然出现在物理系统中,例如雷达或通信系统中的热噪声。如果 ,则系统的动态范围可以是无界的,例如在标量方程中 而且 ,然后 可以任意大,如果 接近于 .
定义系统参数
为本例定义矩阵属性和系统参数。
米
矩阵中的行数是多少一个
而且B
.在波束形成或测向等问题中,米
对应于被积分的样本数。
M = 300;
n
矩阵的列数是多少一个
矩阵中的行X
.在最小二乘问题中,米
大于n
,通常米
要比n
.在波束形成或测向等问题中,n
对应传感器个数。
N = 10;
p
矩阵中的列数是多少B
而且X
.它对应于同时求解一个方程组p
右手边。
P = 1;
在本例中,设置矩阵的秩一个
小于列数。在波束形成或测向等问题中,
对应于撞击在传感器阵列上的信号数量。
rankA = 3;
precisionBits
定义矩阵求解所需的精度比特数。请根据实际情况设置。
precisionBits = 24;
在这个例子中,是复值矩阵一个
而且B
元素的实部和虚部的大小都小于或等于1,那么任何元素的最大可能绝对值是多少
.您自己的系统需求将定义这些值是什么。如果你不知道它们是什么一个
而且B
都是定点输入到系统中,那么可以使用吗upperbound
函数确定的定点类型的上界一个
而且B
.
max_abs_A
是A的最大幅值元素的上界。
max_abs_A =√(2);
max_abs_B
为B的最大幅值元素的上界。
max_abs_B =√(2);
热噪声标准差为热噪声功率的平方根,这是一个系统参数。设计良好的系统具有比热噪声低的量化水平。在这里,套thermalNoiseStandardDeviation
相当于
分贝噪声功率。
thermalNoiseStandardDeviation =√(10^(-50/10))
thermalNoiseStandardDeviation = 0.0032
量化噪声标准偏差是所需精度比特数的函数。使用fixed.complexQuantizationNoiseStandardDeviation
来计算这个。看到它小于thermalNoiseStandardDeviation
.
quantizationNoiseStandardDeviation = fixed.complexQuantizationNoiseStandardDeviation(precisionBits)
quantizationNoiseStandardDeviation = 2.4333e-08
计算定点类型
在本例中,假设所设计的系统矩阵 没有满秩(感兴趣的信号比矩阵的列数少 ),和测量的系统矩阵 具有比量化噪声更大的附加热噪声。加性噪声构成被测矩阵 拥有满军衔。
集 .
noiseStandardDeviation = thermalNoiseStandardDeviation;
使用fixed.complexQRMatrixSolveFixedpointTypes
计算定点类型。
T = fixed.complexQRMatrixSolveFixedpointTypes(m,n,max_abs_A,max_abs_B,...precisionBits noiseStandardDeviation)
T =带字段的结构:答:[0x0嵌入。fi] B: [0x0嵌入式。fi] X: [0x0 embedded.fi]
T.A
是否为转换计算类型
来
放置到位,以免溢出。
T.A
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 32 FractionLength: 24
肺结核
是否为转换计算类型
来
放置到位,以免溢出。
肺结核
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 32 FractionLength: 24
T.X
是否为解决方案计算了类型
所以它溢出的概率很小。
T.X
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 37 FractionLength: 24
利用指定类型求解矩阵方程AX=B
创建随机矩阵一个
而且B
这样B
在的范围内一个
,蓝卡=等级(一个)
.添加随机测量噪声一个
这会使它成为满秩,但也会影响解B
只是接近的范围一个
.
rng (“默认”);[A,B] = fixed.example.complexRandomLeastSquaresMatrices(m,n,p,rankA);A = A + fixed.example.complexNormalRandomArray(0,noiseStandardDeviation,m,n);
将输入转换为所确定的类型fixed.complexQRMatrixSolveFixedpointTypes
.量化到定点相当于添加随机噪声。
A = cast(A,“喜欢”, T.A);B = cast(B,“喜欢”、肺结核);
加快fixed.qrMatrixSolve
通过使用fiaccel
生成MATLAB可执行(MEX)函数。
fiaccelfixed.qrMatrixSolvearg游戏{A、B、T。X}- oqrComplexMatrixSolve_mex
指定输出类型T.X
计算不动点
使用QR法。
X = qrComplexMatrixSolve_mex(A,B,T.X);
计算相对误差以验证输出的准确性。
相对误差= norm(double(A*X - B))/norm(double(B))
相对错误= 0.0056
抑制mlint
该文件中的警告。
% #好< * NASGU >% #好< * ASGLU >