实验二时域采样与频域采样及MATLAB程序 下载本文

内容发布更新时间 : 2024/6/3 19:52:55星期一 下面是文章的全部内容请认真阅读。

实验二 时域采样与频域采样

一 实验目的

1 掌握时域连续信号经理想采样前后的频谱变化,加深对时域采样定理的理解 2 理解频率域采样定理,掌握频率域采样点数的选取原则 二 实验原理 1 时域采样定理

?(j?)对模拟信号xa(t)以T进行时域等间隔采样,形成的采样信号的频谱Xa会以采样角频率?s(?s?2?)为周期进行周期延拓,公式为: T1????a(t)]??Xa(j??jn?s) Xa(j?)?FT[xTn???利用计算机计算上式并不容易,下面导出另外一个公式。

?a(t)和模拟信号xa(t)之间的关系为: 理想采样信号x?a(t)?xa(t)??(t?nT) xn?????对上式进行傅里叶变换,得到:

?(j?)?Xa?[xa(t)??(t?nT)e??n????????j?tdt?n???????????xa(t)?(t?nT)e?j?tdt

在上式的积分号内只有当t?nT时,才有非零值,因此:

?(j?)?Xan????x(nT)ea???jn?T

上式中,在数值上xa(nT)?x(n),再将???T代入,得到:

?(j?)?Xan????x(n)ea???jn????T?X(ej?)???T

上式说明采样信号的傅里叶变换可用相应序列的傅里叶变换得到,只要将自变量

?用?T代替即可。 2 频域采样定理

对信号x(n)的频谱函数X(ej?)在[0,2?]上等间隔采样N点,得到

X(k)?X(ej?)??2?kN k?0,1,2,L,N?1

??则有: xN(n)?IDFT[X(k)]N?[i????x(n?iN)]RN(n)

即N点IDFT[X(k)]得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值序列, 因此,频率域采样要使时域不发生混叠,则频域采样点数N必须大于等于时域离散信号的长度M(即N?M)。在满足频率域采样定理的条件下,xN(n)就是原序列x(n)。如果

N?M,则xN(n)比原序列x(n)尾部多N?M个零点,反之,时域发生混叠,xN(n)与

x(n)不等。

对比时域采样定理与频域采样定理,可以得到这样的结论:两个定理具有对偶性,即“时域采样,频谱周期延拓;频域采样,时域信号周期延拓”。在数字信号处理中,都必须服从这二个定理。

三 实验内容 1 时域采样定理的验证

给定模拟信号xa(t)?Ae??tsin(?0t)u(t),式中,A=444.128,??502?,

?0?502?rad/s,其幅频特性曲线如下图示:

xa(t)的幅频特性曲线10.8|x(jf)|a0.60.40.20050100150200250f/Hz300350400450500

选取三种采样频率,即Fs?1kHz,300Hz,200Hz,对xa(t)进行理想采样,得到采

样序列:x(n)?xa(nT)?Ae??nTsin(?0nT)u(nT)。观测时间长度为Tp?64ms。分

别绘出三种采样频率得到的序列的幅频特性曲线图,并进行比较。 2 频域采样定理的验证

?n?1?给定信号:x(n)??27?n?0?0?n?1314?n?26,对x(n)的频谱函数X(ej?)在 others[0,2?]上分别等间隔采样16点和32点,得到X16(k)和X32(k),再分别对X16(k)和X32(k)进行IDFT,得到x16(n)和x32(n)。分别画出X(ej?)、X16(k)和X32(k)的幅度谱,并绘图显示x(n)、x16(n)和x32(n)的波形,进行对比和分析。 四 思考题

如果序列x(n)的长度为M,希望得到其频谱X(e)在[0,2?]上N点等间隔

j?采样,当N?M时,如何用一次最少点数的DFT得到该频谱采样? 五 实验报告及要求

1 编写程序,实现上述要求,打印要求显示的图形 2 分析比较实验结果,简述由实验得到的主要结论 3 简要回答思考题 4 附上程序清单和有关曲线

%时域采样

Tp=128/1000;%观测时间128ms Fs=1000; T=1/Fs; %采样频率1KHz M=Tp*Fs;%取样点数128点 n=0:M-1;t=n*T;

A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*t).*sin(omega*t);

Xk=T*fft(xnt,M); %M=128点FFT[xnt]

subplot(4,2,1); plot(n,xnt); xlabel('t');ylabel('xa(t)'); title('原信号波形'); k=0:M-1; wk=k/(Tp*Fs); %归一化处理

subplot(4,2,2);plot(wk,abs(Xk));title('T*FT[xa(nT)],Fs=1KHz幅频特性'); xlabel('w/\\pi');ylabel('幅度(H1(jf))'); Tp=64/1000;%观测时间64ms Fs=1000; T=1/Fs; %采样频率1KHz M=Tp*Fs;%取样点数64点 n=0:M-1;t=n*T;

A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*t).*sin(omega*t);

