首页 > 编程知识 正文

时域采样定理的分析 matlab,基于matlab的信号与系统时域分析实验原理

时间:2023-05-06 02:16:29 阅读:205717 作者:2672

时域采样定理MATLAB实现

【摘 要】取样定理是把模拟信号变成数字信号取样频率选取的一条重要准则。对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性延拓形成的。本文选取一模拟信号, 在 Matlab平台上用不同的取样频率对其采样,利用MATLAB实现连续信号采样、频谱分析和采样信号恢复,计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,从而验证时域采样定理。

【关键词】时域采样定理 连续信号 频谱分析仪 MATLAB

从模拟信号到数字信号,即从连续信号到离散信号的转换都是通过离散采样完成的,采样频率就是每秒钟采样的个数。根据畅快的大地采样定理,要保证信号不失真,采样频率要大于信号最高频率的两倍。

1 采样定理介绍

假设离散时间信号 是通过对连续时间信号 取样获得

取样定理的叙述为: 如果 在 > 时 , = 0, 则连续时间信号 完全可以由离散时间信号重建恢复 , 其充要条件是:取样频率 ≥2 ; = 2被称为连续时间信 号的奈奎斯特 (Nyquist) 频率。当

号不能由它的取样信号重建恢复。

2 运用MATLAB举例分析

下面选定一个连续信号,计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,从而验证时域采样定理。

f1 = 'sin(2*pi*60*t)'

fs0 = caiyang(f1,40); %频率fs

fr0 = huifu(fs0,40);

Fs1 = caiyang(f1,120); %频率 fs=2fmax, 临界采样

fr1 = huifu(fs1,120);

fs2 = caiyang(f1,160); %频率 fs>2fmax, 过采样

fr2 = huifu(fs2,160);

2.1创建一个caiyang.m文件

function fz = caiyang(fy,fs)

fs0 = 10000; tp = 0.1;

t = [-tp:1/fs0:tp];

k1 = 0:999; k2 = -999:-1;

m1 = length(k1); m2 = length(k2);

f = [fs0*k2/m2,fs0*k1/m1];

w = [-2*pi*k2/m2,2*pi*k1/m1];

fx1=eval(fy);

FX1 = fx1*exp(-j*[1:length(fx1)]'*w);

figure

subplot(2,2,1),plot(t,fx1,'r')

title('原信号'),xlabel('时间t(s)')

axis([min(t),max(t),min(fx1),max(fx1)])

subplot(2,2,2),plot(f,abs(FX1),'r')

title('原信号幅度频谱'),xlabel(' 频率f(Hz)')

axis([-100,100,0,max(abs(FX1))+5])

Ts = 1/fs;

t1 = -tp:Ts:tp;

f1 = [fs*k2/m2,fs*k1/m1];

t = t1;

fz = eval(fy);

FZ = fz*exp(-j*[1:length(fz)]'*w);

subplot(2,2,3),stem(t,fz,'.'),

title('取样信号'),xlabel('时间t(s)')

line([min(t),max(t)],[0,0])

subplot(2,2,4),plot(f1,abs(FZ),'m')

title('取样信号幅度频谱'),xlabel('频率f(Hz)')

2.2创建一个huifu.m文件

function fh = huifu(fz,fs)

T = 1/fs; dt = T/10; tp = 0.1;

t = -tp:dt:tp; n = -tp/T:tp/T;

TMN = ones(length(n),1)*t-n'*T*ones(1,length(t));

fh = fz*sinc(fs*TMN);

k1 = 0:999; k2 = -999:-1;

m1 = length(k1); m2 = length(k2);

w = [-2*pi*k2/m2,2*pi*k1/m1];

FH = fh*exp(-j*[1:length(fh)]'*w);

figure

subplot(2,1,1),plot(t,fh,'g'),

st1 = sprintf('由取样频率fs = %d',fs);

st2 = '恢复后的信号';

st = [st1,st2];title(st),xlabel('时间 t(s)')

axis([min(t),max(t),min(fh),max(fh)])

line([min(t),max(t)],[0,0])

f = [10*fs*k2/m2,10*fs*k1/m1];

subplot(2,1,2),plot(f,abs(FH),'g')

title('恢复后信号的频谱'),xlabel('频率f(Hz)')

axis([-100,100,0,max(abs(FH))+2]);

下面是利用MATLAB分析的图1-图6:

从图1、图3、图5的连续傅里叶变换可以看出,信号f1的频率为60Hz、,如果采样频率f≥120Hz就可满足时域采样定理。图2、图4、图6分别为当采样频率为40Hz、120Hz、160Hz时采样恢复后的信号频谱,当f≥120Hz时,信号无明显失真;而f

3 结语

取样定理表明,在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔上的采样值来表示,并且可以用这些采样值把信号完全恢复过来。这样,采样定理为连续时间信号与离散时间信号的相互提供了理论依据。在数字信号处理技术广泛应用的今天,连续时间信号的离散处理显得日益重要。

参考文献:

[1]xydy.数字信号处理[M].北京:国防工业出版社,1985 .

[2]愉快的雪碧,syd.基于 MATLAB 的系统分析与设计 ———信号处理[ M] .西安:西安电子科技大学出版社,1999.

[3]无语的含羞草,奋斗的草丛,badjy.MATLAB 工具箱应用指南[M].北京:电子工业出版社,2000.

[4]xsdqd,粗犷的耳机,跳跃的吐司.MATLAB 仿真应用详解[M].北京:人民邮电出版社 ,2001.




版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。