您现在的位置:首页 >> 技术文章 >> MATLAB技术 >> 内容

MATLAB代做|FPGA代做|python代做-PCM源码程序

时间:2021-1-3 0:06:49 点击:

  核心提示:MATLAB代做|FPGA代做|python代做-PCM源码程序...
close all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO
%CURSO: TELECOMUNICAICONES II  SEMESTRE 2013-I
%ING. FRANCISCO SEGURA ALTAMIRANO
%LAMBAYEQUE 2013
%Simulacion de modulacion PCM con cuatizacion Uniforme de una se馻l con una
%frecuencias Fmax.
Fmax=100;   %Frecuencia de la Se馻l Analogica
Fs=2*Fmax;  %Frecuencia de muestreo
Ts=1/Fs;    %Periodo de muestreo
N=100;      %Numero de muestras
nb=5;       %Tama駉 de la palabra de la codificacion para cada muestra
L=2^nb-1      %Numero de niveles permitidos
x=randi(L,N,1); %Se genera las muestras aleatoria de la se馻l
xpcm=dec2bin(x)-48; %se codifica en binario natural
xpcm=xpcm(:); %se coloca la se馻l PCM en un vector
%Aca es necesario calcular la frecuencia de muestreo de la se馻l PCM
%resultante que esta relacionada con la Fs de la se馻l y el numero de bit y
%el numero de puntos que se usara para construir la representacion digital
%de la cadena PCM.
Np=20   %Cada pulso se conformara por 20 puntos.
Ts1=(Ts/nb)*(1/Np);
Fs1=1/Ts1;
%Con la informaci髇 de Fs1 y Ts1 y sabiendo el numero de muestras y la
%cantiadad de bits por muestra se realiza el barrido de tiempo
t=0:Ts1:N*nb*Np*Ts1-Ts1;
%Tambien para mostrar correctamente el espectro es necesario realizar el
%barrido de frecuencias necesarios asi
f=linspace(-Fs1/2,Fs1/2,length(t));
%Se usara codificacion NRZ para esta parte
pnrz=ones(1,Np);    %Pulso basico para transmision
%Realizamos la se馻lizacion 
senpcm=pnrz'*xpcm';
%conertimos a un vector
senpcm=senpcm(:);
%graficamos
subplot(321)
plot(t,senpcm)
title('Se馻l PCM en el tiempo')
%Podemos obtener mas informacion si  observamos esta se馻l en el dominio de
%la frecuecia
SENPCM=fft(senpcm)/length(senpcm);
%graficamos
subplot(322)
plot(f,fftshift(abs(SENPCM))/max(abs(SENPCM)))
title('Se馻l PCM en la frecuencia y filtro ideal')
%Segun nuestros calculos vtx=Fs*5=1000bps, entonces BWtx=vtx/2 (NRZ)
%BWtx=500Hz
hold on
fc_ideal=500;  %Frecuencia de corte ideal, Puede cambiarse para probar
H=(abs(f)<=fc_ideal);  %se construye un filtro ideal
plot(f,H,'r','linewidth',3);
legend(' PCM','Filtro Ideal')
SENPCM_FIL=fftshift(H').*(SENPCM);  %se realiaza el fitrado de la se馻l
subplot(323)
plot(f,fftshift(abs(SENPCM_FIL))/max(abs(SENPCM_FIL)));
title(' PCM filtrada en la frecuencia')
%Calculamos la transformada inversa y observamos la se馻l PCM
senpcm_fil=ifft(SENPCM_FIL)*length(SENPCM_FIL);
subplot(324)
plot(t,real(senpcm_fil))
title(' PCM filtrada en el tiempo')
hold on
plot(t,senpcm,'r','linewidth',2)
legend(' filtrada',' Original')
%Ahora consideraremos el caso mas real al usar un filtro RC con frecuencia
%de corte igual a la del ancho de banda de transmission calculado
fcorte=500;
Hrc=1./(1+j*f/fcorte);   %Funcion de transferencia del filtro
SENPCM_FILrc=fftshift(Hrc').*(SENPCM);
subplot(325)
plot(f,fftshift(abs(SENPCM_FILrc)));
title(' PCM filtrada con filtro RC')
senpcm_filrc=ifft(SENPCM_FILrc)*length(SENPCM_FILrc);
subplot(326)
plot(t,real(senpcm_filrc))
title(' PCM filtrada en el tiempo')
hold on
plot(t,senpcm,'r','linewidth',2)
legend(' filtrada',' Original')

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

Tags:PCM 
作者:PCM 来源:网络PCM
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做|python人工智能代做|FPGA项目合作|C代做|C++代做(www.hslogic.com) © 2021 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment