資源簡介
matlab源代碼 ,4fsk調制。
代碼片段和文件信息
%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);%原始數據01
????????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
?????????????
- 上一篇:Constrained NSGA2.zip
- 下一篇:DV-HOP算法代碼
評論
共有 條評論