用Tikhonov正则化确定实无q QR矩阵解的不动点类型
方法的使用fixed.realQlessQRMatrixSolveFixedpointTypes
函数解析地确定实最小二乘矩阵方程解的不动点类型
在哪里 是一个 ——- - - - - - 矩阵 , 是 ——- - - - - - , 是 ——- - - - - - , , 是正则化参数。
定义系统参数
为本例定义矩阵属性和系统参数。
米
矩阵中的行数是多少一个
.在波束形成或测向等问题中,米
对应于被积分的样本数。
M = 300;
n
矩阵的列数是多少一个
和矩阵B中的行X
.在最小二乘问题中,米
大于n
,通常米
要比n
.在波束形成或测向等问题中,n
对应传感器个数。
N = 10;
p
矩阵中的列数是多少B
而且X
.它对应于同时求解一个方程组p
右手边。
P = 1;
在本例中,设置矩阵的秩一个
小于列数。在波束形成或测向等问题中,
对应于撞击在传感器阵列上的信号数量。
rankA = 3;
precisionBits
定义矩阵求解所需的精度比特数。请根据实际情况设置。
precisionBits = 32;
正则化参数的小正值可以改善问题的条件,并减少估计的方差。虽然有偏差,但与最小二乘估计相比,估计方差的减小通常会导致较小的均方误差。
regularizationParameter = 0.01;
在这个例子中,是实值矩阵一个
而且B
元素的大小小于或等于1。您自己的系统需求将定义这些值是什么。如果你不知道它们是什么一个
而且B
都是定点输入到系统中,那么可以使用吗upperbound
函数确定的定点类型的上界一个
而且B
.
max_abs_A
是A的最大幅值元素的上界。
max_abs_A = 1;
max_abs_B
为B的最大幅值元素的上界。
max_abs_B = 1;
热噪声标准差为热噪声功率的平方根,这是一个系统参数。设计良好的系统具有比热噪声低的量化水平。在这里,套thermalNoiseStandardDeviation
相当于
分贝噪声功率。
thermalNoiseStandardDeviation =√(10^(-50/10))
thermalNoiseStandardDeviation = 0.0032
量化噪声标准偏差是所需精度比特数的函数。使用fixed.realQuantizationNoiseStandardDeviation
来计算这个。看到它小于thermalNoiseStandardDeviation
.
quantizationNoiseStandardDeviation = fixed.realQuantizationNoiseStandardDeviation(precisionBits)
quantizationNoiseStandardDeviation = 6.7212e-11
计算定点类型
在本例中,假设所设计的系统矩阵 没有满秩(感兴趣的信号比矩阵的列数少 ),和测量的系统矩阵 具有比量化噪声更大的附加热噪声。加性噪声构成被测矩阵 拥有满军衔。
集 .
noiseStandardDeviation = thermalNoiseStandardDeviation;
使用fixed.realQlessQRMatrixSolveFixedpointTypes
函数来计算定点类型。
T = fixed.realQlessQRMatrixSolveFixedpointTypes(m,n,max_abs_A,max_abs_B,...precisionBits noiseStandardDeviation, [], regularizationParameter)
T =带字段的结构:答:[0x0嵌入。fi] B: [0x0嵌入式。fi] X: [0x0 embedded.fi]
T.A
是否为转换计算类型
来
放置到位,以免溢出。
T.A
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 39 FractionLength: 32
肺结核
是为B计算的类型,这样它就不会溢出。
肺结核
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 35 FractionLength: 32
T.X
是否为解决方案计算了类型
所以它溢出的概率很小。
T.X
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 48 FractionLength: 32
用指定类型求解矩阵方程
创建随机矩阵一个
而且B
这样蓝卡=等级(一个)
.添加随机测量噪声一个
这将使它成为满秩。
rng (“默认”);[A,B] = fixed.example.realRandomQlessQRMatrices(m,n,p,rankA);A = A + fixed.example.realNormalRandomArray(0,noiseStandardDeviation,m,n);
将输入转换为所确定的类型fixed.realQlessQRMatrixSolveFixedpointTypes
.量化到定点相当于添加随机噪声。
A = cast(A,“喜欢”, T.A);B = cast(B,“喜欢”、肺结核);
加快fixed.qlessQRMatrixSolve
通过使用fiaccel
生成MATLAB可执行(MEX)函数。
fiaccel+固定/ qlessQRMatrixSolvearg游戏{A、B、T。X,[],regularizationParameter}- oqlessQRMatrixSolve_mex
指定输出类型T.X
计算不动点
使用QR法。
X = qlessQRMatrixSolve_mex(A,B,T.X,[],regularizationParameter);
验证输出的准确性
验证定点输出与MATLAB内置双精度浮点相对误差较小。
A_lambda = double([regularizationParameter*eye(n);A]);X_double = (A_lambda'*A_lambda)\double(B);relativeError = norm(X_double - double(X))/norm(X_double)
relativeError = 1.0133e-05
抑制mlint
该文件中的警告。
% #好< * NASGU >% #好< * ASGLU >
另请参阅
fixed.realQlessQRMatrixSolveFixedpointTypes
|用无q QR分解求解实爆发矩阵|基于无q QR分解的实部分收缩矩阵求解