实验三 时域采样与频域采样 下载本文

内容发布更新时间 : 2024/5/19 2:34:38星期一 下面是文章的全部内容请认真阅读。

实验三程序代码及实验结果图:

(1)时域采样理论的验证。给定模拟信号,???? ?? =?????????sin Ω0?? ??(??),现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。按照???? ?? 的幅频特性曲线,选取三种采样频率,即????=1kHz,300Hz,200Hz。观测时间选????=50????。要求:编写实验程序,计算??1 ?? 、??2 ?? 和??3 ?? 的幅度特性,并绘图显示,观察分析频谱混叠失真。实验程序代码及结果如下:

Tp=64/1000; %观察时间Tp=64ms Fs=1000; %采样率1khz T=1/Fs; %采样间隔 M=Tp*Fs; ?t给定点数 n=0:M-1; %序列从0开始,至少要达到fft的点数

%产生模拟信号对应的离散序列x1(n) A=444.128; alph=pi*50*2^0.5; omega=pi*50*2^0.5;

xnt=A*exp(-alph*n*T).*sin(omega*n*T);%无需乘u(t),因为序列从0开始 Xk=T*fft(xnt,M); %频谱函数

n1 =0: (length(xnt)-1); %求出序列长度 n2 =0: (length(Xk)-1); subplot(3,2,1); %位置为左上 stem(n1,xnt); %时域波形 title('时域1000hz采样波形'); %标题 fk=n2/Tp; %求出频率 subplot(3,2,2); %位置为右上 stem(fk,abs(Xk)); %幅频特性曲线 title('频域1000hz采样'); %标题

%-----------300hz------------- Tp=64/300; %观察时间Tp=64ms Fs=300; %采样率300hz T=1/Fs; %采样间隔 M=Tp*Fs; ?t给定点数 n=0:M-1; %序列从0开始,至少要达到fft的点数

%产生模拟信号对应的离散序列x1(n) A=444.128;

alph=pi*50*2^0.5; omega=pi*50*2^0.5;

xnt=A*exp(-alph*n*T).*sin(omega*n*T);%无需乘u(t),因为序列从0开始 Xk=T*fft(xnt,M); %频谱函数

n1 =0: (length(xnt)-1); %求出序列长度

n2 =0: (length(Xk)-1); subplot(3,2,3); %位置为左中 stem(n1,xnt); %时域波形 title('时域300hz采样'); 标题

fk=n2/Tp; %求出频率 subplot(3,2,4); %位置为右中 stem(fk,abs(Xk)); %幅频特性曲线 title('频域300hz采样'); 标题

%-----------200hz------------- Tp=64/200; %观察时间Tp=64ms Fs=200; %采样率200hz T=1/Fs; %采样间隔 M=Tp*Fs; ?t给定点数 n=0:M-1; %序列从0开始,至少要达到fft的点数

%产生模拟信号对应的离散序列x1(n) A=444.128;

alph=pi*50*2^0.5; omega=pi*50*2^0.5;

xnt=A*exp(-alph*n*T).*sin(omega*n*T);%无需乘u(t),因为序列从0开始 Xk=T*fft(xnt,M); %频谱函数 n1 =0: (length(xnt)-1); %求出序列长度 n2 =0: (length(Xk)-1); subplot(3,2,5);

stem(n1,xnt); %时域波形 title('时域200hz采样');

fk=n2/Tp; subplot(3,2,6); %位置在右下 stem(fk,abs(Xk)); %幅频特性曲线 title('频域200hz采样'); %标题

(2)频域采样理论的验证。 给定信号如下:

?n?10?n?13?x(n)??27?n14?n?26

?0其它?编写程序分别对频谱函数X ?????? =????[?? ?? ]在区间[0,2??]上等间隔采样32和16点。分

别画出??32 ?? 、??16(??)和X ?????? 的幅度谱,并绘图显示?? ?? 、??32 ?? 和??16 ?? 的波形,进行对比和分析,验证总结频域采样定理。实验程序代码及结果如下:

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

xa = 0 : floor(M / 2);

xb = ceil(M / 2) - 1 : -1 : 0; xn = [xa,xb]; %三角波输入序列

Xk = fft(xn,1024); 24点fft,近似看作原信号的频谱 X32k = fft(xn,32); 2点fft,32点频域采样 x32n = ifft(X32k); 2点频域采样还原至时域 X16k = X32k(1:2:N); %对32点频域采样作隔点抽取,得到16点频域采样 x16n = ifft(X16k); 点频域采样还原至时域离散

subplot(3,2,2); %位置为右上 stem(n,xn,'.');

title('三角波序列x(n)'); %标题 xlabel('n'); %横坐标轴名称 ylabel('x(n)'); %纵坐标轴名称 axis([0,32,0,20]); %坐标轴范围

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]); %坐标轴范围

%此处如取0,2,0,200,则后面的N点频域采样取0,m,0,200,m = N

k = 0 : N / 2 - 1; subplot(3,2,3); stem(k,abs(X16k),'.'); title('16点频率采样'); xlabel('k'); ylabel('|X16k|'); axis([0,8,0,200]);

n1 = 0 : N / 2 - 1; subplot(3,2,4); stem(n1,x16n,'.');

title('16点IDFT[X16k]'); xlabel('n'); ylabel('x16n'); axis([0,32,0,20]);

k = 0 : N - 1; subplot(3,2,5); stem(k,abs(X32k),'.'); title('32点频域采样'); xlabel('k'); ylabel('|X32k|'); axis([0,16,0,200]);

n1 = 0 : N - 1; subplot(3,2,6); stem(n1,x32n,'.');

title('32点IDFT[X32k]'); xlabel('n'); ylabel('x32n'); axis([0,32,0,20]);

%位置为右下 %标题

%横坐标轴名称 %纵坐标轴名称 %坐标轴范围

%位置为左下 %标题

%横坐标轴名称 %纵坐标轴名称 %坐标轴范围

%位置为右中 %标题

%横坐标轴名称 %纵坐标轴名称 %坐标轴范围

%位置为左中 %标题

%横坐标轴名称 %纵坐标轴名称 %坐标轴范围