1、实验三 抽样实验三 抽样一、实验目的研究采样过程,分析产生混叠效应的原因,实现不同的重建方案。二、实验原理1、抽样引起的混叠由于在MATLAB中不能产生模拟信号,所以需要做实时轴的仿真。因此,把仿真时的与所研究的抽样周期明确区分开是很重要的。对连续时间正弦信号考虑下面的表示式: 可以按抽样频率对抽样来获得离散时间信号 2、抽样的频域视图 对连续时间信号抽样时,因为频域以抽样频率延拓,故其频谱显现出混叠效应。为了实际演示这一效应,需要使用示波器。在MATLAB中,只能仿真这一效应,而这正是本节的目的。 仿真包括抽样运算,接着做D/A转换(包括一个重建滤波器)。这个简单的系统由频率不同的信号驱动,
2、而且将这些输入和输出模拟信号的傅里叶变换进行比较。不同的实验涉及抽样和重建过程的各个部分。应该把他们结合成一个用以做完整仿真的M文件脚本。 为了仿真模拟信号,必须用非常高的频率至少是任何模拟信号所允许的最高频率的5倍。因此在这个问题中将会有两个“抽样率”,一个用于所研究的实际抽样中,另一个用于仿真连续时间信号。第二个问题是如何显示连续时间信号的傅里叶变换。同样,这也只能仿真实现。下面的M文件应该用来绘出模拟频谱。注意,在仿真的输入中有dt.function fmagplot(xa,dt)%FMAGPLOT% fmagplot(xa,dt)% xa:“ANALOG”signal% dt:the
3、sampling interval for the simulation of xa(t)L=length(xa);Nfft=round(2.round(log2(5*L);%-next power of 2Xa=fft(xa,Nfft);range=0:(Nfft/4);ff=range/Nfft/dt;plot(ff/1000,abs(Xa(1:length(range)title(CONT-TIME FOURIER TRANSFORMATION(MAG)xlabel(FREQUENCY(khz),gridend 3、产生信号 要演示混叠效应,需要一个简单的模拟输入信号通过系统。这里使用正
4、弦信号,但在用正弦信号完成仿真后,应尝试用一下其他信号。作为开始,必须选择“仿真抽样频率”,将其选定为。4、A/D转换 A/D转换器以间隔抽样。利用对抽样所得的样本子集来实现仿真。为避免不必要的复杂化,令与A/D转换器抽样率的比值取为整数。这样,向量每间隔个的样本都可以用来仿真A/D转换。5、设计一个重建滤波器 D/A环节由两部分组成:以抽样时间间隔分隔离散时间样本,在其之后是一个模拟重建滤波器。6、D/A转换 实际D/A转换步骤顺序为:从离散时间信号产生模拟信号,然后用Chebyshev滤波器进行滤波。MATLAB向量仿真的模拟信号是由在离散时间信号向量样本之间插入一些零值之后重建得到的。零
5、的个数取决于的比值。7、测试混叠把上面所有的步骤急集成为一个M文件脚本,然后可以进行测试。8、从样本重建信号 信号处理在很多其他问题中涉及从数字样本重建模拟信号。本节探讨各种可用于重建的方法。因为给定一组时间样本可对应有许多可能的模拟信号,模拟信号的选择取决于对重建特性所做的假设。 考虑下面情形:模拟信号的三个样本如下所示: 未给出其他信息。这些样本对应的是什么模拟信号是不固定的,取决于所做的假设和使用的重建方法。 例如,上面样本所对应的一种可能的模拟波形可通过这些样本点任意画一曲线,不需要说明在显示区间以外的曲线部分,而且可以另画出任何数量的曲线。 更具体的说,需要对假设和重建方法加以说明。
6、例如,这里看到的三个等间距的抽样,可以假设对从到所有可能的样本,只有这三个是非零点;另一方面,假设这三个样本是对从到所有可能的样本的子集,但是其他非零点的样本都不给出,只给出如图所示的三个抽样样本。 在选择重建方法时,或许选定拟合为一个多项式,或拟合为一个正弦波,或使用线性插值,或使用低通滤波器,或其他大量方法中的某一方法。三、实验内容1、正弦信号的混叠以不同组合的和绘出,可以说明混叠问题。以下,取抽样频率=8kHz。 a. 首先绘出一个被抽样的正弦波单图。令正弦波的频率为300Hz, 然后在10 ms长间隔上抽样。相位可以任意指定。使用stem绘出产生的离散时间信号。 b. 如果必要,使用p
7、lot绘图。 c. 把正弦波的频率从100 Hz变至475 Hz,每次增加125 Hz,如在(a)部分中那样,绘出一系列相应的图。注意,正如所预期的那样,显现的正弦信号的频率在逐渐增加。最好用subplot指令把四个图放在同一个屏上。 d. 把正弦波的频率从7525 Hz变至7900 Hz,每次增加125 Hz,如在(c)部分中那样,绘出一系列相应的图。注意现在显现的正弦信号的频率在逐渐减少。解释这一现象。 e. 把正弦波的频率从32,100 Hz变至32,475 Hz,每次增加125 Hz,绘出一系列相应的图。提前预测显现的正弦信号的频率是在逐渐增加还是减少。问题a、b:程序:%3.1.a.
8、绘出一个被抽样的正弦波f0=300; %正弦波的频率fs=8000; %抽样频率nn=0:79; %在10ms长间隔上抽样t=nn/fs; x=sin(2*pi*300*t); %产生离散时间信号subplot(211)stem(nn,x) %使用stem绘出产生的离散时间信号grid,title(sinus sample),xlabel(n),ylabel(x(n)subplot(212)plot(nn,x) %使用plot绘出产生的离散时间信号grid,title(sinus sample),xlabel(n),ylabel(x(n)结果:图3-1-a、b(上面的是由stem绘出的,下面的
9、是plot绘出的)结果分析:(1)由上图可见,使用stem绘出的图可以很容易看到正弦波的轮廓; (2)使用plot绘出的图可以实现由离散时间样本产生连续时间信号的“信号重建”,因此plot可也以作为信号重建的一种方法。问题c : 程序: %3.1.c.改变正弦波的频率f0从100Hz变至475Hz,每次增加125Hzf0=-25;for a=1:4 %采用for循环改变频率 f0=f0+125; %每次增加125Hz,%频率从100Hz变至475Hz fs=8000; %抽样频率 nn=0:79; %在10ms长间隔上抽样 t=nn/fs; x=sin(2*pi*f0*t); %产生离散时间信
10、号 subplot(4,1,a) stem(nn,x,.) grid,title(sinus sample),xlabel(n),ylabel(x(n) end 结果:图3-1-c结果分析:由上图可知,正如预期的一样,当正弦波的频率从100 Hz变至475 Hz时,显现的正弦波的频率在逐渐增加。问题d:程序:%3.1.d.改变正弦波的频率f0从7525Hz变至7900Hz,每次增加125Hzf0=7400;for a=1:4 %采用for循环改变频率 f0=f0+125; %每次增加125Hz,%频率从7525Hz变至7900Hz fs=8000; %抽样频率 nn=0:79; %在10ms长
11、间隔上抽样 t=nn/fs; x=sin(2*pi*f0*t); %产生离散时间信号 subplot(4,1,a) stem(nn,x,.) grid,title(sinus sample),xlabel(n),ylabel(x(n) end结果:图3-1-d结果分析:由上图可知,当正弦波的频率从7525 Hz变至7900 Hz时,抽样显现的正弦波的频率在逐渐减少。问题e: 程序: %3.1.e.改变正弦波的频率f0从32100Hz变至32475Hz,每次增加125Hzf0=31975;for a=1:4 %采用for循环改变频率 f0=f0+125; %每次增加125Hz,%频率从32100
12、Hz变至32475Hz fs=8000; %抽样频率 nn=0:79; %在10ms长间隔上抽样 t=nn/fs; x=sin(2*pi*f0*t); %产生离散时间信号 subplot(4,1,a) stem(nn,x,.) grid,title(sinus sample),xlabel(n),ylabel(x(n) end结果:图3-1-e 结果分析:由上图可知,当正弦波的频率从32,100 Hz变至32,475 Hz时,抽样显现的正弦波的频率在逐渐增加,与提前预测的结果相同。3、产生信号 a. 产生一个模拟频率为的余弦信号作为仿真的模拟信号。 随机选定相位。在长度为T的时间间隔上,以速率
13、产生抽样样本。选择仿真模拟信号长度T以取得大约900到1000个样本。 b. 用plot指令绘出时间信号以便将样本连接起来。用实际连续时间标记时间轴。 c. 绘出此信号的傅里叶变换(参见前面的fmagplot函数)。问题a: 程序: %3.3.a产生一个频率为f0的余弦信号作为仿真的模拟信号clfnn=0:999; %样本数量为1000f0=300; %余弦信号的频率fsim=80000; %仿真抽样频率t=nn/fsim; xa=cos(2*pi*f0*t); %产生余弦信号作为仿真的模拟信号 stem(nn,xa)grid,title(cosine sample),xlabel(n),yl
14、abel(xa) 结果:图3-3-a问题b: 程序: %3.3.b使用plot绘出产生的离散时间信号plot(nn/8000,xa) %将样本连接起来,并用实际连续时间标记时间轴 grid,title(cosine sample),xlabel(n),ylabel(xa) 结果:图3-3-b问题c: 程序: %3.3.c绘出此信号的傅里叶变换fmagplot(xa,0.0000125) 结果:图3-3-c4、A/D转换 a. 绘出=8 kHz时产生的离散时间信号。 b. 计算离散时间信号的DTFT并解释它如何与模拟信号的傅里叶变换相联系。问题a: 程序: %3.4.a 绘出fs=8KHz时产生
15、的离散时间信号L1=fsim/fs;y=xa(1:L1:1000); %产生离散时间信号L2=1000/L1; %离散时间信号的长度n1=0:L2-1;stem(n1,y)grid,title(AD),xlabel(n),ylabel(x(n) 结果:图3-4-a问题b: 程序: %3.4.b计算离散时间信号的DTFTH,W=dtft(y,1000);subplot(211)plot(W/2/pi,abs(H);grid,title(幅频响应),xlabel(NORMALIZED FREQUENCY),ylabel(|H(w)|)subplot(212)plot(W/2/pi,180/pi*a
16、ngle(H);grid,title(相频响应),xlabel(NORMALIZED FREQUENC),ylabel(DEGREES) 结果:图3-4-b5、设计一个重建滤波器 a. 显然必须以用数字滤波器仿真实际模拟滤波器的方式来实现重建滤波器。使用MATLAB滤波器设计的cheby2函数来设计这一滤波器: 这样设计出的滤波器将是一个阻带衰减60 dB的9阶滤波器。模拟的截止频率必须是。对MATLAB这一频率必须按比例变成 b. 使用freqz指令绘出所仿真的重建滤波器的频率响应。要得到它的实际模拟截止频率,必须记住它是数字滤波器,频率映射为。问题a: 程序:%3.5设计一个重建滤波器fs
17、amp=8000; fcut=2*(fsamp/2)/fsim; %截止频率b,a=cheby2(9,60,fcut); %设计阻带衰减60dB的9阶滤波器N=1000;HH,WW=freqz(b,a,N,whole); %使用freqz指令绘出所仿真的重建滤波器的频率响应mid=ceil(N/2)+1;WW(mid:N)=WW(mid:N)-2*pi;WW=fftshift(WW);HH=fftshift(HH);subplot(211),plot(WW/2/pi,abs(HH);grid,title(幅频响应),xlabel(NORMALIZED FREQUENCY),ylabel(|H(
18、w)|)subplot(212),plot(WW/2/pi,180/pi*angle(HH);grid,title(相频响应),xlabel(NORMALIZED FREQUENCY),ylabel(DEGREES)结果:图3-56、D/A转换 a. 在对实验3.3中产生的并在实验3.4中抽样的信号进行插零操作,然后应用Chebyshev重建滤波器以得到平滑的输出。 b. 绘出得到的连续时间输出信号及它的傅里叶变换。 程序: %3.6 D/A转换r=zeros(1,L2); %建立0序列,长度L2for i=0:L2-1 %每两个数之间补9个零 r(i*L1+1)=y(i+1); endr=r
19、,zeros(1,9); %序列最后补9个0xr=filter(b,a,r); %应用chebyshev重建滤波器得到平滑的输出xrclfn=0:999; figure(1)plot(n,xr)grid,xlabel(t),ylabel(xr(t)figure(2)fmagplot(xr,0.0000125) %得到xr的傅里叶变换图3-6-a图3-6-b7、测试混叠 a. 取抽样频率:并令输入信号的频率kHz。绘出输入和输出的傅里叶变换,把它们绘在一起进行比较。b. 现在实验几个不同的输入信号频率:kHz,7 kHz,9 kHz,10 kHz和15 kHz。由于只是100 kHz,所取输入频
20、率不应大于20kHz,绘出输入和输出的傅里叶变换,并作比较,注意何处开始混叠。c. 为了在同一张图上说明混叠效应,使用subplot指令把下面的四个信号、及插入零点后重建的模拟信号绘在一起。另一有意义的多子图是把、及他们的傅里叶变换一起显示。问题a、b:程序:function test(f0) %产生一个频率为f0的余弦信号作为仿真的模拟信号% f0;余弦信号的频率nn=0:999; %样本数量为1000fs=8000; %抽样频率8kHzfsim=100000; %仿真抽样频率100kHzt=nn/fsim; xa=cos(2*pi*f0*t); %产生余弦信号作为仿真的模拟信号 %绘出此信
21、号的傅里叶变换subplot(211)fmagplot(xa,0.00001) %注意横轴坐标是f,且单位是kHz%fs=8KHz时产生的离散时间信号L1=fix(fsim/fs); y=xa(1:L1:1000); %产生离散时间信号L2=fix(1000/L1); %离散时间信号的长度%D/A转换r=zeros(1,L2); %建立0序列,长度L2for i=0:L2-1 %每两个数之间补9个零 r(i*L1+1)=y(i+1); endr=r,zeros(1,9); %序列最后补9个0%重建滤波器fsamp=8000; fcut=2*(fsamp/2)/fsim; %截止频率b,a=cheby2(9,60,fcut); %设计阻带衰减60dB的9阶滤波器xr=filter(b,a,r); %应用chebyshev重建滤波器得到平滑的输出xrsubplot(212)fmagplot(xr,0.00001) %横轴坐标是f,且单位是kHz结果如下:f=2kHz时,图3-7-a 2khzf=6kHz时,图3-7-b 6khzf=7khz图3-7-b 7khzf=9khz图3-7-b 9khzf=10khz图3-7-b 10khzf=15khz图3-7-b 15khz问题c:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1