Sei sulla pagina 1di 29

TAREA #2 GENERACION DE SEALES PAM

NDICE

INTRODUCCION. ........................................................................................................... 1

OBJETIVOS .................................................................................................................... 2

MARCO TEORICO.......................................................................................................... 3 Modulacin de amplitud de pulso (PAM) ........................................................... 3 MATLAB ............................................................................................................ 6 Codigo Fuente del Programa ............................................................................ 6

COMO FUNCIONA EL PROGRAMA GUIDE ................................................................ 15

CONCLUSIONES.......................................................................................................... 26

BIBLIOGRAFIA ............................................................................................................. 27

ii

INTRODUCCIN.
La modulacin de seales es un concepto fundamental en comunicaciones, y consiste en usar una seal base para modificar las propiedades de una portadora. Este tipo de modulacin la cual codificada de seal

analgica - digital es

denominada PAM. La seal PAM es una seal de banda lateral doble de modo que se requiere dos veces el ancho de banda requerida para la transmisin banda base.

Esta manera de modulacin de la seal no es ms que recoger la seal analgica, la muestrea a su vez generando una serie de pulsos. Este ciclo es muy eficiente para transmisin de datos. Una de las caractersticas de la modulacin por codificacin de pulsos es esencialmente es que la amplitud de pulsos es cuantizada y representada por un patrn binario. En este documento se presenta el desarrollo de un programa en matlab para generar seales PAM, de funciones deterministicas y aleatorias como pude ser el audio compuesto por mltiples frecuencias. Adems como encontraremos en el cuerpo de

este documento, se utilizaran las seales deterministicas para enumerar cada una de las propiedades del muestreo y el teorema de Nyquist, para la recuperacin de una seal original en base a un conjunto de muestras capturado.

OBJETIVOS

Investigar la teora necesaria, para construir seales moduladas por amplitud de pulso.

Desarrollar un software en Matlab para la generacin de seales PAM. Investigar las terminologas de seales deterministicas y aleatorias, que son los tipos de seales que se van a procesar.

Analizar las grficas obtenidas y dar interpretacin de los resultados.

Respaldar lo aprendido en clases, sobre modulacin de amplitud de pulso, con el desarrollo realizado en este documento.

MARCO TERICO.

Modulacin de amplitud de pulso (PAM)

Es una de las modulaciones digitales. Esta tcnica recoge informacin analgica, (la muestra la prueba), y genera una serie de pulsos basados en los resultados de la prueba. El trmino prueba se refiere a la medida de la amplitud de la seal a intervalos iguales. El mtodo de prueba usado en PAM es ms eficaz en otras reas de ingeniera que en la comunicacin de datos (informtica). Aunque PAM est en la base de un importante mtodo de codificacin analgica - digital llamado modulacin de cdigo de pulso (PCM). En PAM, la seal original se muestrea a intervalos iguales, PAM usa una tcnica llamada probada y tomada. En un momento dado el nivel de la seal es ledo y retenido brevemente. El valor mostrado sucede solamente de modo instantneo a la forma actual de la onda, pero es generalizada por un periodo todava corto pero medible en el resultado de PAM. La modulacin por amplitud de pulso modifica una seal de banda base, al tomar un conjunto de muestras de una seal que contiene la informacin tal como se ve en las fig.1 y fig.2, en la cual la seal que se muestra en color rojo representa la seal mensaje y el tren de pulsos es la seal generadora de las muestras PAM.

Fig 1. Principio de la modulacin por amplitud de pulsos (PAM); (1) Seal original, (2) SealPAM, (a) Amplitud de la seal, (b) Tiempo

Fig 2. Primero Seales Deterministas

La idea bsica de la modulacin por pulsos se fundamenta en el concepto de que es posible recuperar completamente una seal analgica desde algunas muestras de ella. Esto sucede siempre y cuando la cantidad de muestras sea la suficiente para la cantidad de informacin que se desea recuperar. Estos conceptos se fundamentan en el Teorema del Muestreo de Nyquist que permite determinar la cantidad de muestras o velocidad de muestreo para cualquier seal que se pretenda recuperar. Transmitir muestras en lugar de seales analgicas completas nos lleva a una gran ventaja, la informacin est contenida en la amplitud del impulso sin que la duracin del impulso tenga importancia. Del prrafo anterior se desprende que la relacin seal / ruido tiende a mejorar debido a que, en trminos estadsticos, el ruido afectara menos al tren de pulsos que a la seal completa. Otra de las ventajas importantes de la transmisin de Impulsos, es que entre pulso y pulso de una misma seal analgica existe tiempo ocioso del canal de transmisin; esto indica que por un mismo canal fsico podrn enviarse varias seales diferentes. Recuperacin de una seal de las muestras tomadas de la original.

MATLAB
El objeto bsico usado en MATLAB es una matriz numrica con la posibilidad de almacenar nmeros complejos. Los datos encontrados en el estudio de seales y sistemas son siempre, muy bien representados en forma de matrices. En esta seccin se usar MATLAB para la generacin de seales elementales como lo son las seales exponenciales, sinodales, etc. En MATLAB una seal discreta en el tiempo se representa exactamente, porque los valores de la seal son representados como los elementos de un vector. Sin embargo las seales de tiempo continuo en MATLAB son tan solo aproximaciones. La aproximacin consiste de un vector cuyos elementos son muestras de la verdadera seal de tiempo continuo. Cuando se usa esta tcnica para la representacin de seales continuas es importante escoger el intervalo de muestreo lo suficientemente pequeo para asegurar que las muestras capturan todos los detalles de la seal.

Cdigo Fuente del Programa


El cdigo fuente de este programa se realizo utilizando la herramienta de interfaz grafica proporcionada por Matlab la cual se llama GUIDE. Esta herramienta nos genera un cdigo base el cual tiene que ver con la interfaz grafica de usuario. El cdigo que genera el procesamiento de las seales se va introduciendo en cada uno de los segmentos de funcin provistos por el programa base tal como se muestra en el siguiente cdigo que representa la totalidad del programa que genera todo el procesamiento de seales que se nos piden.

function varargout = buenoPAM(varargin) % BUENOPAM M-file for buenoPAM.fig % BUENOPAM, by itself, creates a new BUENOPAM or raises the existing % singleton*. % % H = BUENOPAM returns the handle to a new BUENOPAM or the handle to % the existing singleton*. % % BUENOPAM('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in BUENOPAM.M with the given input arguments. %

% BUENOPAM('Property','Value',...) creates a new BUENOPAM or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before buenoPAM_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to buenoPAM_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help buenoPAM % Last Modified by GUIDE v2.5 15-Sep-2011 11:52:17 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @buenoPAM_OpeningFcn, ... 'gui_OutputFcn', @buenoPAM_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before buenoPAM is made visible. function buenoPAM_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to buenoPAM (see VARARGIN) % Choose default command line output for buenoPAM handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes buenoPAM wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = buenoPAM_OutputFcn(hObject, eventdata, handles)

% % % %

varargout hObject eventdata handles

cell array for returning output args (see VARARGOUT); handle to figure reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% GRAFICO UNO %%%%%%%%%%%%%%%%%%%%%%%%%%

function intro1_Callback(hObject, eventdata, handles) % hObject handle to intro1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of intro1 as text % str2double(get(hObject,'String')) returns contents of intro1 as a double

% --- Executes during object creation, after setting all properties. function intro1_CreateFcn(hObject, eventdata, handles) % hObject handle to intro1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function intro2_Callback(hObject, eventdata, handles) % hObject handle to intro2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of intro2 as text % str2double(get(hObject,'String')) returns contents of intro2 as a double

% --- Executes during object creation, after setting all properties. function intro2_CreateFcn(hObject, eventdata, handles) % hObject handle to intro2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function intro3_Callback(hObject, eventdata, handles) % hObject handle to intro3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of intro3 as text % str2double(get(hObject,'String')) returns contents of intro3 as a double

% --- Executes during object creation, after setting all properties. function intro3_CreateFcn(hObject, eventdata, handles) % hObject handle to intro3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end %%%%%%%%%%%%%%%%%%%%%%%%% -HASTS AQUI LOS TRES INTRO Y EL PANEL %%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% - DE LA SENAL SENOIDAL- %%%%%%%%%%%%%%%%%%%%%

function intro5_Callback(hObject, eventdata, handles) % hObject handle to intro5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of intro5 as text % str2double(get(hObject,'String')) returns contents of intro5 as a double

% --- Executes during object creation, after setting all properties. function intro5_CreateFcn(hObject, eventdata, handles) % hObject handle to intro5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function intro4_Callback(hObject, eventdata, handles) % hObject handle to intro4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of intro4 as text % str2double(get(hObject,'String')) returns contents of intro4 as a double

% --- Executes during object creation, after setting all properties. function intro4_CreateFcn(hObject, eventdata, handles) % hObject handle to intro4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

%%%%%%%%%%%%%%%%%%%%%%%%% -HASTS AQUI LOS TRES INTRO Y EL PANEL %%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% - DE LA SENAL CUADRADA- %%%%%%%%%%%%%%%%%%%%%

% --- Executes when selected object is changed in uipanel3. function uipanel3_SelectionChangeFcn(hObject, eventdata, handles) if hObject == handles.radio1 valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor2=get(handles.intro2,'String'); ffs=str2num(valor2);% Convertir de char a num. valor3=get(handles.intro3,'String'); xmax=str2num(valor3);% Convertir de char a num. valor4=get(handles.intro4,'String'); N=str2num(valor4);% Convertir de char a num. % Grafica en la Opcin 1 t = (0:1/fs:N/fs); y = sin(2*pi*ffs*t); % esta es la Seal deterministica plot(handles.fig1,t,y,'linewidth',2); set(handles.fig1, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 xmax*(1/ffs)],'Ylim',[-1.5 1.5]); elseif hObject == handles.radio2

10

set(handles.salida,'String','tiempo [s]'); valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor5=get(handles.intro5,'String'); FP=str2num(valor5);% Convertir de char a num. valor3=get(handles.intro3,'String'); muestras=str2num(valor3);% Convertir de char a num. [x FS nbit]=wavread('bueno');

N=length(x) t = (0:1/fs:(N-1)/fs); plot(handles.fig1,t,x,'linewidth',2); set(handles.fig1, 'xgrid', 'on' , 'ygrid', 'on'); periodo=(fs/FP); a=[1 zeros(1,periodo) -1]; d=[1 zeros(1,N-1)]; tren=filter(1,a,d); tren=tren'; mul=x.*tren; %n = (0:(N-1)); stem(handles.fig2,t,mul,'g','linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 15],'Ylim',[-1 1]); sound(x,fs); pause(16); sound(mul,fs); y=fft(x,1024); a=abs(y)*2/512; f=fs*(1:512)/1024; db=20*log(a); %figure(1) %plot(f,db(1:512));title('Espectro de la Seal ORIGIANAL'),grid %xlabel('Frecuencia [Hz]');ylabel('Joule'); end %%%%%%%%%%%%%%%%%%%%%% -PARA EL PRIMER PAR DE RADIO BOTTONS- %%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% --- Executes when selected object is changed in uipanel4. function uipanel4_SelectionChangeFcn(hObject, eventdata, handles) if hObject == handles.radio3 set(handles.salida,'String','Muestra / Periodo'); valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor2=get(handles.intro2,'String'); ffs=str2num(valor2);% Convertir de char a num. valor3=get(handles.intro3,'String'); xmax=str2num(valor3);% Convertir de char a num. valor5=get(handles.intro5,'String'); FP=str2num(valor5);% Convertir de char a num.

11

valor4=get(handles.intro4,'String'); N=str2num(valor4);% Convertir de char a num. % Grafica de la senal y el pulso t = (0:(N-1)); y = sin(2*pi*ffs/fs*t); % esta es la Seal deterministica periodo=(fs/FP); a=[1 zeros(1,periodo) -1]; d=[1 zeros(1,N)]; tren=filter(1,a,d); n=1:(N+1); plot(handles.fig2,t,y,n,tren,'linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 xmax*(fs/ffs)],'Ylim',[-1.5 1.5]); sound(y,fs); elseif hObject == handles.radio4 set(handles.salida,'String','Frecuencia [Hz]'); valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor2=get(handles.intro2,'String'); ffs=str2num(valor2);% Convertir de char a num. valor4=get(handles.intro4,'String'); N=str2num(valor4);% Convertir de char a num. % Grafica del espectro de la senal t = (0:1/fs:N/fs); y = sin(2*pi*ffs*t); % esta es la Seal deterministica a=fft(y,1024); b=abs(a)/512; f1=fs*(1:512)/1024; plot(handles.fig2,f1,b(1:512),'g','linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 7000]); elseif hObject == handles.radio5 set(handles.salida,'String','Muestra / Periodo'); valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor2=get(handles.intro2,'String'); ffs=str2num(valor2);% Convertir de char a num. valor3=get(handles.intro3,'String'); xmax=str2num(valor3);% Convertir de char a num. valor5=get(handles.intro5,'String'); FP=str2num(valor5);% Convertir de char a num. valor4=get(handles.intro4,'String'); N=str2num(valor4);% Convertir de char a num. %Generacion de la Senal PAM t = (0:(N)); y = sin(2*pi*ffs/fs*t); % esta es la Seal deterministica periodo=(fs/FP); a=[1 zeros(1,periodo) -1]; d=[1 zeros(1,N)]; tren=filter(1,a,d); mul=y.*tren;

12

stem(handles.fig2,t,mul,'g','linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 xmax*(fs/ffs)],'Ylim',[-1.5 1.5]); sound(mul,fs); elseif hObject == handles.radio6 set(handles.salida,'String','Frecuencia [Hz]'); valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor2=get(handles.intro2,'String'); ffs=str2num(valor2);% Convertir de char a num. valor4=get(handles.intro4,'String'); N=str2num(valor4);% Convertir de char a num. valor5=get(handles.intro5,'String'); FP=str2num(valor5);% Convertir de char a num. t = (0:(N)); y = sin(2*pi*ffs/fs*t); % esta es la Seal deterministica periodo=(fs/FP); a=[1 zeros(1,periodo) -1]; d=[1 zeros(1,N)]; tren=filter(1,a,d); n=1:(N+1); mul=y.*tren; a=fft(mul,1024); b=abs(a)/512; f1=fs*(1:512)/1024; plot(handles.fig2,f1,b(1:512),'g','linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 7000]); end

% --- Executes on slider movement. function slider2_Callback(hObject, eventdata, handles) % hObject handle to slider2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider

% --- Executes during object creation, after setting all properties. function slider2_CreateFcn(hObject, eventdata, handles) % hObject handle to slider2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);

13

end

% --- Executes on slider movement. function deslis1_Callback(hObject, eventdata, handles) set(handles.salida,'String','tiempo [s]'); valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor5=get(handles.intro5,'String'); FP=str2num(valor5);% Convertir de char a num. valor3=get(handles.intro3,'String'); muestras=str2num(valor3);% Convertir de char a num. [x FS nbit]=wavread('bueno'); v=get(handles.deslis1,'Value') N=length(x) t = (0:1/fs:(N-1)/fs); plot(handles.fig1,t,x,'linewidth',2); set(handles.fig1, 'xgrid', 'on' , 'ygrid', 'on'); periodo=(fs/FP); a=[1 zeros(1,periodo) -1]; d=[1 zeros(1,N-1)]; tren=filter(1,a,d); tren=tren'; mul=x.*tren; %n = (0:(N-1)); stem(handles.fig2,t,mul,'g','linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[v (16.01v)],'Ylim',[-1 1]);

% --- Executes during object creation, after setting all properties. function deslis1_CreateFcn(hObject, eventdata, handles) % hObject handle to deslis1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end

% --- Executes when selected object is changed in uipanel5. function uipanel5_SelectionChangeFcn(hObject, eventdata, handles) if hObject == handles.radio7 set(handles.salida,'String','Frecuencia [Hz]'); valor1=get(handles.intro1,'String');

14

fs=str2num(valor1);% Convertir de char a num. valor5=get(handles.intro5,'String'); FP=str2num(valor5);% Convertir de char a num. [x FS nbit]=wavread('bueno'); y=fft(x,1024); a=abs(y); f=fs*(1:512)/1024; db=20*log(a); plot(handles.fig2,f,a(1:512),'g','linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 fs/2]); elseif hObject == handles.radio8 set(handles.salida,'String','Frecuencia [Hz]'); valor1=get(handles.intro1,'String'); fs=str2num(valor1);% Convertir de char a num. valor2=get(handles.intro2,'String'); ffs=str2num(valor2);% Convertir de char a num. valor5=get(handles.intro5,'String'); FP=str2num(valor5);% Convertir de char a num. [x FS nbit]=wavread('bueno'); N=length(x) periodo=(fs/FP); a=[1 zeros(1,periodo) -1]; d=[1 zeros(1,N-1)]; tren=filter(1,a,d); length(tren) x=x'; mul=x.*tren; a=fft(mul,1024); b=abs(a); f1=fs*(1:512)/1024; plot(handles.fig2,f1,b(1:512),'g','linewidth',2); set(handles.fig2, 'xgrid', 'on' , 'ygrid', 'on','Xlim',[0 fs/2]);

end

COMO FUNCIONA EL PROGRAMA GUIDE


Tal como dijimos en la seccin anterior el cdigo fuente presentado genera una interfaz grafica, que grafica cualquier seal deterministica y una seal aleatoria especifica nica, de acuerdo a un archivo de audio grabado, que contiene el mensaje Esta es la tarea de Comunicaciones. La interfaz grafica es la que se presenta a continuacin.

15

Parmetros la seal deterministica: Este conjunto de datos a introducir, representan las caractersticas de la seal a graficar, en cuanto a la velocidad de la seal la resolucin de esta y los periodos que queremos desplegar en cada uno de los graficadores. Fs: Es la frecuencia de muestreo para formar la seal analoga, que entre ms grande mejor se aproxima a las caractersticas de la seal requerida. F : Es la frecuencia de la seal mensaje, que en este caso ser una deterministica. El ultimo campo solo nos dice cuantos veces queremos repetir la seal peridica a graficar, que solo acta para la seal deterministica.

Este par de campos actan tanto para la seal muestreadora que es un tren de impulsos como par la seal deterministica tal como se detalla para cada uno de ellos:

16

P: Es el nmero de puntos que queremos tomar de la seal deterministica para mostrar en los graficadores, de tal manera que si la Fs es igual que P se estar graficando para un segundo de tiempo. Este parmetro acta tanto para la seal del tren de pulsos como para la seal deterministica. F: Es la frecuencia de la seal muestreadora, de tal manera que si esta frecuencia coincide con la del mensaje el programa estar tomando una muestra de la seal que contiene la informacin. Que para nuestro caso funge como la frecuencia de muestreo para la generacin de muestras PAM.

Los Group Botton no necesitan descripcin alguna pues se detalla en la interfaz grafica de usuario, y cualquier persona con el conocimiento mnimo de procesamiento de seales conocer su funcionamiento con solo observar la GUIDE.

ZOOM: este acta solo para la seal aleatoria, el cual proporciona una acercamiento a un grupo de muestras identificado.

Para un optimo funcionamiento en este caso se desarrollaron las seales PAM solo utilizando seales deterministicas cosenoidales.

La versin de Matlab con la que trabaja este cdigo es la 7.10 (R2010a), se recomiendo no usar otra versin distinta para conservar los resultados expuestos en este documento.

17

GENERACIN DE SEALES PAM.

Para el desarrollo de generacin de seales PAM se trabajara sobre un periodo de la seal mensaje, y una frecuencia de muestreo alta para mejorar la cercana a una seal continua construida, que difiere de la frecuencia de muestreo de captura de datos generada con el tren de impulsos. Cumpliendo lo pedido con el perfil de la tarea, construimos una seal con las siguientes caractersticas: Seal de 300 Hz Fm = 300 Hz F(pulso) = 900Hz Fs = 44100 Hz ; que ser la frecuencia de muestreo. ; esta es la frecuencia de muestreo pero para dibujar las graficas.

El resultado es lo siguiente:

Se muestra la seal mensaje, y la seal mensaje con la funcin muestreadora.

18

Tal como se esperaba el espectro de la seal original esta en los 300 Hz.

En esta grafica se presentan las tres muestras, con una de ellas de cero, por el hecho que la seal mensaje pasa por cero en el momento de tomar la muestra. Tomando en cuenta que estamos muestreando al triple de la frecuencia de seal mensaje.

19

Para una Seal de 1000 Hz Fm = 1000 Hz F(pulso) = 3000Hz Fs = 100900 Hz graficas. ; que ser la frecuencia de muestreo. ; esta es la frecuencia de muestreo pero para dibujar las

El resultado es lo siguiente:

Se muestra la seal mensaje, y la seal mensaje con la funcin muestreadora. Hay que considerar que para todos los casos estaremos tomando 3 muestras de la seal mensaje lo cual equivale a tener una frecuencia de muestreo del tren de impulsos del triple de la seal deterministica cosenoidal.

20

Tal como se esperaba el espectro de la seal original esta en los 1000 Hz.

En esta grafica se presentan las tres muestras, con una de ellas de cero, por el hecho que la seal mensaje pasa por cero en el momento de tomar la muestra. Tomando en cuenta que estamos muestreando al triple de la frecuencia de seal mensaje.

21

Para una Seal de 5000 Hz Fm = 1000 Hz F(pulso) = 50000Hz Fs = 100900 Hz graficas. ; que ser la frecuencia de muestreo.

; esta es la frecuencia de muestreo pero para dibujar las

El resultado es lo siguiente:

Se muestra la seal mensaje, y la seal mensaje con la funcin muestreadora. De la grafica que muestra la seal mensaje superpuesta al tren muestreador, se puede observar que las muestras son tomadas con una de ellas siendo cero, esto se debe a que cuando el pulso aparece la seal mensaje pasa por cero.

22

Tal como se esperaba el espectro de la seal original esta en los 5000 Hz.

Prcticamente sigue siendo la misma representacin anterior, por el simple hecho de estar utilizando la misma frecuencia de muestreo.

23

Y como se puede observar el espectro de la seal PAM se mantiene como en la seal original, cuando te muestrea a una frecuencia mayor al doble de la frecuencia de la seal mensaje.

Despus de haber analizado una seal tan bsica como una senoidal peridica, al transformar una seal de audio compuesta, a una seal pan se obtiene el siguiente resultado.

24

Haciendo un acercamiento a la seal muestreada, esto es lo que se observa:

La cual representa un conjunto de muestras espaciadas en el tiempo que es el objetivo del muestreo PAM.

La grafica anterior nos muestra que el ancho de banda de la seal es de aproximadamente 5kHz.
25

CONCLUSIONES
Al finalizar este informe se pudo comprobar la modulacin por pulsos PAM, se observo que los valores de la modulacin PAM eran exactamente proporcional a los valores de la seal de informacin, tambin su valor tomado con el espectrmetro, esto se debe bsicamente a que al hacer el muestreo, gracias a la seal de pulsos incorporada, mantena sus valores, solamente, como su nombre lo indica sacaba muestras a la seal de informacin y lo transportaba o modulaba a la seal PAM final. De lo que se pudo comprobar con el desarrollo de este proyecto es que despus de efectuado el muestre, una seal se puede recuperar siempre y cuando esta se haya obtenido con una frecuencia de muestreo del doble de la seal mensaje por lo menos, de lo contrario si esta es menor existe un solapamiento de espectros de frecuencias producidas por la modulacin, y la seal original contiene otras frecuencias diferentes a la de la seal original y por lo tanto no es posible filtrar la seal para recuperarla.

26

BIBLIOGRAFA
Wikipedia.org Seales y Sistemas segunda edicin, Oppenheim Sistemas de comunicaciones cuarta edicin, Bruce Carlson

27

Potrebbero piacerti anche