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

📄 ejemplo2.m

📁 QPSK modulation in matlab
💻 M
字号:
clc
clear all;
close all;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% LECTURA DE ARCHIVO DE AUDIO

y = wavread('D:\El韁Wav\kamel1.wav',20000); % EN "y" SE GUARDA EL ARCHIVO .WAV 
y1=(y*4)+4;                                 % SE AUMENTA LA AMPLITUD CUATRO VECES


a=length(y1);                               % EN "a" SE GUARDA LA LONGITUD DEL VECTOR 
                                            % QUE CONTIENE EL ARCHIVO LEIDO

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CONVERSI覰 ANAL覩ICO-DIGITAL

j=a*3;
vectorsote=zeros (1,j);                 % SE GENERA UN NUEVO VECTOR, INICIALIZADO EN CEROS
                                        % Y DE 3 VECES LA LONGITUD DE "y1",
                                        % DADO QUE SE USARA UNA CONVERSION
                                        % DE ANALOGICO-DIGITAL DE 3 BITS
                                        
for b=1:a;                              
    
  
    if (y1(b)>=0)&&(y1(b)<=0.5);
        y2(b)=0;
        temp=[0 0 0];
    elseif (y1(b)>0.5)&&(y1(b)<=1.5);
        y2(b)=1;
        temp=[0 0 1];
        elseif (y1(b)>1.5)&&(y1(b)<=2.5);
            y2(b)=2;
            temp=[0 1 0];
            elseif (y1(b)>2.5)&&(y1(b)<=3.5);
                y2(b)=3;
                temp=[0 1 1];
                elseif (y1(b)>3.5)&&(y1(b)<=4.5);
                    y2(b)=4;
                    temp=[1 0 0];
                    elseif (y1(b)>4.5)&&(y1(b)<=5.5);
                       y2(b)=5;
                       temp=[1 0 1];
                        elseif (y1(b)>5.5)&&(y1(b)<=6.5);
                            y2(b)=6;
                            temp=[1 1 0];
                            elseif (y1(b)>6.5)&&(y1(b)<=7.5);
                                y2(b)=7;
                                temp=[1 1 1];
    else (y1(b)>7.5)&&(y1(b)<=8);
        y2(b)=7;
        temp=[1 1 1];
    end
                                                        
    k=(b-1)*3;
    temporal=[zeros(1,k), temp, zeros(1,j-(3*b))];      
    vectorsote=vectorsote+temporal;                     %AQUI SE LLENA EL
                                                        %VECTOR QUE
                                                        %CONTIENE LA CADENA
                                                        %DE BITS
end



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MODULACI覰

M=2;
c=dpskmod(vectorsote,M,pi/4);
t=1:j;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SE袮L DE RUIDO

%y22= wavread('D:\El韁Wav\Whitenoisesound.wav',j);
y23=randn(1,j);                                     %SE GENERA UNA SE袮L 
yy=y23/1;                                           %CON NUMEROS ALEATORIOS

for l=1:j;                                          % SE CONVIERTE LA MATRIZ        
    yyy(l)=yy(l);                                   % DE UNA COLUMNA Y MUCHOS 
end                                                 % RENGLONES A UNA MATRIZ DE 
                                                    % UN RENGLON Y MUCHAS
                                                    % COLUMNAS

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SUMA DE RUIDO A SE袮L MODULADA

y3=c+yyy;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DEMODULACI覰

g=dpskdemod(y3,M,pi/4);        



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CONVERSION DIGITAL-ANALOGICO

vectorsito=zeros(1,a);                  % SE GENERA UN NUEVO VECTOR, INICIALIZADO EN CEROS
                                        
u=-2;
v=0;
for n=1:a;
    reduccion=zeros(1,3);
    u=u+3;
    v=v+3;
    for s=u:v;
        temp2=[zeros(1,(s-u)), g(s), zeros(1,(v-s))];
        reduccion=reduccion+temp2;
    end
    
    if (reduccion==[0 0 0]);
        o=0;
    elseif (reduccion==[0 0 1]);
        o=1;
         elseif (reduccion==[0 1 0]);
        o=2;
         elseif (reduccion==[0 1 1]);
        o=3;
         elseif (reduccion==[1 0 0]);
        o=4;
         elseif (reduccion==[1 0 1]);
        o=5;
         elseif (reduccion==[1 1 0]);
        o=6;
    else (reduccion==[1 1 1]);
        o=7;
    end
    
    p=j/3;
    q=n-1;
    r=a-n;
    tmp=[zeros(1,q),o,zeros(1,r)];
    vectorsito=vectorsito+tmp;                          %AQUI SE LLENA EL
                                                        %VECTOR QUE
                                                        %CONTIENE LA SE袮L 
                                                        %RECUPERADA
end

audio=(vectorsito-4)/4;                                 % SE LE QUITA EL NIVEL DE DC
                                                        % Y SE LE QUITA LA
                                                        % GANANCIA QUE SE
                                                        % LE DIO A LA SE袮L
                                                        % INICIAL, "y1"
Fs=8000;
wavplay(y,Fs)                                           % SE REPRODUCE LA SE袮L ORIGINAL
                                                        
wavplay(audio,Fs)                                       % SE REPRODUCE LA SE袮L RECUPERADA
                                                        

% G R A F I C A S


plot(y1);        %ARCHIVO DE AUDIO
title ('se馻l audio')
axis([500 1000 0 8])

figure    
plot(y2)
title('se馻l muestreada')
axis([500 1000 -0.5 8.5])

figure    
stairs(vectorsote)
title('se馻l cuantificada')
axis([25000 25200 -0.5 1.5])

figure    
plot(t,c)
title('se馻l modulada')
axis([25000 25200 -1.5 1.5])

figure
stairs(g)
title('se馻l demodulada')
axis([25000 25200 -0.5 1.5])

figure
plot(c)










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -