資源簡介
這是在老師指導下自己編寫的一個64QAM的matlab調試仿真程序,包括序列的產生,電平轉換與調制三部分,其中省略了編碼的一部分,代碼附有詳細的注釋,可供新手同學一起學習,大神請忽略!!!
代碼片段和文件信息
clc;
clear;
N=60;??????????????????????????????????%信號點數,因為64QAM每一組有6位,故該值取6的倍數較好
M=64;??????????????????????????????????%64QAM
fc=1;?????????????????????????????????%正交載波頻率該值越大,則每個電平符號周期內的載波周期越多
bitStream=randi([01]1N);????????????%0、1隨機序列,含有直流分量
bitStreamC=bitStream;
for?value=1:N??????????????????????????%1-1隨機序列,不含直流分量
????if?bitStreamC(value)==0?????????????
????????bitStreamC(value)=-1;
????end
end
%?bitStream=zeros(160);????????????????%0、1交替序列
%?for?value=1:2:60
%?????bitStream(value)?=?1;
%?end
%?bitStream=ones(160);?????????????????%矩形序列
%=======分組與電平轉換========%
%八中電平,分別為1(1),3(3),5(5),7(7),-1(0),-3(2),-5(4),-7(6)
%括號外為實際電平值,括號內為對應的八進制數
IStream=zeros(1N/log2(M));
QStream=zeros(1N/log2(M));
i=0;
for?k=1:log2(M):N???????????????????????????
????Itemp=[bitStream(k)bitStream(k+1)bitStream(k+2)];
????Qtemp=[bitStream(k+3)bitStream(k+4)bitStream(k+5)];
????i=i+1;
????IStream(i)=Itemp(1)+Itemp(2)*2+Itemp(3)*4;
????QStream(i)=Qtemp(1)+Qtemp(2)*2+Qtemp(3)*4;
????if?mod(IStream(i)2)==0
????????IStream(i)=IStream(i)-7;
????end
????if?mod(QStream(i)2)==0
????????QStream(i)=QStream(i)-7;
????end
end
figure(1)
subplot(211);
stem(bitStream‘filled‘);
title(‘原始信號序列‘);
subplot(212);
stem(bitStreamC‘filled‘);
title(‘1-1轉換序列‘);
figure(2)
stem(IStream);
- 上一篇:頻域差值技術
- 下一篇:BP神經網絡和混沌神經網絡
評論
共有 條評論