定点浮动点转换16点传输线

2视图(30天)
aitizaz
aitizaz 2011年4月12日
回答: Kiran Kintali 2020年11月1日
16点传输线嵌入式matlab代码要转换浮点cosimualtion修复点的FPGA。下面的快照。输入从Qam16 3 - 1, 0, 1, 3,真实和虚构的。我转换成int16。现在在嵌入式的matlab所有变量指定为定点操作使用“mathfi”中给出的代码。但合成后出现意想不到的快照中突出显示。合成只是小数部分和最低。
请帮我解决这个问题。
下面给出嵌入matlab代码。
函数[W T] = iffxxtt (x, y)
% # eml
X = getfi (。0625,1, 16, 16);
C = getfi (。7071、1、16、16);
D = getfi (。9239、1、16、16);
E = getfi (。3827、1、16、16);
第一次= getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
ifirst = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
first1 = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
ifirst1 = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
first2 = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
ifirst2 = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
first3 = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
ifirst3 = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
基于“增大化现实”技术= getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
Ai = getfi([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], 1, 16日16);
基于“增大化现实”技术= x;
Ai = y;
i = 1:8
第(i) = Ar (i) + Ar (i + 8);
ifirst (i) = Ai (i) +人工智能(i + 8);
第(i + 8) = Ar (1) - Ar (i + 8);
ifirst (i + 8) = Ai (i) - Ai (i + 8);
结束
Ar1 =第一;
Ai1 = ifirst;
i = 1:4
first1 (i) = Ar1 (i) + Ar1 (i + 4);
ifirst1 (i) = Ai1(我)+ Ai1 (i + 4);
first1 (i + 4) = Ar1 (i) Ar1 (4 + 1);
ifirst1 (i + 4) = Ai1 (i) Ai1 (4 + 1);
结束
i = 9:12
first1 (i) = (Ar1 (i) ai1 (i + 4));
ifirst1 (i) = (Ai1 (i) + Ar1 (i + 4));
first1 (i + 4) = (Ai1 (4 + i) + Ar1 (i));
ifirst1 (i + 4) = (ar1 (4 + 1) + Ai1(我));
结束
Ar2 = first1;
Ai2 = ifirst1;
i = 1:2
first2 (i) = Ar2(我)+ Ar2 (+ 2);
ifirst2 (i) = Ai2 (i) + Ai2 (+ 2);
first2 (+ 2) = Ar2 (i) -Ar2 (2 + i);
ifirst2 (+ 2) = Ai2 (i) Ai2 (2 + i);
first2 (i + 4) = (-Ar2 (i + 4) + Ai2 (i + 6));
ifirst2 (i + 4) = Ai2 (i + 4) + Ar2 (+ 6);
first2 (i + 6) = (Ai2 (6 + 1) + Ar2 (i + 4));
ifirst2 (+ 6) = -Ar2 (6 + 1) + Ai2 (i + 4);
结束
i = 9:10
first2 (i) = Ar2(我)+ C * Ar2 (i + 2) - C * Ai2 (i + 2);
ifirst2 (i) = (Ai2(我)+ C * Ar2 (i + 2) + C * Ai2 (i + 2));
first2 (+ 2) = Ar2 (i) - C * Ar2 (i + 2) + C * Ai2 (i + 2);
ifirst2 (i + 2) = (Ai2 (i) - c * Ar2 (i + 2) - c * Ai2 (i + 2));
结束
i = 13:14
first2 (i) = Ar2 (i) - c * Ar2 (i + 2) - c * Ai2 (i + 2);
ifirst2 (i) = Ai2 (i) + C * Ar2 (i + 2) - C * Ai2 (i + 2);
first2 (+ 2) = Ar2(我)+ C * Ar2 (i + 2) + C * Ai2 (i + 2);
ifirst2 (i + 2) = Ai2 (i) - C * Ar2 (i + 2) + C * Ai2 (i + 2);
结束
Ar3 = first2;
Ai3 = ifirst2;
i = 1;
first3 (i) = Ar3(我)+ Ar3 (i + 1);
ifirst3 (i) = Ai3(我)+ Ai3 (i + 1);
first3 (i + 1) = Ar3 (i) -Ar3 (1 + i);
ifirst3 (i + 1) = Ai3 (i) -Ai3 (1 + i);
first3 (+ 2) = (-Ar3 (+ 2) + Ai3 (i + 3));
ifirst3 (+ 2) = Ai3 (+ 2) + Ar3 (+ 3);
first3 (i + 3) = (Ai3 (3 + 1) + Ar3 (i + 2));
ifirst3 (+ 3) = -Ar3 (3 + 1) + Ai3 (+ 2);
first3 (i + 4) = Ar3 (i + 4) + C * Ar3 (i + 5) - C * Ai3 (i + 5);
ifirst3 (i + 4) = (Ai3 (i + 4) + C * Ar3 (i + 5) + C * Ai3 (i + 5));
first3 (i + 5) = Ar3 (i + 4) - C * Ar3 (i + 5) + C * Ai3 (i + 5);
ifirst3 (i + 5) = (Ai3 (i + 4) - c * Ar3 (i + 5) - c * Ai3 (i + 5));
first3 (+ 6) = Ar3 (i + 6) - c * Ar3 (i + 7) - c * Ai3 (i + 7);
ifirst3 (+ 6) = Ai3 (i + 6) + C * Ar3 (i + 7) - C * Ai3 (i + 7);
first3 (i + 7) = (Ar3 (i + 6) + C * Ar3 (i + 7) + C * Ai3 (i + 7));
ifirst3 (i + 7) = (Ai3 (i + 6) - C * Ar3 (i + 7) + C * Ai3 (i + 7));
我= 9;
first3 (i) = Ar3(我)+ D * Ar3 (i + 1) - e * Ai3 (i + 1);
ifirst3 (i) = (Ai3 (i) + E * Ar3 (i + 1) + D * Ai3 (i + 1));
first3 (i + 1) = Ar3 (i) - d * Ar3 (i + 1) + E * Ai3 (i + 1);
ifirst3 (i + 1) = (Ai3 (i) - e * Ar3 (i + 1) - d * Ai3 (i + 1));
first3 (+ 2) = Ar3 (i + 2) - e * Ar3 (i + 3) - d * Ai3 (+ 3);
ifirst3 (+ 2) = Ai3 (i + 2) + D * Ar3 (i + 3) - e * Ai3 (+ 3);
first3 (+ 3) = Ar3 (i + 2) + E * Ar3 (i + 3) + D * Ai3 (+ 3);
ifirst3 (+ 3) = Ai3 (i + 2) - d * Ar3 (i + 3) + E * Ai3 (+ 3);
first3 (i + 4) = Ar3 (i + 4) + E * Ar3 (i + 5) - d * Ai3 (i + 5);
ifirst3 (i + 4) = (Ai3 (i + 4) + D * Ar3 (i + 5) + E * Ai3 (i + 5));
first3 (i + 5) = Ar3 (i + 4) - e * Ar3 (i + 5) + D * Ai3 (i + 5);
ifirst3 (i + 5) = (Ai3 (i + 4) - d * Ar3 (i + 5) - e * Ai3 (i + 5));
first3 (+ 6) = Ar3 (i + 6) - d * Ar3 (i + 7) - e * Ai3 (i + 7);
ifirst3 (+ 6) = Ai3 (i + 6) + E * Ar3 (i + 7) - d * Ai3 (i + 7);
first3 (i + 7) = Ar3 (i + 6) + D * Ar3 (i + 7) + E * Ai3 (i + 7);
ifirst3 (i + 7) = Ai3 (i + 6) - e * Ar3 (i + 7) + D * Ai3 (i + 7);
W = [first3 (1); first3 (16); first3 (8); first3 (12); first3 (4); first3 (14); first3 (6); first3 (10); first3 (2); first3 (15); first3 (7); first3 (11); first3 (3); first3 (13); first3 (5); first3 (9);] * X;
T = [ifirst3 (1); ifirst3 (16); ifirst3 (8); ifirst3 (12); ifirst3 (4); ifirst3 (14); ifirst3 (6); ifirst3 (10); ifirst3 (2); ifirst3 (15); ifirst3 (7); ifirst3 (11); ifirst3 (3); ifirst3 (13); ifirst3 (5); ifirst3 (9);] * X;
结束
函数myfi = getfi(输入、issigned wlen flen)
调频= fimath (“RoundMode”,“最近的”,
“OverflowMode”,“饱和”,
“ProductMode”,“FullPrecision”,
“MaxProductWordLength”,128,
“SumMode”,“FullPrecision”,
“MaxSumWordLength”,128,
“CastBeforeSum”,真正的);
myfi = fi(输入、issigned wlen flen,“fimath”、fm);
结束

答案(1)

Kiran Kintali
Kiran Kintali 2020年11月1日
请看附呈的例子额外的建模指南MATLAB高密度脂蛋白。