figure(3)
subplot(2,1,1); stem(t2,m2);
xlabel('时间');ylabel('幅值');title('抽样失真(fs=100Hz)时的信号波形'); axis([-0.15,0.15,0,1]);subplot(2,1,2) plot(f2,abs(fftshift(N2)));
xlabel('频率');ylabel('幅值');axis([-500,500,0,0.02]);
title('抽样失真时的信号频谱');axis([-500,500,0.005,0.02]); function [M,m,df]=fft_seq(m,ts,df) fs=1/ts;
if nargin==2 n1=0 else
n1=fs/df end
n2=length(m);n=2^(max(nextpow2(n1),nextpow2(n2))); M=fft(m,n);m=[m,zeros(1,n-n2)];df=fs/n PCM抽样仿真结果:
原始信号(fh=200/2piHz)的波形1.51幅值0.50-0.1-0.0500.05时间原始信号的频谱0.10.150.030.02幅值0.010-500-400-300-200-1000频率100200300400500
图4.1 PCM模拟输入信号波形及频谱
抽样正常(fs=200Hz)时的信号波形1幅值0.50-0.1-0.0500.05时间抽样正常时的信号频谱0.10.150.030.02幅值0.010-0.01-500-400-300-200-1000频率100200300400500
图4.2 PCM正常抽样时信号的波形及频谱
抽样失真(fs=100Hz)时的信号波形1幅值0.50-0.1-0.0500.05时间抽样失真时的信号频谱0.10.150.020.015幅值0.010.005-500-400-300-200-1000频率100200300400500
图4.3 PCM抽样失真时信号的波形及频谱
4.2 PCM量化的MATLAB实现
4.2.1 PCM均匀量化的MATLAB实现
PCM均匀量化的MATLAB程序设计按如下步骤进行: (1)确定输入模拟信号为sin(t);
(2)根据均匀量化的原理均匀量化的算法程序; (3)绘制并比较模拟输入信号与量化输出的波形。
PCM抽样的MATLAB实现源程序如下:
function average() t=[0:0.01:4*pi]; y=sin(t);
w=jylh(y,1,64); subplot(2,1,1); plot(t,y);
xlabel('时间'); ylabel('幅度');
axis([0,4*pi,-1.1,1.1]); title('原始信号'); subplot(2,1,2); plot(t,w); xlabel('时间'); ylabel('幅度');
axis([0,4*pi,-1.1,1.1]); title('均匀量化后的信号'); function h=jylh(f,V,L) n=length(f);t=2*V/L; p=zeros(1,L+1);
for i=1:L+1,p(i)=-V+(i-1)*t;end for i=1:n
if f(i)>V,h(i)=V;end if f(i)<=-V,h(i)=-V;end flag=0;
for j=2:L/2+1 if(flag==0)
if(f(i)
flag=1; end; end; end;
for j=L/2+2:L+1 if(flag==0)
if(f(i)
nq=V^2/(3*L^2); 仿真结果:
原始信号10.5幅度0-0.5-102468时间均匀量化后的信号101210.5幅度0-0.5-10246时间81012
图4.4 PCM均匀量化波形
4.2.2 PCM A律非均匀量化的MATLAB实现
PCM A律非均匀量化的MATLAB程序设计按如下步骤进行: (1)确定输入模拟信号;
(2)根据非均匀量化的原理确定A律非均匀量化的算法程序;
相关推荐: