⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpsk_coded.m

📁 16 mpsk vs qask comparison of two techniques in matlab code
💻 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 + -