diff options
-rw-r--r-- | doc/thesis/Fading.bib | 12 | ||||
-rw-r--r-- | doc/thesis/chapters/theory.tex | 23 | ||||
-rw-r--r-- | flowgraphs/qpsk_hw.grc | 7 | ||||
-rwxr-xr-x | flowgraphs/qpsk_hw.py | 2 | ||||
-rwxr-xr-x | src/gui/gui.py | 2 | ||||
-rw-r--r-- | src/gui/net.py | 2 |
6 files changed, 37 insertions, 11 deletions
diff --git a/doc/thesis/Fading.bib b/doc/thesis/Fading.bib index 3d31790..8661615 100644 --- a/doc/thesis/Fading.bib +++ b/doc/thesis/Fading.bib @@ -6,7 +6,7 @@ % https://mirror.foobar.to/CTAN/macros/latex/contrib/biblatex/doc/biblatex.pdf % description for the entry types are in section 2.1 on page 8 -@article{Alimohammad2009, +@article{M, title = "Compact Rayleigh and Rician fading simulator based on random walk processes", author = "Alimohammad, A. and Fard, S.F. and Cockburn, B.F. and Schlegel, C.", journal = "IET Commun.", @@ -156,3 +156,13 @@ year = 2011, language = "de" } + +@BOOK{Hoher2013, + title = "Grundlagen der digitalen Informations{\"u}bertragung", + author = "Hoher, Peter Adam", + publisher = "Springer Vieweg", + edition = 2, + month = jun, + year = 2013, + language = "de" +} diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index c6f2620..a9bea7d 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -371,16 +371,31 @@ i.e. the amplitude of \(f\) is \emph{Raileigh} distributed. \label{fig:multipath-statistical-models} } \end{figure} +\skelpar[4]{Explain This formulars} \paragraph{LOS case} -In the case of the Rician distribution model. The line of side exist, which means that one of the paths have a straight communication line from the transmitter to the reviser. -It can be said that a Rayleight distribution is the same as a Rician distribution with a factor K =0. -For a faktor K= 5.1 the probability function is gaussien distributed. +In the case of the Ricean distribution model the line of side exist, which means that one of the paths have a straight communication line from the transmitter to the reviser. So there are in addition to the Rayleight model direct components, whish are also gaussian distributed. + +\begin{equation} \label{eqn:rician fading} + f(t) = \sqrt{\frac{K}{K+1}}+\lim_{N\rightarrow\infty}\frac{1}{\sqrt{K+1}} \frac{1}{\sqrt{N}}\sum_{n=1}^{N} e^{j(\Theta +2\pi jf t)}. +\end{equation} + +The factor \(K\) named Ricean factor it is the ratio of the line of side power to the average power of the distributed components. +The Phase for the strait line component has no influences for the Random process therefore there set to zero. In the case when \(K = 0 \) +the Rician distribution becomes a Rayleight distribution on the other hand when \(K\rightarrow \infty \) the distribution becomes an AWGN-channel model (additive white Gaussian noise). When \(K > 0 \) is the phase not equally distributed. + +For this distribution model the expectation value for the real part is \(\E{\Re{f(t)}}=\sqrt{\frac{K}{K+1}} \) and for the imaginary part \(\E{\Im{f(t)}}=0\) + +So the probability function of the amplitude in this case is: +\begin{equation} \label{eqn:rician_fading_probabilety_dencety} + p(a)= 2a(1+K)\exp{(-K-{a}^2(K+1))}\cdot I_0(2a\sqrt{K(1+K)}) +\end{equation} + +Where \(I_0\) the zero ordered modified besselfunction represent. -\skelpar[4]{Explain statistical model with Rician distribution.} \begin{equation} \Re{h_l(n)}, \Im{h_l(n)} \sim \mathcal{N} \left( \frac{A_l}{\sqrt{2}}, \frac{1}{2} \sigma_l^2 \right) diff --git a/flowgraphs/qpsk_hw.grc b/flowgraphs/qpsk_hw.grc index a0d6872..1a3d562 100644 --- a/flowgraphs/qpsk_hw.grc +++ b/flowgraphs/qpsk_hw.grc @@ -415,6 +415,7 @@ blocks: - name: fadingui_ber_0 id: fadingui_ber parameters: + address: udp://localhost:31420 affinity: '' alias: '' comment: '' @@ -459,7 +460,7 @@ blocks: bus_structure: null coordinate: [704, 316.0] rotation: 0 - state: disabled + state: enabled - name: fadingui_netsink_1 id: fadingui_netsink parameters: @@ -491,7 +492,7 @@ blocks: bus_structure: null coordinate: [1280, 916.0] rotation: 0 - state: disabled + state: enabled - name: fadingui_netsink_4 id: fadingui_netsink parameters: @@ -507,7 +508,7 @@ blocks: bus_structure: null coordinate: [528, 916.0] rotation: 0 - state: disabled + state: enabled - name: fadingui_phasecorrection_0 id: fadingui_phasecorrection parameters: diff --git a/flowgraphs/qpsk_hw.py b/flowgraphs/qpsk_hw.py index 9db06a3..741f405 100755 --- a/flowgraphs/qpsk_hw.py +++ b/flowgraphs/qpsk_hw.py @@ -207,7 +207,7 @@ class qpsk_hw(gr.top_block, Qt.QWidget): self._qtgui_const_sink_x_0_0_win = sip.wrapinstance(self.qtgui_const_sink_x_0_0.pyqwidget(), Qt.QWidget) self.top_grid_layout.addWidget(self._qtgui_const_sink_x_0_0_win) self.fadingui_phasecorrection_0 = fadingui.phasecorrection(frame_len) - self.fadingui_ber_0 = fadingui.ber(vgl=testvec + list(np.zeros(4)), vlen=frame_len) + self.fadingui_ber_0 = fadingui.ber(vgl=testvec + list(np.zeros(4)), vlen=frame_len,address='udp://localhost:31420') self.digital_pfb_clock_sync_xxx_0 = digital.pfb_clock_sync_ccf(sps, 2 * np.pi / 100, rrc_taps, 32, 16, 1.5, 1) self.digital_lms_dd_equalizer_cc_0 = digital.lms_dd_equalizer_cc(15, 3e-3, 1, qpsk_const) self.digital_corr_est_cc_0 = digital.corr_est_cc(access_code_symbols, 1, len(access_code_symbols) // 2, 0.7, digital.THRESHOLD_ABSOLUTE) diff --git a/src/gui/gui.py b/src/gui/gui.py index c0e4a9e..cc201a3 100755 --- a/src/gui/gui.py +++ b/src/gui/gui.py @@ -255,7 +255,7 @@ with window(label="Bit Error Rate ", width=800, height=320, pos=(0,825),\ add_theme_color(mvThemeCol_Text,(0,0,0)) #Schwarz add_theme_style(mvStyleVar_FrameRounding, 5) - add_button(label="BER", height=60, width=700, pos=(50,125),tag="ber_value") + add_button(label="BER", height=60, width=700, pos=(50,125), tag="ber_value") bind_item_theme(last_item(), "button_ber") bind_item_theme(ber_window, "ber_window") diff --git a/src/gui/net.py b/src/gui/net.py index 820bc84..f35c7f0 100644 --- a/src/gui/net.py +++ b/src/gui/net.py @@ -83,7 +83,7 @@ class network_value(udpsource): self.bind() def read(self): - return udpsource.read(self, 1) + return udpsource.read(self, 3) def refresh(self): self.value = self.read() |