主要内容

确定实无q QR矩阵的不动点类型

方法的使用fixed.realQlessQRMatrixSolveFixedpointTypes函数解析地确定实最小二乘矩阵方程解的不动点类型 一个 一个 X B ,在那里 一个 是一个 ——- - - - - - n 矩阵 n B n ——- - - - - - p , X n ——- - - - - - p

矩阵方程解的不动点类型 一个 一个 X B 是有界的,如果行数, 的, 一个 比列数大得多, n (即。 n ), 一个 是满秩。如果 一个 本身不是满秩的,那么它可以通过添加随机噪声来实现。随机噪声自然出现在物理系统中,例如雷达或通信系统中的热噪声。如果 n ,则系统的动态范围可以是无界的,例如在标量方程中 x 一个 / b 而且 一个 b - 1 1 ,然后 x 可以任意大,如果 b 接近于 0

定义系统参数

为本例定义矩阵属性和系统参数。

矩阵中的行数是多少一个.在波束形成或测向等问题中,对应于被积分的样本数。

M = 300;

n矩阵的列数是多少一个和矩阵B中的行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 = 1;

max_abs_B为B的最大幅值元素的上界。

max_abs_B = 1;

热噪声标准差为热噪声功率的平方根,这是一个系统参数。设计良好的系统具有比热噪声低的量化水平。在这里,套thermalNoiseStandardDeviation相当于 - 5 0 分贝噪声功率。

thermalNoiseStandardDeviation =√(10^(-50/10))
thermalNoiseStandardDeviation = 0.0032

量化噪声标准偏差是所需精度比特数的函数。使用fixed.realQuantizationNoiseStandardDeviation来计算这个。看到它小于thermalNoiseStandardDeviation

quantizationNoiseStandardDeviation = fixed.realQuantizationNoiseStandardDeviation(precisionBits)
quantizationNoiseStandardDeviation = 1.7206e-08

计算定点类型

在本例中,假设所设计的系统矩阵 一个 没有满秩(感兴趣的信号比矩阵的列数少 一个 ),和测量的系统矩阵 一个 具有比量化噪声更大的附加热噪声。加性噪声构成被测矩阵 一个 拥有满军衔。

σ 噪音 σ 噪音

noiseStandardDeviation = thermalNoiseStandardDeviation;

使用fixed.realQlessQRMatrixSolveFixedpointTypes计算定点类型。

T = fixed.realQlessQRMatrixSolveFixedpointTypes(m,n,max_abs_A,max_abs_B,...precisionBits noiseStandardDeviation)
T =带字段的结构:答:[0x0嵌入。fi] B: [0x0嵌入式。fi] X: [0x0 embedded.fi]

T.A是否为转换计算类型 一个 R 一个 放置到位,以免溢出。

T.A
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 31 FractionLength: 24

肺结核是为B计算的类型,这样它就不会溢出。

肺结核
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 27 FractionLength: 24

T.X是否为解决方案计算了类型 X 一个 一个 B 所以它溢出的概率很小。

T.X
ans = [] DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 40 FractionLength: 24

利用指定类型求解矩阵方程A'AX=B

创建随机矩阵A和B,使得rankA=rank(A)。在A中加入随机测量噪声,使其成为满秩。

rng (“默认”);[A,B] = fixed.example.realRandomQlessQRMatrices(m,n,p,rankA);A = A + fixed.example.realNormalRandomArray(0,noiseStandardDeviation,m,n);

将输入转换为所确定的类型fixed.realQlessQRMatrixSolveFixedpointTypes量化到定点相当于添加随机噪声[4,5]。

A = cast(A,“喜欢”, T.A);B = cast(B,“喜欢”、肺结核);

加快fixed.qlessQRMatrixSolve通过使用fiaccel生成MATLAB可执行(MEX)函数。

fiaccelfixed.qlessQRMatrixSolvearg游戏{A、B、T。X}- oqlessQRMatrixSolve_mex

指定输出类型T.X计算不动点 X 一个 一个 B 使用QR法。

X = qlessQRMatrixSolve_mex(A,B,T.X);

计算相对误差以验证输出的准确性。

relative_error = norm(double(A'*A*X - B))/norm(double(B)))
相对错误= 0.0561

禁止此文件中的mlint警告。

% #好< * NASGU >% #好< * ASGLU >

另请参阅

功能

相关的话题