文档详情

采样率转换的MATLAB程序实现

工****
实名认证
店铺
DOCX
122.37KB
约6页
文档ID:433277672
采样率转换的MATLAB程序实现_第1页
1/6

采样率转换的MATLAB程序实现一、原理概述随着数字信号处理技术的发展,信号处理系统中的处理、编码、传输和存储等工作量越 来越大为了节省计算工作量和存储空间,一个信号处理系统通常需要不同的抽样率并可在 相互之间转换抽取与内插是多抽样信号处理的基本操作,可以实现采样率的整数倍转换 两者结合还可以实现采样率的非整数倍转换,即先进行L倍的内插然后再进行M倍抽取, 就可实现采样率的L/M倍转换1.1 M抽取设原序列为x(n),采样率降低最简单的方法是将x(n),以速率M减采样,相当于每M 点中抽取一点,形成新的序列xl(n),即xM .±2M K工3「 直它-1 I77若x(n)为周期的,则经过M倍抽取后x1(n)周期为T1,则xl(n)与x(n)之间的频率关系 为:从序列尺度变换角度来看,x1(n)是x(n)的压缩(M倍),而x1(ej«)是x(ej«)的扩展(M 倍)若x(n)的频谱x(e_H的非零区间为n/M,x(ej«)在n/M〜n为零,采样率降低M倍不会 引起混叠;若x(ejs)不满足这一条件,降低采样率就会产生混叠为了利用采样率降低后无混叠的频谱部分,可以用理想低通滤波器对x(n)的频谱x(ejd) 进行抗混叠滤波,提取出带宽为n/M的所需信号。

再通过只保留滤波器输出第M个采样点(降低采样率),形成抽取序列 y(n)1.2 L倍内插提高序列采样率也称增采样,要使序列x(n)采样率提高整数L倍,最简单的方法是对.tx^n/L ) . ±L . ±.2Lf Ax(n)每相邻两点之间内插L-1个零值点得到w(n),即若x(n)的采样周期为T=1/fs,则采样提高L倍后w(n)的周期为T2,二者的关系为:T2=T/L 新的采样频率为: fs2=Lfsw(n)实际上是x(n)的尺度变换,w(n)是x(n)的扩展(L倍),W(ej«)应是X(ej«)的压缩(L 倍)为了滤除多余的L-1个镜像频谱,只提取基带信息,要让插值序列w(n)再经过一个理 想低通滤波器,得到频谱丫⑥巧低通滤波器应逼近理想低通滤波器特性,其增益A=L 1.3 L/M倍采样不论抽取还是插值,采样率的改变均为整数倍,若将两者结合起可以使采样率的改变为 非整数因子 L/M对给定的序列x(n)作采样率为L/M的变换,可以用级联的方法,既可以先做M倍抽取 再做L倍的插值,也可以先做L倍的插值再做M倍抽取由于减少x(n)的数据点,会产生 信息的损失,所以后一种方法更为合适在实际实现时,可以将两个低通滤波器合二为一, 此时输出序列的有效采样周期为T1=TM/L。

合理选择L与M,可以接近所要求的采样周期 比若M>L,采样周期增加,若MvL,采样周期减小内插与抽取共用滤波器的频响特性 为:L其他式中 6-2771J -2 77.'" 人低通的增益为L,截止频率取n/L与n/M之中的最小者若M>L,n/M是主截 止频率,采样率减小若x (n)的fs是奈奎斯特频率,y (n)是原带限信号经低通滤波器 后的信号反之若MVL,n/L是主截止频率,就不需要对低于奈奎斯特频率的信号进行 带宽限制二、实验内容编写MATLAB程序实现L内插、M抽取及采样率非整数倍L/M转换三、实验结果3.1 M抽取原始信号为:x(n)=cos(0.125*pi*n),实现5倍抽取原始信号及抽取后的结果时域波形 如图3-1 所示,频域如图3-2所示:0 5 10 15 20 25 3010.50-0.5-1t图 3-1 抽取前后时域波形图图 3-2 抽取前后频谱图结果分析:抽取时直接隔M个点保存原始信号的值即可,由频谱图可见实现了采样率 的降低3.2 L内插原始信号为:x(n)=cos(0.125*pi*n),实现5倍补零内插原始信号及内插后的结果时域 波形如图 3-3 所示,频域如图 3-4 所示051015202530t0.50-0.5-1t图 3-3 内插前后时域波形图图 3-4 内插前后频谱图结果分析:内插的方式有补零内插和拉格朗日内插两种,这里先使用补零内插,在进行 采样率非整数倍转换时采用的是拉格朗日内插。

从时域图上看出补零内插后的信号在原始信 号的时刻点上取值与源信号相同,其余时刻点上为零频谱图是使用fftshift转换关于中心 频点对称后的情况由以上的时频图可以看到,采样率实现了L倍提升3.3 L/M倍采样率转换原始信号为:x(n)=cos(0.125*pi*n),实现5/2倍采样率转换先进行5倍内插,内插采 用拉格朗日内插,然后再进行2倍抽取原始信号及内插、抽取后的结果时域波形如图3-5 所示,频域如图 3-6 所示:10510152025301-10-10510202530tz(t)15t0图 3-5 采样率转换时域波形图12010018060401-120I 1||10 10 20 30 40 50 60 70 80图 3-6 采样率转换前后频谱图结果分析:在进行 L/M 倍转换时,一定要先进行内插操作,然后再经行抽取因为内 插只是实现采用率的转换,并不能增加原始信息量若先抽取的话会减少信息量,再经行内 插并不能弥补对比前后频谱图可见实现了采样率的5/2 倍转换MATLAB源程序如下:1 内插%%内插,d倍close all;clear all;clc;N=100;n=0:1:N-1;x=cos(0.125*pi*n); subplot(2,1,1) stem(n,x);axis([-1,33,-1.1,1.1]); xlabel('t');title('x(t)');d=5;M=N*d;m=1:1:M;y = zeros(1,M);y(n*d+1) = x %完成内插零值t=0:1/d:N-1/d;subplot(2,1,2); stem(t,y);axis([-1,33,-1.1,1.1]);xlabel('t');title('y(t)'); %画插零后图,时域z1=fft(x);figure;plot(abs(fftshift(z1))); %原图,频域z2=fft(y); z12=fftshift(z2);a = zeros(1,N*d) % 理想滤波器a((d-1)*N/2:(d+1)*N/2)=d ;z22=a.*z12 figure;w=0:length(z2)-1;% plot(w/pi,abs(fftshift(z2))); - plot(w/pi,abs(z22)); %内插后频域图2 抽取%%抽取,d倍close all;clear all;clc;N=100;n=0:0.5:N-1;x=cos(0.125*pi*n); subplot(2,1,1) stem(n,x);axis([-1,33,-1.1,1.1]); xlabel('t');title('x(t)');d=5;% y=zeros(1,length(x));% for i=1:d:length(x);% y(i)=x(i); %采样值% endy=x(1:d:end) subplot(2,1,2) stem(y);axis([-1,33,-1.1,1.1]); xlabel('t');title('y(t)');zl=fft(x);%内插前频谱图 figure;plot(abs(fftshift(zl))); z2=fft(y);%内插后频谱图 figure;w=0:length(z2)-l;plot(w/pi,abs(fftshift(z2)));% plot(abs(fftshift(z2)))3 L/M 采样率转换%% d1/d2倍抽样率转换clear;N=100;n=0:1:N-1;x=cos(0.125*pi*n);subplot(3,1,1)stem(n,x);axis([-1,33,-1.1,1.1]); xlabel('t');title('x(t)');d1=5;y=interp(x,d1); t=0:1/d1:100-1/d1;subplot(3,1,2) stem(t,y); axis([-1,33,-1.1,1.1]); xlabel('t');title('y(t)'); d2=2;z=downsample(y,d2);subplot(3,1,3) stem(z);axis([-1,33,-1.1,1.1]); xlabel('t');title('z(t)');z1=fft(x);figure;plot(abs(fftshift(z1)));z2=fft(z);figure;w=0:length(z2)-1; plot(w/pi,abs(fftshift(z2)));。

下载提示
相似文档
正为您匹配相似的精品文档