matlab 采用sinc函数内插重构,数字信号处理实验作业.doc

41528d3028836879cd698677c3999917.gif数字信号处理实验作业.doc

实验 5 抽样定理 一、实验目的: 1、了解用 MATLAB 语言进行时域、频域抽样及信号重建的方法。 2、进一步加深对时域、频域抽样定理的基本原理的理解。 3、观察信号抽样与恢复的图形,掌握采样频率的确定方法和内插公式的编程方法。 二、实验原理: 1、时域抽样与信号的重建 (1)对连续信号进行采样 例 5-1 已知一个连续时间信号 ,取最高有 sin sin( ), 1Hz 3    0 0 0 1 f(t)= (2 f t)+ 6 f t f 限带宽频率 f m =5f 0 ,分别显示原连续时间信号波形和 F s >2f m 、F s =2f m 、F s 2f m 、F s =2f m 、F s <2f m )下的 抽样信号的幅度谱。 程序清单如下: dt=0.1;f0=1;T0=1/f0;fm=5*f0;Tm=1/fm; t=-2:dt:2;N=length(t); f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); wm=2*pi*fm;k=0:N-1;w1=k*wm/N; F1=f*exp(-j*t *w1)*dt;subplot(4,1,1);plot(w1/(2*pi),abs(F1)); axis([0,max(4*fm),1.1*min(abs(F1)),1.1*max(abs(F1))]); for i=1:3;if i<=2 c=0;else c=1;endfs=(i+c)*fm;Ts=1/fs;n=-2:Ts:2;N=length(n);f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n);wm=2*pi*fs;k=0:N-1;w=k*wm/N;F=f*exp(-j*n *w)*Ts;subplot(4,1,i+1);plot(w/(2*pi),abs(F));axis([0,max(4*fm),1.1*min(abs(F)),1.1*max(abs(F))]); end 程序运行结果如图 5-2 所示。 由图可见,当满足 F s ≥2f m 条件时,抽样信号的频谱没有混叠现象;当不满足 F s ≥2f m 条件时,抽样信号的频谱发生了混叠,即图 5-2 的第二行 F s <2f m 的频谱图, ,在 f m =5f 0 的 范围内,频谱出现了镜像对称的部分。0 2 4 6 8 10 12 14 16 18 20 0.5 1 1.5 2 0 2 4 6 8 10 12 14 16 18 20 0.5 1 1.5 2 0 2 4 6 8 10 12 14 16 18 20 0.5 1 1.5 2 0 2 4 6 8 10 12 14 16 18 20 0.5 1 1.5 2 图 5-2 (3)由内插公式重建信号 信号重建一般采用两种方法:一是用时域信号与理想滤波器系统的单位冲激响应进行 卷积积分;二是用低通滤波器对信号进行滤波。本实验只讨论第一种方法。 由理论分析可知,理想低通滤波器的单位冲激响应为 jΩt πt sin( ) 1 T h(t)= H(jΩ)e dΩ= πt 2π T     抽样信号 通过滤波器输出,其结果应为 与 h(t)的卷积积分: a ˆ x (t) a ˆ x (t) sin[ ( ) / ] ˆ ˆ ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) / a a a a a n t nT T y t x t x t h t x h t d x nT t nT T                       该式称为内插公式。由式可见,x a (t)信号可以由其抽样值 x a (nT)及内插函数重构。 MATLAB 中提供了 sinc 函数,可以很方便地使用内插公式。 例 5-3 用上面推导出的内插公式重建例 5-1 给定的信号。 程序清单如下: dt=0.01;f0=1;T0=1/f0;fm=5*f0;Tm=1/fm; t=0:dt:3*T0;x=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); subplot(4,1,1);plot(t,x);axis([min(t),max(t),1.1*min(x),1.1*max(x)]); title( 用时域卷积重建抽样信号 ); for i=1:3;fs=i*fm;Ts=1/fs;n=0:(3*T0)/Ts;t1=0:Ts:3*T0;x1=sin(2*pi*f0*n/fs)+1/3*sin(6*pi*f0*n/fs); T_N=ones(length(n),1)*t1-n *Ts*ones(1,length(t1));xa=x1*sinc(fs*pi*T_N);subplot(4,1,i+1);plot(t1,xa);axis([min(t1),max(t1),1.1*min(xa),1.1*max(xa)]); end 程序运行结果如图 5-3 所示: 0 0.5 1 1.5 2 2.5 3 -1 0 1 信 信 信 信 信 信 信 信 信 信 信 0 0.5 1 1.5 2 2.5 3 -0.5 0 0.5 0 0.5 1 1.5 2 2.5 3 -0.5 0 0.5 0 0.5 1 1.5 2 2.5 3 -0.5 0 0.5 图 5-3 2、频域抽样与信号恢复 (1)频域抽样定理 从理论学习可知,在单位圆上对任意序列的 Z 变换等间隔采样 N 点得到:k=0,1,…,N-1 2π j k N 2π j nk N z=e n=- X(k)=X (z) = x(n)e    该式实现了序列在频域的抽样。 那么由频域的抽样得到的频谱的序列能否不失真地恢复原时域信号呢? 由理论学习又知,频域抽样定理由下列公式表述: r=- x(n)= x(n+rN)     表明对一个频谱采样后经 IDFT 生成的周期序列 是原非周期序列 x(n) 的周期延拓序列, x(n)  其时域周期等于频域抽样点数 N 。 假定有限长序列 x(n)的长度为 M ,频域抽样点数为 N ,原时域信号不失真地由频域抽 样恢复的条件如下: ① 如果 x(n)不是有限长序列,则必然造成混叠现象,产生误差; ② 如果 x(n)是有限长序列,且频域抽样点数 N 小于序列长度 M(即 N

你可能感兴趣的:(matlab,采用sinc函数内插重构)