⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.c.htm

📁 is about alamouti channel estimation
💻 HTM
📖 第 1 页 / 共 2 页
字号:
</span><span class="line">   53 </span><span class="sym"></span>            <span class="kwb">float</span> <span class="sym">*</span>ans_re<span class="sym">,</span> <span class="kwb">float</span> <span class="sym">*</span>ans_im<span class="sym">)</span><span class="line">   54 </span><span class="sym">{</span><span class="line">   55 </span><span class="sym"></span>    <span class="slc">// position markers in the output matrix</span><span class="line">   56 </span><span class="slc"></span>    <span class="kwb">long int</span> ans_row<span class="sym">,</span> ans_col<span class="sym">;</span><span class="line">   57 </span><span class="sym"></span><span class="line">   58 </span><span class="sym"></span><span class="line">   59 </span><span class="sym"></span>    <span class="slc">// check the matrix dimensions match</span><span class="line">   60 </span><span class="slc"></span>    <span class="kwa">if</span> <span class="sym">(</span>m1_cols <span class="sym">!=</span> m2_rows<span class="sym">)</span><span class="line">   61 </span><span class="sym">    {</span><span class="line">   62 </span><span class="sym"></span>        printf<span class="sym">(</span><span class="str">&quot;ERROR:</span><span class="esc">\n </span> <span class="str">matrix_mult_f: Matrix dimensions do not match,</span> <span class="esc">\</span><span class="line">   63 </span><span class="esc"></span><span class="str">            m1_cols and m2_rows must be the same. %d != %d</span><span class="esc">\n</span><span class="str">&quot;</span><span class="sym">,</span><span class="line">   64 </span><span class="sym"></span>            m1_cols<span class="sym">,</span> m2_rows<span class="sym">);</span><span class="line">   65 </span><span class="sym"></span><span class="line">   66 </span><span class="sym"></span>        exit<span class="sym">(-</span><span class="num">1</span><span class="sym">);</span><span class="line">   67 </span><span class="sym">    }</span><span class="line">   68 </span><span class="sym"></span><span class="line">   69 </span><span class="sym"></span><span class="line">   70 </span><span class="sym"></span>    <span class="kwa">for</span> <span class="sym">(</span> ans_row<span class="sym">=</span><span class="num">0</span><span class="sym">;</span> ans_row <span class="sym">&lt;</span> m1_rows<span class="sym">;</span> ans_row<span class="sym">++ )</span><span class="line">   71 </span><span class="sym">    {</span><span class="line">   72 </span><span class="sym"></span>        <span class="kwa">for</span> <span class="sym">(</span> ans_col<span class="sym">=</span><span class="num">0</span><span class="sym">;</span> ans_col <span class="sym">&lt;</span> m2_cols<span class="sym">;</span> ans_col<span class="sym">++)</span><span class="line">   73 </span><span class="sym">        {</span><span class="line">   74 </span><span class="sym"></span>            <span class="slc">// loop variable for next 'for' loop</span><span class="line">   75 </span><span class="slc"></span>            <span class="kwb">int</span> i<span class="sym">;</span><span class="line">   76 </span><span class="sym"></span><span class="line">   77 </span><span class="sym"></span><span class="line">   78 </span><span class="sym"></span>            <span class="slc">// work out the &quot;indexes&quot; (pointers to) the</span><span class="line">   79 </span><span class="slc"></span>            <span class="slc">// current element of the answer matrix</span><span class="line">   80 </span><span class="slc"></span>            <span class="kwb">float</span> <span class="sym">*</span>ans_re_addr <span class="sym">=</span> ans_re <span class="sym">+ (</span>ans_row <span class="sym">*</span> m2_cols<span class="sym">) +</span> ans_col<span class="sym">;</span><span class="line">   81 </span><span class="sym"></span>            <span class="kwb">float</span> <span class="sym">*</span>ans_im_addr <span class="sym">=</span> ans_im <span class="sym">+ (</span>ans_row <span class="sym">*</span> m2_cols<span class="sym">) +</span> ans_col<span class="sym">;</span><span class="line">   82 </span><span class="sym"></span><span class="line">   83 </span><span class="sym"></span>            <span class="slc">// initialise the answer values</span><span class="line">   84 </span><span class="slc"></span>            <span class="sym">*(</span>ans_re_addr<span class="sym">) =</span> <span class="num">0</span><span class="sym">;</span><span class="line">   85 </span><span class="sym">            *(</span>ans_im_addr<span class="sym">) =</span> <span class="num">0</span><span class="sym">;</span><span class="line">   86 </span><span class="sym"></span><span class="line">   87 </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">&lt;</span> m1_cols<span class="sym">;</span> i<span class="sym">++)</span><span class="line">   88 </span><span class="sym">            {</span><span class="line">   89 </span><span class="sym"></span>                <span class="kwb">float</span> m1_re_val<span class="sym">,</span> m1_im_val<span class="sym">;</span><span class="line">   90 </span><span class="sym"></span>                <span class="kwb">float</span> m2_re_val<span class="sym">,</span> m2_im_val<span class="sym">;</span><span class="line">   91 </span><span class="sym"></span><span class="line">   92 </span><span class="sym"></span>                m1_re_val <span class="sym">= *(</span>m1_re <span class="sym">+ (</span>ans_row <span class="sym">*</span> m1_cols <span class="sym">+</span> i<span class="sym">));</span><span class="line">   93 </span><span class="sym"></span>                m1_im_val <span class="sym">= *(</span>m1_im <span class="sym">+ (</span>ans_row <span class="sym">*</span> m1_cols <span class="sym">+</span> i<span class="sym">));</span><span class="line">   94 </span><span class="sym"></span><span class="line">   95 </span><span class="sym"></span>                m2_re_val <span class="sym">= *(</span>m2_re <span class="sym">+ (</span>i <span class="sym">*</span> m2_cols <span class="sym">+</span> ans_col<span class="sym">));</span><span class="line">   96 </span><span class="sym"></span>                m2_im_val <span class="sym">= *(</span>m2_im <span class="sym">+ (</span>i <span class="sym">*</span> m2_cols <span class="sym">+</span> ans_col<span class="sym">));</span><span class="line">   97 </span><span class="sym"></span><span class="line">   98 </span><span class="sym">                *(</span>ans_re_addr<span class="sym">) += (</span>m1_re_val <span class="sym">*</span> m2_re_val<span class="sym">) - (</span>m1_im_val <span class="sym">*</span> m2_im_val<span class="sym">);</span><span class="line">   99 </span><span class="sym">                *(</span>ans_im_addr<span class="sym">) += (</span>m1_re_val <span class="sym">*</span> m2_im_val<span class="sym">) + (</span>m1_im_val <span class="sym">*</span> m2_re_val<span class="sym">);</span><span class="line">  100 </span><span class="sym">            }</span><span class="line">  101 </span><span class="sym"></span><span class="line">  102 </span><span class="sym">        }</span><span class="line">  103 </span><span class="sym">    }</span><span class="line">  104 </span><span class="sym"></span>    <span class="kwa">return</span><span class="sym">;</span><span class="line">  105 </span><span class="sym">}</span><span class="line">  106 </span><span class="sym"></span><span class="line">  107 </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 + -