?? create16qam.m
字號(hào):
function [y, t, v, P] = Create16QAM(fc, amp, fs, RB, M)
% 產(chǎn)生PSK信號(hào),其中NPSK為進(jìn)制數(shù),典型的為2、4、8等,fc為載波頻率,amp為載波基準(zhǔn)幅度, fs為采樣頻率, RB為碼元速率
% 載波為 c = amp*sin(2*pi*fc*t);
% y返回已調(diào)信號(hào),t為時(shí)間矢量,v為碼元矢量, P為采樣信號(hào)的平均功率
% [y, t, v] = Create2ASK(fc, fs, N), 其中M為信息碼元數(shù),隨機(jī)產(chǎn)生N個(gè)碼元;
% [y, t, v] = Create2ASK(fc, fs, V), 其中V為給定的碼元序列,為行矢量;
if (length(M) == 1)
N = M;
V = randint(1, N, 16);
else
V = M;
N = length(V);
end;
v = V;
TotalTime = 1/RB * N; %總時(shí)間
ts = 1 / fs; %采樣周期
index = 1;
curTime = 0;
while(1)
symbIndex = floor(curTime * RB) + 1; %碼元序號(hào)
if (symbIndex > N)
break;
end
symb = V(symbIndex); %碼元符號(hào)
ct = bitget(symb, 1) * 2 + 1;
if (bitget(symb, 2) == 1)
ct = -ct;
end
st = bitget(symb, 3) * 2 + 1;
if (bitget(symb, 4) == 1)
st = -st;
end
c1 = sin(2*pi*fc*curTime);
c2 = cos(2*pi*fc*curTime);
y(index) = amp *(ct*c1 + c2*st); %調(diào)制過程,產(chǎn)生已調(diào)信號(hào)瞬時(shí)幅度
t(index) = curTime;
curTime = curTime + ts;
index = index + 1;
if (curTime > TotalTime)
break;
end;
end;
P = mean(abs(y).^2);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -