資源簡介
這是MSK的matlab源代碼,能夠實現產生載波,調制解調。星座圖,誤碼分析
代碼片段和文件信息
%MSK調制
clear?all?
close?all?
?
%---------------------參數設置----------------------------------------------
data_len?=?8;???????????????%碼元個數?
sample_number?=?100;????????%采樣個數?
Rb?=?280;???????????????????%碼元速率?
Tb?=?1/Rb;??????????????????%碼元時間?
fc?=?700;???????????????????%載波頻率
fs?=?Rb*sample_number;??????%采樣速率?
%---------------------MSK基帶調制-------------------------------------------
%隨機產生傳輸信號?
data?=?[1?-1?-1?-1?-1?-1?1?1];
%差分編碼
[data_diff]?=?difference(data);
%并串轉換
I(1)?=?1;???????????????????????%定義I路的第一個數值為1
for?i?=?1:2:data_len????????????%Q路輸出奇數位數據
????Q(i)?=?data_diff(i);?
????Q(i+1)?=?data_diff(i);?
end??
for?i?=?2:2:data_len????????????%I路輸出偶數位數據
????I(i+1)?=?data_diff(i);?
????I(i)?=?data_diff(i);?
end?
?
for?i?=?1:sample_number?
????I1(i:sample_number:data_len*sample_number)?=?I(1:data_len);?
????Q1(i:sample_number:data_len*sample_number)?=?Q(1:data_len);?
end?
%乘加權函數
t=1/fs:1/fs:data_len*Tb;?
I_out?=?I1?.*?cos(pi*t/2/Tb);?????????????????????%I路乘加權函數
Q_out?=?Q1?.*?sin(pi*t/2/Tb);?????????????????????%Q路乘加權函數
%調制信號產生??
t=1/fs:1/fs:data_len*Tb;??
signal_i=I_out.*cos(2*pi*fc*t);???????????????????%I路乘載波
signal_q=Q_out.*sin(2*pi*fc*t);???????????????????%Q路乘載波
signal_mod=signal_i+signal_q;?
%---------------------------求功率譜密度------------------------------------
Fs=1000;???????????????????????????????????????????%采樣頻率?
window=boxcar(length(signal_mod));?????????????????%矩形窗?
nfft=256;?
[Pxxf]=periodogram(signal_modwindownfftFs);????%直接法?
%---------------------------畫圖-------------------------------------------
subplot(421)?
stem(data);title(‘隨機產生的數字信號‘);
subplot(422)?
stem(data_diff);title(‘差分后的信號‘);?
subplot(423)?
plot(I1‘.-‘);title(‘加權前I路Pk‘);?
subplot(424)?
plot(Q1‘.-‘);title(‘加權前Q路Qk‘);
subplot(425)
plot(cos(pi*t/2/Tb)‘.-‘);title(‘加權函數cos(pi*t/2/Tb)‘);
subplot(426)
plot(sin(pi*t/2/Tb)‘.-‘);title(‘加權函數sin(pi*t/2/Tb)‘);
subplot(427)
plot(I_out‘.-‘);title(‘乘加權函數后I路‘);
subplot(428)
plot(Q_out‘.-‘);title(‘乘加權函數后Q路‘);
figure(2)
subplot(421)
plot(signal_i‘.-‘);title(‘乘載波后I路‘);
subplot(422)
plot(signal_q‘.-‘);title([‘乘載波后Q路‘]);
subplot(42[3?4])
plot(signal_mod‘.-‘);title({[‘MSK調制信號‘];[‘1?-1?-1?-1?-1?-1?1?1‘]});
figure(3)
plot(f10*log10(Pxx)‘linewidth‘1.3);?
xlabel(‘頻率‘)
ylabel(‘功率譜密度dB‘)
title(‘MSK功率譜密度‘)
??
figure(4)
plot(I_out-Q_out);?
xlabel(‘I‘)
ylabel(‘Q‘)
title(‘MSK星座圖‘)
%--------------------------------------------------------------------------
%加噪聲
- 上一篇:多重分形譜計算程序matlab
- 下一篇:matlab進行一維離散小波變換
評論
共有 條評論