From 76875c2316de6620366d5d0c41c6388feec757aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Thu, 17 Sep 2020 09:54:21 +0200 Subject: [PATCH] Amplitude factor corrected --- FPGA/VNA/VNA.gise | 28 ++++++++++++++-------------- FPGA/WindowCoefficientGenerator.py | 16 +++++++++++++--- Software/PC_Application/Application | Bin 19379688 -> 19379688 bytes 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/FPGA/VNA/VNA.gise b/FPGA/VNA/VNA.gise index 6462311..4aa995f 100644 --- a/FPGA/VNA/VNA.gise +++ b/FPGA/VNA/VNA.gise @@ -231,15 +231,15 @@ - + - + - + @@ -250,23 +250,23 @@ - + - + - + - + - + @@ -284,11 +284,11 @@ - + - + @@ -297,7 +297,7 @@ - + @@ -311,7 +311,7 @@ - + @@ -325,7 +325,7 @@ - + @@ -371,7 +371,7 @@ - + diff --git a/FPGA/WindowCoefficientGenerator.py b/FPGA/WindowCoefficientGenerator.py index 1183fc2..c637bf5 100644 --- a/FPGA/WindowCoefficientGenerator.py +++ b/FPGA/WindowCoefficientGenerator.py @@ -22,6 +22,8 @@ class Window: self.name = name self.function = function self.correction = correction + self.sum = 0 + self.num_coeff = 0 def StartFile(self): self.file = open(self.name+".dat", "w") @@ -30,6 +32,8 @@ class Window: if not hasattr(self, 'file'): self.StartFile() value = self.function(normalized_index) + self.sum = self.sum + value + self.num_coeff = self.num_coeff + 1 if INCLUDE_AMPLITUDE_CORRECTION: value = value * self.correction / 8.0 value = int(value * (2 ** (BITS_PER_COEFFICIENT-1))) @@ -39,6 +43,9 @@ class Window: output = bindigits(value, BITS_PER_COEFFICIENT) self.file.write(output+"\n") + def CorrectionFactor(self): + return 1.0 / (self.sum / self.num_coeff) + def calc_hann(i): return math.sin(math.pi * i) ** 2 @@ -54,12 +61,15 @@ def calc_flattop(i): return a0 - a1 * math.cos(2*math.pi*i) + a2 * math.cos(4*math.pi*i) - a3 * math.cos(6*math.pi*i) + a4 * math.cos(8*math.pi*i) WindowList = [] -WindowList.append(Window("Hann", calc_hann, 2.0)) -WindowList.append(Window("Kaiser", calc_kaiser, 2.49)) -WindowList.append(Window("Flattop", calc_flattop, 4.18)) +WindowList.append(Window("Hann", calc_hann, 2.00)) +WindowList.append(Window("Kaiser", calc_kaiser, 2.50)) +WindowList.append(Window("Flattop", calc_flattop, 4.64)) for i in range(NUMBER_OF_COEFFICIENTS): norm_i = (i+0.5) / NUMBER_OF_COEFFICIENTS for w in WindowList: w.AddCoefficient(norm_i) + +for w in WindowList: + print(w.CorrectionFactor()) diff --git a/Software/PC_Application/Application b/Software/PC_Application/Application index 65f4b255b30f27905a3ac6927e4c6ee3f92163dd..a13fbe467fbc1a589e61c31e1c50b0c5f9ae2acf 100755 GIT binary patch delta 2654 zcmXZddtBA^9mnzC?|{OAa{w>IMH4d-l@OJsQ{$J@4P)ArvXd7Y67!NM7k7@>Tmuz2 z9B#o{JN(qqri(6$78`tZ4%sRPrMSExsga2@>7q$)E8E0gAK;JYo6qm_{c(PW&-eR# z(DQk%wFhq$T1JL#h&=Xca!PI6h>W)*EeZAGA0KsdM~%f@W6>c$ec+2B7z#i5!-@a| z!Uj8n5R4EE!*GniNQB}ZgsB=!_|?=oS?Lx{vuOIr*}j_Qt6Q_*^V788uNnh1Yt9;$ zwBQ2{i)PI&v9hd%zOQSVpPs~m)#*Ky7QQm8aKFE%h5PH)Vv{0bxh%P*7jbkbWr>o~ z8Rw^2J#R^QhYzxrwo7>}pQn_4AZ4%oTKN?zHyqS8YsC#I*UBeU-lo)ovpejXwaB|| zRd|}d$$NQKc!FN#4owe7gbGcM?6T-t?pqm=7=_We7h@2mZe@&(Sirh{-&ov-akwAj z5se9m!9-=>H>qtp_nzyTgvp4-1Bk;E#A7O^VY)ikm2hbl_cs~e!-JTCnfN|tVK(OA zAtb6M!)SRiF{^EYE_44<9~itNd-emmW|zS`a@twb>@s*qZdIJl;Cu9e$v3d#aC#fg z8mak(Q7rAY`0I{h8`XRny~8cd`7(M($z&;I^bXI1Qp)HZrE{f}(L2f(N-3jvlslx9 z(K{;ArIgV-DmPGSb{V~+NWPzz^BU=|1$(|7;;rZ~7TY$Bpb@;3L*uA&_jDL|7<2Ih z%)@;A5I;f^7O0+%N5W?&W}ThaKZ3r&5qPq9<@snKG6GM|dDgTL8G$F)zQu}NRtLGnmf&K=gYAbF%K_t4W89{I)KBfD8~Igh7XymRfzvEJyZDe?J*i@D{x?ytLw zAEHW->AT$0OpxijN>)fI(|37RODWTLmF7q((|46^l~ShfDle8&rthk#mQtqgs@zSf z1AR}jQ>LZhF*Rk{ye2K*a%tAR*ii*joY|4vmh6n@N+m-W`S#$FMYov7d9ggTktG?fvw7~=$BQk z+*7mYIs6Lws%BBawF-I#7YeWq+f~7Z9U&*^Ro4}w2*q%#>bjD+m+7}G^q>@FC|4~D zE5e4*?_5%WN<5D$RO8pGbIA)UpI|+q?gjh?FXFfGqDCdunXSQzSzYP<$EkhrIGNej z<-VFtj+2?w&6;MD<7DP8Tj9%bs<#Zh#I3BDPVdYnlb84gzj1(<*et$Cl_bZ=bW1Zy zj*(e%TS_@brpK30Ns?n^mIg~H$H**;lv0k7SspE=93!)0s+4k!%*r{GnoW+8StQ?2 zdv*&s_!19SCda6IneV_$Y*x89DpPG#I~TmepWnE37k1-!s8x+yUwY0*#*+UMevdz> zg#10XU#Ay0c`yEmmr;jT@G4%z>)5B_Chzy(!M!u;_oE&Ma1d|cO*NywVQmWQwS5iv z6aI`wRomATA4mUWtimB2#$Rv*e^n=An;n}IvwAM}|1YZ_+zumq*=7E6*$yM;I%@;l zVdNg@mVag!2jA|~tQbyj`kv;e@(T@?KIE-7iesswWjhSFG^1rZjFMz2WjhSdQYmFS zjM6kIWjlO2nzbX&k8xQYadz8!xNb|mf`8$v zYD@iObP&C(>p#IY^r)-rKTR&C7vK9SK2!0%pFdX5_4e8?a2+@BrP^M5bLlYpod<8C z7hkE)gSV#V(F=(AH~xeF;%j_^+xQm$!~byyeYjf|5Tid235$e}gs;R9iJ=mH68;ia zi2#W}37dpnB1j@wB1B@C#Bhlb5+fx-CGL?3lL(iHkcgBRB{5p!UWqXhQ4(V%?vofN UalgcPiD-!ldP_h|jQ&yOcSHWih5!Hn delta 2654 zcmXZddt6gx7zgn8j42yz3@->MiZ?_>M5Qz@oJ>}58|0PD z#!AF>fIj3tFq|P-4)6SJU@t7z@$}+DrvS@H|?wQ7`ytN0fF>n>IWp=OUFY^lQ1-skH7Fm^SY&m1g<`$3v9N@LIi|X)|0|3xg7c6xX$dLD53K zGr$-G!92j&y-_8YocEHtLk|dnp3nmEsfdB#eYn@Dz-OF)$X!K@6`H#p+El zrrH4l&HXo_eejZb%n*U;Y4DPz4r@$LgO`#wL<$(ZTWFtrIaVaAtNgr}U`r3h(pHs5 zkTP|sCer978#O1==q3ALDrxjm){|7y=%wuORMP0BoGDb&=%rkVN*cYCXQYxwFFC9z znVv>3WzhFyOLrqR%uw)82iMwqak?(03mS%5I5bke(_JsZ(=Z;MfeA1Xo`vTi7AA3b z{p6rgF{bkq+D6do89{-0OPUw+rx6rbE@6%N(+CQZ^((zFf>WLm9K}k3)fJ?>5tt=>NO2sfax%UC-sV-(`mfvfvN40Rh~!6=470IKYFBWd4x6Q zM~{?~4=qyRk+(gMY{H6cJ!w?A#_QuETw%lFqipHZamyV+BgmQKP({=9Wg9i4Y5KB# zK9w|mIcqVMG<`XHDU~#RIcF7>G<`YOK_yLJ&MTynrY}3TqGWzFeK~`^CtG|8sbPAW z{<&fCnEnJb^fY}r-#K)6Jj~=nhrc+v1tUo7I}2um#MAoDdHPrMxNa`YgZZ56794Ix zZ<%ibyaX@vWxk1(=g=E?H4zqq5f(ubyaJ2C#0OqAuL;F{6|H8lKr*C2Dp+9&yb7=J ziq@qSS-3aVz6@T6H()tWwaZ)7=zHhMumaLxCAZm%gC}_Y_UdfK0IQqN(6a6#0;(5Ez zVnwvNjN7YTvZaey`T=jXm>Gd8jJ89xQ8SFTL$t?HN!uZ2&7zXFL(ER3lD0$4NuiRq zL(G+_r0o#%>{QZrh>q1L+qXl^pzp`xYLT9|I%Y=|wqrONZEv-h?=0F;1xKM8zJM=z z(T-#N?_wNPg~#CpuPXeiRD@Hg-+FF$)XSn6@*-Brmh5DX@^H2{Lc&Kl~!Tac+QC);f zyUwUC|Afo4O_$*c`~Z#cBR|`8)m@0SBg=n+Yy8OaCY>ACwF%eZXK3cN2{%Ig&}&Y) z0XMqZlAm L`-F!JKd$>9VF|>v