基于MATLAB的数字信号处理(2) 时域采样和频域采样

举报
叶庭云 发表于 2021/08/05 00:00:29 2021/08/05
【摘要】 文章目录 一、实验目的二、实验原理与方法1. 时域采样定理的要点2. 频域采样定理的要点 三、实验内容及步骤1. 时域采样理论的验证2. 频域采样理论的验证 四、实验总结 一、实验目的 时域采样理论与频域采样理论是数字信号处理中的重要理论。 要求掌握模拟信号采样前后频谱的变化, 以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频域采样会...

一、实验目的

时域采样理论与频域采样理论是数字信号处理中的重要理论。 要求掌握模拟信号采样前后频谱的变化, 以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。

二、实验原理与方法

1. 时域采样定理的要点



2. 频域采样定理的要点

三、实验内容及步骤

1. 时域采样理论的验证


MATLAB程序如下:

%时域采样验证程序 用矩阵法计算DFT test_03.m
clear;

A=444.128;a=50*sqrt(2)*pi;omega=50*sqrt(2)*pi;
Fs1=1000;Fs2=300;Fs3=200;Tp=50*0.001;   %观测时间:50ms
%采样间隔
T1=1/Fs1;T2=1/Fs2;T3=1/Fs3;

%时域等间隔理想采样
n1=0:1:Tp/T1; %采样点个数
x1=A*exp(-a*n1*T1).*sin(omega*n1*T1);
subplot(321);
stem(n1,x1,'.','g');
xlabel('n');ylabel('xa(nT)');
title('Fs=1000Hz');
axis([0 64 -20 170]);

n2=0:1:Tp/T2; %采样点个数
x2=A*exp(-a*n2*T2).*sin(omega*n2*T2);
subplot(323);
stem(n2,x2,'.','r');
xlabel('n');ylabel('xa(nT)');
title('Fs=300Hz');
axis([0 15 -20 170]);

n3=0:1:Tp/T3; %采样点个数
x3=A*exp(-a*n3*T3).*sin(omega*n3*T3);
subplot(325);
stem(n3,x3,'.','m');
xlabel('n');ylabel('xa(nT)');
title('Fs=200Hz');
axis([0 10 -20 170]);

