维特比软信息译码——高斯信道/瑞丽信道

news/2025/2/12 3:39:02/

%蒙特卡罗仿真(Rayleigh信道,软判决,2FSK)
%
Eb=2;     %每比特的能量,能量越大,卷积译码的误码率越小
k=1;
G=[1 0 1;1 1 1];
input=[1 0 1 0 1 1 1 0];
dsource=cnv_encd(G,k,input);
N=length(dsource);
% n=size(G,1);    %得到码字长度
% Ec=k*Eb/n;      %得到码元能量
channel_output=zeros(1,2*N);

% FSK调制
Tb=1;
f1=1000/Tb;
f2=f1+1/Tb;
%f2=1500/Tb;
phi=pi/4;
NN=500;
t=0:Tb/(NN-1):Tb;
u1=cos(2*pi*f1*t);   %若发送0,则已调信号为u1
u2=cos(2*pi*f2*t);   %若发送1,则已调信号为u2

% 通过Rayleigh信道
chan = rayleighchan(1/1000,0) 

for j=1:N
    if(dsource(j)==0)
        r=cos(2*pi*f1*t+phi);
        y= filter(chan,r);     %衰落
    else
        r=cos(2*pi*f2*t+phi);
        y= filter(chan,r);     %衰落
    end;
    %计算相关输出
           v1=sin(2*pi*f1*t);
           v2=sin(2*pi*f2*t);
           r1c(1)=y(1)*u1(1);
           r1s(1)=y(1)*v1(1);
           r2c(1)=y(1)*u2(1);
           r2s(1)=y(1)*v2(1);
             for k=2:NN
              r1c(k)=r1c(k-1)+y(k)*u1(k);
              r1s(k)=r1s(k-1)+y(k)*v1(k);
              r2c(k)=r2c(k-1)+y(k)*u2(k);
              r2s(k)=r2s(k-1)+y(k)*v2(k);
             end;
     %判决变量 
     r1=r1c(NN)^2+r1s(NN)^2;
     r2=r2c(NN)^2+r2s(NN)^2; 
%      if(abs(r1)>abs(r2))      %判决 
%          res(j)=0;
%      else
%          res(j)=1;
%      end;
     channel_output(1,2*j-1)=abs(r1);
     channel_output(1,2*j)=abs(r2);     %输如到然判决译码器
end;
%软判决维特比译码
k=1;
[decoder_output,survivor_state,cumulated_metric]=soft_2FSK_viterbi(G,k,channel_output);
D33


http://www.ppmy.cn/news/171969.html

相关文章

循迹+计时+测速+显示

#include<stc8a8k.h> #include<oled.h> #include<delay.h> #include<stdio.h> #include "hpwm.h" //***************************************************************************下面是接线定义 //左电机 sbit LPWMP2^0;//电机调节速度的…

802.11R无线交互

1. 专有名词 2. 说明 Beacon&#xff08;信标&#xff09;帧是一种由AP周期发送的广播帧&#xff0c;AP通过周期发送Beacon帧来声明某个802.11网络的存在。STA&#xff08;无线客户端&#xff09;收到Beacon帧后可以得知该网络的存在&#xff0c;从而调整加入该网络所必需的参数…

ROS1和ROS2的区别

1、ros1 组件用c/python&#xff0c;ros2 组件用c/python&#xff1b; 2、ros1 只支持Linux和MacOS&#xff0c;而 ros2 支持Linux/Windows/MacOS/RTOS&#xff1b; 3、ros1 的通讯基于TCPROS/UDPROS&#xff0c;强依赖于master节点的处理&#xff0c;而 ros2 基于DDS(分布式架…

软件定义汽车之 Android Automotive OS 发展历程

这篇文章旨在介绍专为汽车打造的 Android 操作系统&#xff0c;而非用来在车辆中连接 Android 设备的 Android Auto 平台。 翻译自 Wikipedia。 信息说明开发商Google系统家族Android官方网址https://www.android.com Android Automotive 全称是 Android Automotive OS&#x…

stc8a循迹小车程序编写实验:完成循迹功能,包括直角转弯,以及调头

1、实验目的&#xff1a; 利用stc8a8k的内置硬件PWM&#xff0c;这里用到P20&#xff0c;P21产生PWM&#xff0c;调节占空比&#xff0c;调小车速度&#xff1b; 熟悉按键和IO口的读取功能&#xff1b; 2、实现效果&#xff0c; 按下按键开始&#xff0c;两秒后&#xff0c;小车…

对S参数的理解II

本篇文章特别感谢粉丝朋友“千年的呢喃”&#xff0c;他给我推荐了一本书&#xff0c;写的非常好 Micro Wave and RF Design&#xff0c;有需要的朋友自行下载。 之前关于S参数也写过几篇文章了&#xff0c;但一直以来都有一个历史遗漏问题没有解决&#xff0c;那就是&#xf…

OpenWrt新手必备之技能

OpenWrt新手必备之技能 文章目录 OpenWrt新手必备之技能前言一、硬件选择二、固件选择三 、固件安装四 、如何组网4.1. 确认固件的基本信息4.2. 接线组网 五、系统配置六、备份与升级七、小结八、参考链接 前言 Openwrt的生态相当复杂&#xff0c;初次接触的人会感受到不少困惑…

实例4,循迹模块的使用和循迹小车的实现

1、循迹模块介绍&#xff1b; 2、循迹原理&#xff1b; 3、硬件接线&#xff1b; 4、循迹编程思路流程图&#xff1b; 5、循迹程序第一稿&#xff08;后面再写几篇文章加计时、测距、蓝牙等模块&#xff09;。 一、循迹模块 目前大一新生&#xff0c;多数用的是数字式的循…