📄 alamouti_enc.c.htm
字号:
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>alamouti_enc.c</title> <link rel="stylesheet" type="text/css" href="highlight.css"/></head><body><pre><span class="line"> 1 </span><span class="com">/* This is an alamouti encoder, it wil map an input stream onto</span><span class="line"> 2 </span><span class="com"> * two output anttennas, using BPSK</span><span class="line"> 3 </span><span class="com"> */</span><span class="line"> 4 </span><span class="line"> 5 </span><span class="dir">#include <stdio.h></span><span class="line"> 6 </span><span class="dir"></span><span class="line"> 7 </span><span class="dir">#include</span> <span class="dstr">"bpsk_mod.h"</span><span class="dir"></span><span class="line"> 8 </span><span class="dir"></span><span class="line"> 9 </span><span class="line"> 10 </span><span class="line"> 11 </span><span class="com">/* macro to get bits n, and (n+1) from x */</span><span class="line"> 12 </span><span class="dir">#define get_bits(x,n) ((unsigned)(x)>>(n)) & (unsigned)0x3</span><span class="line"> 13 </span><span class="dir"></span><span class="line"> 14 </span><span class="kwb">void</span> alamouti_enc<span class="sym">(</span><span class="kwb">unsigned char</span> input<span class="sym">,</span> <span class="kwb">char</span> out_re<span class="sym">[</span><span class="num">2</span><span class="sym">][</span><span class="num">8</span><span class="sym">],</span> <span class="kwb">char</span> out_im<span class="sym">[</span><span class="num">2</span><span class="sym">][</span><span class="num">8</span><span class="sym">])</span><span class="line"> 15 </span><span class="sym">{</span><span class="line"> 16 </span><span class="sym"></span> <span class="kwb">int</span> i<span class="sym">=</span><span class="num">0</span><span class="sym">;</span><span class="line"> 17 </span><span class="sym"></span> <span class="kwb">unsigned char</span> bpsk_mod_re<span class="sym">[</span><span class="num">8</span><span class="sym">],</span> bpsk_mod_im<span class="sym">[</span><span class="num">8</span><span class="sym">];</span><span class="line"> 18 </span><span class="sym"></span><span class="line"> 19 </span><span class="sym"></span> <span class="com">/* modulate the block using BPSK */</span><span class="line"> 20 </span> bpsk_mod<span class="sym">(</span>input<span class="sym">,</span> bpsk_mod_re<span class="sym">,</span> bpsk_mod_im<span class="sym">);</span><span class="line"> 21 </span><span class="sym"></span><span class="line"> 22 </span><span class="sym"></span> <span class="kwa">for</span><span class="sym">(</span>i<span class="sym">=</span><span class="num">0</span><span class="sym">;</span> i<span class="sym"><</span><span class="num">8</span><span class="sym">;</span> i<span class="sym">+=</span><span class="num">2</span><span class="sym">)</span><span class="line"> 23 </span><span class="sym"> {</span><span class="line"> 24 </span><span class="sym"></span> <span class="kwb">int</span> i_1 <span class="sym">=</span> i <span class="sym">+</span> <span class="num">1</span><span class="sym">;</span><span class="line"> 25 </span><span class="sym"></span><span class="line"> 26 </span><span class="sym"></span> <span class="com">/* time t=T */</span><span class="line"> 27 </span> out_re<span class="sym">[</span><span class="num">0</span><span class="sym">][</span>i<span class="sym">] =</span> bpsk_mod_re<span class="sym">[</span>i<span class="sym">];</span><span class="line"> 28 </span><span class="sym"></span> out_im<span class="sym">[</span><span class="num">0</span><span class="sym">][</span>i<span class="sym">] =</span> bpsk_mod_im<span class="sym">[</span>i<span class="sym">];</span><span class="line"> 29 </span><span class="sym"></span><span class="line"> 30 </span><span class="sym"></span> out_re<span class="sym">[</span><span class="num">1</span><span class="sym">][</span>i<span class="sym">] =</span> bpsk_mod_re<span class="sym">[</span>i_1<span class="sym">];</span><span class="line"> 31 </span><span class="sym"></span> out_im<span class="sym">[</span><span class="num">1</span><span class="sym">][</span>i<span class="sym">] =</span> bpsk_mod_im<span class="sym">[</span>i_1<span class="sym">];</span><span class="line"> 32 </span><span class="sym"></span><span class="line"> 33 </span><span class="sym"></span> <span class="com">/* time t=T+1 */</span><span class="line"> 34 </span> out_re<span class="sym">[</span><span class="num">0</span><span class="sym">][</span>i_1<span class="sym">] = -</span>bpsk_mod_re<span class="sym">[</span>i_1<span class="sym">];</span><span class="line"> 35 </span><span class="sym"></span> out_im<span class="sym">[</span><span class="num">0</span><span class="sym">][</span>i_1<span class="sym">] =</span> bpsk_mod_im<span class="sym">[</span>i_1<span class="sym">];</span><span class="line"> 36 </span><span class="sym"></span><span class="line"> 37 </span><span class="sym"></span> out_re<span class="sym">[</span><span class="num">1</span><span class="sym">][</span>i_1<span class="sym">] =</span> bpsk_mod_re<span class="sym">[</span>i<span class="sym">];</span><span class="line"> 38 </span><span class="sym"></span> out_im<span class="sym">[</span><span class="num">1</span><span class="sym">][</span>i_1<span class="sym">] = -</span>bpsk_mod_im<span class="sym">[</span>i<span class="sym">];</span><span class="line"> 39 </span><span class="sym"> }</span><span class="line"> 40 </span><span class="sym">}</span></pre></body></html><!--XHTML generated by highlight 2.2-5, http://www.andre-simon.de/-->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -