提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
数字信号处理 实验一 时域采样与频域采样【实验报告】
1.时域采样理论的验证
1.时域采样理论的验证。给定模拟信号,
式中A=444.128,a =50 π,w0 =50 πrad/s,它的幅频特性曲线如图1.1
图1.1 xa(t)的幅频特性曲线
现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。按照xa(t)的幅频特性曲线,选取三种采样频率,即 Fs=1kHz,300Hz,200Hz。观测时间选Tp=50ms 。为使用DFT,首先用下面公式产生时域离散信号,对三种采样频率,采样序列按顺序用x1(n),x2(n),x3(n)表示。
因为采样频率不同,得到的x1(n),x2(n),x3(n)的长度不同, 长度(点数)用公式
计算。选FFT的变换点数为M=64,序列长度不够64的尾部加零。
X(k)=FFT[x(n)] , k=0,1,2,3,-----,M-1。式中k代表的频率为
要求: 编写实验程序,计算x1(n),x2(n),x3(n)的幅度特性,并绘图显示。观察分析频谱混叠失真。
程序清单
clear all
clc
%Fs=1000Hz
Tp = 64/1000;
Fs = 1000; T = 1/Fs;
M = Tp*Fs; n=0:M-1;
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);
Xk = T*fft(xnt,M);
yn1 = 0:length(xnt)-1;
subplot(3,2,1);stem(yn1,xnt,'.');xlabel('n');ylabel('xa(n*T)');title('x1(n)的幅度特性,Fs=1000Hz');
k = 0:M-1; fk = k/Tp;
subplot(3,2,2);plot(fk,abs(Xk));xlabel('f(Hz)');ylabel('幅度');title('T*FT[xa(nT)],Fs=1000Hz');
%Fs=2000Hz
Tp = 64/1000;
Fs = 2000; T = 1/Fs;
M = Tp*Fs; n=0:M-1;
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);
Xk = T*fft(xnt,M);
yn1 = 0:length(xnt)-1;
subplot(3,2,3);stem(yn1,xnt,'.');xlabel('n');ylabel('xa(n*T)');title('x1(n)的幅度特性,Fs=2000Hz');
k = 0:M-1; fk = k/Tp;
subplot(3,2,4);plot(fk,abs(Xk));xlabel('f(Hz)');ylabel('幅度');title('T*FT[xa(nT)],Fs=2000Hz');
%Fs=200Hz
Tp = 64/1000;
Fs = 200; T = 1/Fs;
M = Tp*Fs; n=0:M-1;
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);
Xk = T*fft(xnt,M);
yn1 = 0:length(xnt)-1;
subplot(3,2,5);stem(yn1,xnt,'.');xlabel('n');ylabel('xa(n*T)');title('x1(n)的幅度特性,Fs=200Hz');
k = 0:M-1; fk = k/Tp;
subplot(3,2,6);plot(fk,abs(Xk));xlabel('f(Hz)');ylabel('幅度');title('T*FT[xa(nT)],Fs=200Hz');
运行结果
分析
当采样频率为1000Hz,2000Hz时,频谱几乎不失真;当采样频率为200Hz时,频谱混叠失真比较严重;
由图可见,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。当采样频率为1000Hz和2000Hz时频谱混叠很小;当采样频率为200Hz时,在频率100Hz附近频谱混叠很严重。
2.时域采样理论的验证
- 频域采样理论的验证。
给定信号如下:
编写程序分别对频谱函数
在区间[0,2*pi]上等间隔采样32
和16点,得到 X32(k)和X16(k):
再分别对 进行32点和16点IFFT,得到
:
分别画出
的幅度谱,并绘图显示x(n)、 X32(k)和X16(k) 的波形,进行对比和分析,验证总结频域采样理论。
提示:频域采样用以下方法容易变程序实现。
① 直接调用MATLAB函数fft计算32(k)=FFT[x(n)]就得到
在 [0,2pi]的32点频率域采样
② 抽取X32(k)的偶数点即可得到
在[0,2pi]的16点频率域采样 ,即
○3 当然也可以按照频域采样理论,先将信号x(n)以16为周期进行周期延拓,取其主值区(16点),再对其进行16点DFT(FFT),得到的就是
在[0,2*pi]的16点频率域采样X16(k)。
程序清单
%DTFT
M=27;
n=0:M;
k=0:1023;
wk=2*k/1024;
Xk=fft(xn,1024);
subplot(3,2,1);
plot(wk,abs(Xk));title('DTFT[x(n)]');
%三角波序列
clear all
clc
xn=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,13,12,11,10,9,8,7,6,5,4,3,2,1];
n=0:27-1;
subplot(3,2,2);
stem(n,xn);title('三角波序列');xlabel('n');ylabel('x(n)');
%(2)32点DFT:X(k)
xn=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,13,12,11,10,9,8,7,6,5,4,3,2,1];
xn=[xn,ones(1,32-27)];
n1=1:32;
X32k=fft(xn,32);
x32n =ifft(X32k);
subplot(3,2,3);
stem(n1,abs(X32k),'.');title('32点DFT:X(k)');xlabel('k');ylabel('X(k)');
subplot(3,2,4);
stem(n1,abs(x32n),'.');title('32点IDFT:x(n)');xlabel('n');ylabel('x(n)');
%(2)16点DFT:X(k)
clear all
clc
xn=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,13,12,11,10,9,8,7,6,5,4,3,2,1];
n2=1:16;
xn=[12,12,12,12,12,12,12,12,12,12,12,12,13,14,13,12]
X16k=fft(xn,16);
x16n =ifft(X16k);
subplot(3,2,5);
stem(n2,abs(X16k),'.');title('16点DFT:X(k)');xlabel('k');ylabel('X(k)');
subplot(3,2,6);
stem(n2,abs(x16n),'.');title('16点IDFT:x(n)');xlabel('n');ylabel('x(n)');
运行结果
分析
如果时域长为M,当 N≥M时,时域周期延拓后, 主值区间的序列等于原序列,无失真。当N<M时,时域会有混叠失真,这时,只在M-N≤n≤ N-1范围内,没有混叠失真。
该图验证了频域采样理论和频域采样定理。对信号x(n)的频谱函数在[0, 2π] 上等间隔采样N=16时,N 点IDFT[ XN(k)]得到的序列正是原序列x(n)以16为周期进行周期延拓后的主值区序列。由于N<M,所以发生了时域混叠失真,因此。xN(n) 与x(n)不同。
当N=32时,由于N>M,频域采样定理,所以不存在时域混叠失真,因此,xN(n) 与x(n)相同。
3.思考题
如果序列x(n)的长度为M,希望得到其频谱
在[0,2*pi]上的N点等间隔采样,当N<M时, 如何用一次最少点数的DFT得到该频谱采样?
分析
对于求频域采样点数N小于原时域序列长度M的N点离散频谱时,可先对原序列x(n)以N为周期进行周期延拓后取主值区序列,
,再计算N点DFT则得到N点频域采样 文章来源:https://www.toymoban.com/news/detail-459405.html
总结
本文是基于MATLAB的数字信号处理实验一的实验报告。文章来源地址https://www.toymoban.com/news/detail-459405.html
到了这里,关于数字信号处理 实验一 时域采样与频域采样【实验报告】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!