Xk=T*fft(xnt,M); %M=64点FFT[xnt]

subplot(4,2,3); stem(n,xnt,'.'); xlabel('n');ylabel('xa(nT)'); title('Fs=1KHz采样序列');

k=0:M-1; wk=k/(Tp*Fs);

subplot(4,2,4);plot(wk,abs(Xk));title('T*FT[xa(nT)],Fs=1KHz幅频特性'); xlabel('w/\\pi');ylabel('幅度(H1(jf))');

Fs=300;T=1/Fs; M=Tp*Fs;n=0:M-1;t=n*T;

A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*t).*sin(omega*t); Xk=T*fft(xnt,M);

subplot(4,2,5); stem(n,xnt,'.'); xlabel('n');ylabel('x2(n)'); title('Fs=300Hz采样序列');

k=0:M-1; wk=k/(Tp*Fs);

subplot(4,2,6);plot(wk,abs(Xk));title('T*FT[xa(nT)],Fs=300Hz幅频特性'); xlabel('w/\\pi');ylabel('(H2(jf))');

Fs=200;T=1/Fs; M=Tp*Fs;n=0:M-1;t=n*T;

A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*t).*sin(omega*t); Xk=T*fft(xnt,M);

subplot(4,2,7); stem(n,xnt,'.'); xlabel('n');ylabel('x3(n)'); title('Fs=200Hz采样序列');

k=0:M-1; wk=k/(Tp*Fs);

subplot(4,2,8);plot(wk,abs(Xk));title('T*FT[xa(nT)],Fs=200Hz幅频特性'); xlabel('w/\\pi');ylabel('(H3(jf))');

%频域采样

M=27;N=32;n=0:M;

xn=(n>=0&n<=13).*(n+1)+(n>=14&n<=26).*(27-n); %产生x(n)

Xk=fft(xn,1024); 24点FFT[x(n)] X32k=fft(xn,32); 2点FFT[x(n)]

x32n=ifft(X32k); 2点IFFT[X32(k)]得到x32(n)

X16k=X32k(1:2:N); %隔点抽取X32(k)得到X16(k) x16n=ifft(X16k,N/2); 点IFFT[X16(k)]得到x16(n) k=0:1023;

wk=2*k/1024; %连续频谱图的横坐标取值 subplot(3,2,1); plot(wk,abs(Xk)); title('FT[x(n)]');

xlabel('\\omega/\\pi');ylabel('|X(e^j^\\omega)|');axis([0,1,0,200]); subplot(3,2,2); stem(n,xn,'.'); title('三角波序列x(n)'); xlabel('n');ylabel('x(n)');axis([0,32,0,20])

k=0:N/2-1; %离散频谱图的横坐标取值 subplot(3,2,3);stem(k,abs(X16k),'.');title('16点频域采样'); xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200]) n1=0:N/2-1;

subplot(3,2,4);stem(n1,x16n,'.');title('16IDFT[X_1_6(k)]'); xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])

k=0:N-1; %离散频谱图的横坐标取值 subplot(3,2,5);stem(k,abs(X32k),'.');title('32点频域采样'); xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200]) n1=0:N-1;

subplot(3,2,6);stem(n1,x32n,'.');title('32IDFT[X_3_2(k)]'); xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20])