%DFT矩阵
wN=dftmtx(64);
%补零到64点
x1=[x1,zeros(1,64-length(x1))];
x2=[x2,zeros(1,64-length(x2))];
x3=[x3,zeros(1,64-length(x3))];
%利用矩阵法求DFT
X1=(wN*x1')';
X2=(wN*x2')';
X3=(wN*x3')';
%求幅度
X_A1=abs(X1);
X_A2=abs(X2);
X_A3=abs(X3);
%间隔
n=1:Fs1/64:Fs1;
subplot(322);
plot(n,X_A1*T1,'g');
axis([0,1000,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
title('T*FT[xa(nT), Fs=1000Hz');

n=1:Fs2/64:Fs2;
subplot(324);
plot(n,X_A2*T2,'r');
axis([0,300,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
title('T*FT[xa(nT), Fs=300Hz');

n=1:Fs3/64:Fs3;
subplot(326);
plot(n,X_A3*T3,'m');
axis([0,200,0,1.2]);
xlabel('f/Hz');ylabel('幅度');
title('T*FT[xa(nT), Fs=200Hz');

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
%时域采样验证程序 用FFT计算DFT test_04.m
clear;

%初始化参数
A=444.128;a=50*sqrt(2)*pi;omega=50*sqrt(2)*pi;
Fs1=1000;Fs2=300;Fs3=200;Tp=50*0.001;%50ms
%采样间隔
T1=1/Fs1;T2=1/Fs2;T3=1/Fs3;

%时域等间隔理想采样
n1=0:1:Tp/T1; %采样点个数  Fs=1000Hz
x1=A*exp(-a*n1*T1).*sin(omega*n1*T1);
subplot(321);
stem(n1,x1,'.','g');
xlabel('n');ylabel('xa(nT)');
title('(a) Fs=1000Hz');
axis([0 50 -20 170]);

n2=0:1:Tp/T2; %采样点个数  Fs=300Hz
x2=A*exp(-a*n2*T2).*sin(omega*n2*T2);
subplot(323);
stem(n2,x2,'.','r');
xlabel('n');ylabel('xa(nT)');
title('(b) Fs=300Hz');
axis([0 15 -20 170]);

n3=0:1:Tp/T3; %采样点个数  Fs=200Hz
x3=A*exp(-a*n3*T3).*sin(omega*n3*T3);
subplot(325);
stem(n3,x3,'.','m');
xlabel('n');ylabel('xa(nT)');
title('(c) Fs=200Hz');
axis([0 10 -20 170]);

%补零到64点
x1=[x1,zeros(1,64-length(x1))];
x2=[x2,zeros(1,64-length(x2))];
x3=[x3,zeros(1,64-length(x3))];
%利用FFT求DTF
X1=fft(x1,64);
X2=fft(x2,64);
X3=fft(x3,64);
%求幅度 取绝对值
X_A1=abs(X1);
X_A2=abs(X2);
X_A3=abs(X3);
%取合适间隔  plot绘图
n=1:Fs1/64:Fs1;
subplot(322);
plot(n,X_A1*T1,'g');
axis([0,1000,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
title('(a) T*FT[xa(nT), Fs=1000Hz');

n=1:Fs2/64:Fs2;
subplot(324);
plot(n,X_A2*T2,'r');
axis([0,300,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
title('(b) T*FT[xa(nT), Fs=300Hz');

n=1:Fs3/64:Fs3;
subplot(326);
plot(n,X_A3*T3,'m');
axis([0,200,0,1.2]);
xlabel('f/Hz');ylabel('幅度');
title('(c) T*FT[xa(nT), Fs=200Hz');


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

运行效果如下:

时域采样定理的图验证了时域采样理论和时域采样定理,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。当采样频率为 1000Hz 时频谱混叠很小;当采样频率为 300Hz 时,在折叠频率 150Hz 附近频谱混叠很严重;当采样频率为 200Hz 时,在折叠频率100Hz附近频谱混叠更严重。

2. 频域采样理论的验证


MATLAB程序如下:

%频域采样验证程序 test_05.m
clear;

%初始化参数
M=27;N=32;
n=0:M-1;   %根据表达式 0-2627个点

%生成三角波序列x(n)
xa=1:floor(M/2)+1;
xb=ceil(M/2)-1:-1:1;
xn=[xa,xb];

%做FFT变换
Xk=fft(xn,1024); %1024点FFT用于近似序列FT[x(n)]
X32k=fft(xn,32);
x32n=ifft(X32k);
X16k=X32k(1:2:N);
x16n=ifft(X16k,N/2);
%X16k=fft(xn,16);
%x16n=ifft(X16k);

%作图
subplot(3,2,1);
k=0:1023;kk=2*k/1024;
plot(kk,abs(Xk),'g');xlabel('w/\pi');ylabel('|X(e^j^\omega)|');
title('(a) FT[x(n)]');
axis([0 1 0 200]);

subplot(3,2,2);
stem(n,xn,'.','g'); %这样会变成实心点
xlabel('n');ylabel('x(n)');
title('(b) 三角波序列x(n)');
axis([0 32 0 20]);

%16点频域采样
subplot(3,2,3);
k=0:15;
stem(k,abs(X16k),'.','r');xlabel('k');ylabel('|X_1_6(k)|');
title('(c) 16点频域采样');
axis([0,8,0,200]);

subplot(3,2,4);
stem(k,x16n,'.','r');xlabel('n');ylabel('x_1_6(n)');
axis([0,40,0,20]);%控制图像坐标范围
title('(d) 16点IDFT[X16(k)]');

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

subplot(3,2,6);
stem(k,x32n,'.','m');xlabel('n');ylabel('x_3_2(n)');
title('(f) 32点IDFT[X32(k)]');
axis([0 32 0 20]); 
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

运行效果如下:

频域采样定理的图验证了频域采样理论和频域采样定理。对信号 x(n) 的频谱函数 X(ejω) 在 [0,2π] 上等间隔采样 N=16 时, N点IDFT[XNk]得到的序列正是原序列 x(n) 以 16 为周期进行周期延拓后的主值区序列,频域采样点数 N 必须大于等于时域离散信号的长度 M (即N≥M),才能使时域不产生混叠。

四、实验总结

  • 时域采样定理的图验证了时域采样理论和时域采样定理,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。当采样频率为 1000Hz 时频谱混叠很小;当采样频率为 300Hz 时,在折叠频率 150Hz 附近频谱混叠很严重;当采样频率为 200Hz 时,在折叠频率100Hz附近频谱混叠更严重。
  • 频域采样定理的图验证了频域采样理论和频域采样定理。对信号 x(n) 的频谱函数 X(ejω) 在 [0,2π] 上等间隔采样 N=16 时, N点IDFT[XNk]得到的序列正是原序列 x(n) 以 16 为周期进行周期延拓后的主值区序列,频域采样点数 N 必须大于等于时域离散信号的长度 M (即N≥M),才能使时域不产生混叠。
  • 对比上面叙述的时域采样原理和频域采样原理, 得到一个有用的结论, 即两个采样理论具有对偶性: “时域采样时频谱周期延拓, 频域采样时域信号周期延拓”。

文章来源: yetingyun.blog.csdn.net,作者:叶庭云,版权归原作者所有,如需转载,请联系作者。

原文链接:yetingyun.blog.csdn.net/article/details/109311530

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。