?? model.m
字號:
function [y,y_com]=modla(code_num,sample_rate,carrier_frequency,symbol_rate,shape,mode)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 相位調制信號生成程序 %
% 生成MPSK(M=2,4,8) %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%函數體[y,y_com]=modla(code_num,M,sample_rate,carrier_frequency,symbol_rate,delay,rool
%factor,shape,mode)
%參數說明
% y 輸出調制信號序列
% y_com 星座圖映射序列
% code_num 碼元數目
% M 調制階數
% sample_rate 采樣速率
% carrier_frequency 載波頻率
% symbol_rate 符號速率
% shape 成型脈沖形狀
% shape=1 矩形脈沖
% shape=2 升余弦脈沖
% shape=3 平方根升余弦脈沖
% mode 調制體制,有3種形式
% mode=1 BPSK調制
% mode=2 QPSK調制
% mode=3 8PSK調制
%函數體
%參數初始化
if mode==1
M=2;
elseif mode==2
M=4;
elseif mode==3
M=8;
end
x=randint(1,code_num,M);
T=1/symbol_rate;%碼元間隔
nsample=sample_rate/symbol_rate;%重采樣個數
t=0:1/sample_rate:(code_num/symbol_rate-1/sample_rate);%仿真時間序列
%N=4096;%FFT點數
%f=sample_rate*(0:N-1)/N;%頻率序列
mod=exp(j*2*pi*carrier_frequency*t);%調制信號序列
%MPSK調制
% if shape==2|shape==3
% roolfactor=input('請輸入升余弦/平方根升余弦滾降系數');
% end
roolfactor=0.5;
switch mode
%BPSK調制
case 1,
y_com=pskmod(x,2);%低通復包絡映射
%scatterplot(y_com);
switch shape
case 1,
yshape=phase(y_com,nsample,roolfactor,1);
case 2,
yshape=phase(y_com,nsample,roolfactor,2);
case 3,
yshape=phase(y_com,nsample,roolfactor,3);
end
y=real(yshape.*mod);
%QPSK調制
case 2,
y_com=pskmod(x,4);%低通復包絡映射
%scatterplot(y_com);
switch shape
case 1,
yshape=phase(y_com,nsample,roolfactor,1);
case 2,
yshape=phase(y_com,nsample,roolfactor,2);
case 3,
yshape=phase(y_com,nsample,roolfactor,3);
end
y=real(yshape.*mod);
%8PSK調制
case 3,
y_com=pskmod(x,8);%低通復包絡映射
%scatterplot(y_com);
switch shape
case 1,
yshape=phase(y_com,nsample,roolfactor,1);
case 2,
yshape=phase(y_com,nsample,roolfactor,2);
case 3,
yshape=phase(y_com,nsample,roolfactor,3);
end
y=real(yshape.*mod);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -