syfsk.rar

  • PUDN用户
    了解作者
  • DOS
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 2
    下载次数
  • 2015-12-14 20:59
    上传日期
S1:卷积编码后的编码数据,为串行数据 Nfft:载波数 Nused:使用的载波数 G:保护间隔比例 symbolnum:OFDM符号数 实现对编码数据的map对应,加虚载波,ifft变换,加cp四个功能,最后以串行数据输出
syfsk.rar
  • syfsk.m
    3.6KB
内容介绍
%function txdata = ofdm4fsk(S1, Nfft, Nused, G, symbolnum) Nfft=256;%FFT大小 Nused=160;%使用子载波数 G=0.25;%保护间隔比例 symbolnum=100;%每一帧的符号数Nframe S=randi([0, 1], 1, symbolnum*Nused*2/4/2);%原始数据,0,1 S1=convcoding(S);%卷积编码1/2 %S1:卷积编码后的编码数据,为串行数据 %Nfft:载波数 %Nused:使用的载波数 %G:保护间隔比例 %symbolnum:OFDM符号数 %实现对编码数据的map对应,加虚载波,ifft变换,加cp四个功能,最后以串行数据输出 %0...0 - 1 0 1...0 - 0...0 | 0...0-1 0 1...0 1-0...0 | ... l1 = length(S1);%求卷积后的数据的长度 卷积之后信号的长度变了。 X1 = reshape(S1, 2, l1/2).';%这样X1变成L1/2 * 2。即每列有L1/2个元素,有2列。 没加转置之前,,就是将S1变成2*l1/2(即每列有2个元素,有l1/2列) 就是将S1按列的顺序每取两个作为一列 %将一列变成一行 加上转置之后,第一列是原始数据的1 3 5…… %第二列是原始数据的2 4 6…… X2 = bi2de(X1, 2, 'left-msb');%将2进制的数按照从左往右看 转换为十进制 是按照一行 一行来转 2,代表的是将2进制转化为十进制 3代表的是将3进制转化为十进制,区别是 2 进制中的 11表示的是十进制中的3 三进制中的11 表示成十进制是4 %即将每行都转为成十进制的数值 每行的元素转化过来 然后变成一个列向量 %X2变成L1/2 * 1 即每列有L1/2个元素 是一个列向量 每行的元素范围为:0-3 fsk4table = [0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0]; %因为MATLAB中的维数是从1开始的 X3 = fsk4table(:, X2+1);%取出该矩阵的第X2+1列的元素 为什么是x2+1因为是上面二进制转化为十进制的可能有 0 2进制转化为十进制 一行是2比特 所以转换成的十进制的数是0----3 % X2+1是个列向量, 第一个元素映射成一列 第二个元素映射成另一列,依次类推 %x3 是4行 L1/2列 fsk4的映射关系是0--1,1--2,2--3,3--4. [r1,c1] = size(X3);%返回的是 r1=4 c1=L1/2 这是一个4* L1/2 的矩阵 这些是实实在在要传输的数据 Nsymbol = r1*c1/Nused;%有多少数据/子载波数;r1*c1=l1 就是原始卷积后的数据的长度 X4 = reshape(X3, Nused, symbolnum);%.....................以上为map部分,与demap对应 按照X3的列取元素 取到 Nused 为新矩阵的第一列 然后依次这样取下去 %将映射过来的数据,每列有Nused个元素,有symbolnum列 % unusedcarry = zeros((Nfft-Nused)/2,Nsymbol);%未使用的载波数为:Nfft-Nused)/2*Nsymbol % X5 = [unusedcarry % X4 % unusedcarry];//加虚载波这种方式是在有用子载波的头和尾各加 (nfft-nused)/2个 unusedcarry1= zeros(Nfft-Nused-1,Nsymbol);%另外一种加虚载波的方法: 每列有Nfft-Nused-1个载波,有Nsymbol列 X51 = [zeros(1,Nsymbol) %在最上面加了1个虚载波,然后是有用子载波,在加(nfft-nused-1)个虚载波,最后是有用子载波 仔细看下这个矩阵 把每列的元素的个数相加后得到Nfft(载波数) X4(Nused/2+1:Nused,:)%这个不是按行来链接矩阵 而是按列来链接的 unusedcarry1 X4(1:Nused/2,:)]; % 这个是加了虚载波之后的数据 x6 = ifft(X51, Nfft, 1);%x6第一列是X5按列来进行ifft变换 这步奏就是进行调制 %进行过fft之后在加循环前缀 cp = (Nfft - Nfft * G + 1):1:Nfft;%计算循环前缀的长度为 Nfft * G 加的循环前缀是从那开始的 x7 = [x6(cp,:)%这个也是按列来扩展矩阵的 这个是每列加cp个元素 Nsymbol列 x6];%这个是加循环前缀,取出x6后面的一部分添加到x6的前面 txdata = x7(:).';%这个x7(:)的意思就是 将第二列接在第一列下,第三列的元素接在第二列的元素下 %上面一行代码的意思是:按列取出每一个ofdm的符号 然后排成一行,是个行向量 txdata=txdata./max(txdata.*conj(txdata));%conj是求复数的共轭 max(A)如果A是一个向量 则返回该向量的最大值 ?????
评论
    相关推荐
    • CFAR.zip
      雷达系统与原理,CFAR恒警处理的简单实现,maatlab代码
    • chap09.zip
      ex9_2 载波10MHz,带宽2MHz的线性调频信号及其频谱图 ex9_3 产生7位巴克码编码的二相码 ex9_4 产生7位巴克码和线性调频的混合调制信号 ex9_5 瑞利分布实现程序 ex9_6 瑞利分布+杂波 ex9_7 相关对数正态...
    • Chirp信号、杂波仿真、CFAR、MTD等
      ex9_2 载波10MHz,带宽2MHz的线性调频信号及其频谱图 ex9_3 产生7位巴克码编码的二相码 ex9_4 产生7位巴克码和线性调频的混合调制信号 ex9_5 瑞利分布实现程序 ex9_6 瑞利分布+杂波 ex9_7 相关对数正态分布...
    • 基于MATLAB的雷达数字信号处理
      本教程目的为:利用MATLAB设计经典的雷达数字信号处理。该系统具备对雷达目标回波的处理能力,能够从噪声中将目标检测出来,并提取目标的距离、速度、角度信息...第四节,恒警CFAR处理; 第五节,目标信息提取处理。
    • MATLAB7.x数字信号处理
      ex9_2 载波10MHz,带宽2MHz的线性调频信号及其频谱图 ex9_3 产生7位巴克码编码的二相码 ex9_4 产生7位巴克码和线性调频的混合调制信号 ex9_5 瑞利分布实现程序 ex9_6 瑞利分布+杂波 ex9_7 相关对数正态分布杂波 ex9...
    • 调制解调.zip
      QAM调制技术用两路独立的基带信号对频率相同、相位正交的两个载波进行抑制载波双边带调幅,并将已调信号加在一起进行传输。nQAM代表n个状态的正交调幅,一般有二进制(4QAM)、四进制(16QAM)、八进制(64QAM) ...
    • 计算机网络常见问题解答
      问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用? 问题3-8:在以太网中,不同的传输媒体会产生不同的传播时延吗? 问题3-9:在以太网中发生了碰撞是否...
    • MATLAB dsp useful old.rar
      ex9_2 载波10MHz,带宽2MHz的线性调频信号及其频谱图 ex9_3 产生7位巴克码编码的二相码 ex9_4 产生7位巴克码和线性调频的混合调制信号 ex9_5 瑞利分布实现程序 ex9_6 瑞利分布+杂波 ex9_7 相关对数正态分布杂波 ex9...
    • 《MATLAB R2016a通信系统建模与仿真28个案例分析》源码
      4.2.3恒警处理 4.2.4积累处理 第5章扩频通信系统的MATLAB实现 5.1扩频通信系统的仿真 5.2伪随机码产生 5.2.1m序列 5.2.2伪随机数序列相关函数 5.2.3Gold序列 5.3直接序列扩频系统 5.4利用MATLAB仿真演示...
    • matlabcnhelp.rar
      matlab中文帮助很难找的,快速下载