?? mpsk_coded.m
字號:
% Comparison of 16-MPSK and 16-QASK
clear all;
clc;
cl = 7; % Codeword length
k = 4; % Message length
m = log2(cl+1); % Express n as 2^m-1.
M = 16; x = wavread('ABHI.wav',40);
x1 = x*128+128; % 1000 random quarternary data is generated
y=dec2bin(x1,8);
n=1;i=0;
for i=1:size(x)
for j=1:4:8
for l=0:1:3
t(1+l)=y(i,j+l);
end
x3(n,1)=bin2dec(t);
n=n+1;
end
end
codehamming = encode(x3,cl,k,'hamming/decimal')
ky = size(codehamming);
coded=dec2bin(codehamming,8);
n=1;
for i=1:2*size(x)
for j=1:4:8
for l=0:1:3
t1(1+l)=coded(i,j+l);
end
x4(n,1)=bin2dec(t1);
n=n+1;
end
end
x4
y1 = pskmod(x4,M); % 16-MPSK modulation
y1n = awgn(y1,5,'measured'); % SNR of 10 dB
%scatterplot(y1n);
y1r=pskdemod(y1n,M); %16-MPSK demodulation
n=1;
y2=dec2bin(y1r,4);
for i=1:2:4*size(x)
for l=0:1:1
if(l~=0)
t(1+l*4)=y2(i+l,1);
else
t(1)=0;
end
t(2+l*4)=y2(i+l,2);
t(3+l*4)=y2(i+l,3);
t(4+l*4)=y2(i+l,4);
end
x1r(n,1)=bin2dec(t);
n=n+1;
end
x1r
dham = decode(x1r,cl,k,'hamming/decimal');
[m,n]=size(dham);
de_bin = dec2bin(dham,4);
[num_error,ber]=symerr(x3,dham) % no semicolon, result echoed
n=1;
for i=1:2:4*size(x)
for l=0:1:1
t(1+l*4)=y2(i+l,1);
t(2+l*4)=y2(i+l,2);
t(3+l*4)=y2(i+l,3);
t(4+l*4)=y2(i+l,4);
end
x2r(n)=bin2dec(t);
n=n+1;
end
x1m = (x2r-128)/128;
wavwrite(x1m,'result_16mpsk.wav');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -