?? 7-19.m
字號:
%例程7-19 QPSK調制與解調
function modsymbols=qpsk(moduinput)
inputbits=moduinput;
full_len=length(inputbits);
table=exp(j*[-3/4*pi 3/4*pi 1/4*pi -1/4*pi]); % 生成QPSK星座圖
table=table([0 1 3 2]+1);
inmodu=reshape(inputbits,2,full_len/2); % 把輸入序列分成兩路
modsymbols=table([2 1]*inmodu+1); % 實現輸入比特流的QPSK映射
%利用距離矢量判決解調QPSK的過程也可以由MATLAB程序說明如下:
function output_bits = deqpsk(input_symbols)
input=input_symbols;
d=zeros(4,length(input)); % d是信道傳輸值與各星座點的距離
m=zeros(1,length(input));
temp=[-1-j -1+j 1-j 1+j]/sqrt(2); % 對應 00 01 10 11
for i=1:length(input)
for n=1:4
d(n,i)=(abs(input(i)*sqrt(2)-temp(n))).^2; %求出傳輸值與星座圖所有點的“距離”
end
[min_distance,constellation_point] = min(d(:,i));
m(i) = constellation_point;
end
A=de2bi([0:3],'left-msb'); %對應于 A=[0 0;0 1;1 0;1 1]
for i=1:length(input)
out(i,:)=A(m(i),:); % 最小值對應的星座點序號的二進制
end % 表示即為解調結果
output_bits=reshape(out',1,length(input)*2);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -