概述
这篇博文中使用的模拟信号为上篇博文:【 MATLAB 】使用 MATLAB 实现模拟信号的近似及其连续傅里叶变换
中使用的模拟信号:
为了研究在频域数量上的采样效果,对该信号使用两种不同的采样频率采样。
a. 在 fs = 5000 对信号进行采样,求出并画出其离散时间傅里叶变换;
b. 在 fs = 1000 对信号采样,求出并画出其离散时间傅里叶变换。
题解:
上篇博文也分析了,信号的带宽为2kHz,奈奎斯特频率就为 4000 样本/s,它小于第一问给出的采样频率,所以频谱混叠几乎不存在。
我们通过MATLAB验证下:
clc
clear
close all
% Analog signal
Dt = 0.00005;
t = - 0.005:Dt:0.005;
xa = exp(-1000 * abs(t));
% Discrete-time signal
Ts = 0.0002;
n = -25:25;
x = exp(-1000*abs(n*Ts));
%Discrete-time Fourier Transform
K = 500;
k = 0:1:K;
w = pi*k/K;
X = x*exp(-j*n'*w);
X = real(X);
w = [-fliplr(w),w(2:K+1)];
X = [fliplr(X),X(2:K+1)];
subplot(2,1,1);
plot(t*1000,xa);
xlabel('t in msec');ylabel('x(n)');
title('Discrete signal');
hold on
stem(n*Ts*1000,x);
gtext('Ts = 0.2msec');
hold off
subplot(2,1,2);
plot(w/pi,X);
xlabel('Frequency in pi units');ylabel('X(w)');
title('Discrete - time Fourier Transform');
继续作答第二问,将采样间隔改为0.001s,10ms时间区间内能采样11个点。
clc
clear
close all
% Analog signal
Dt = 0.00005;
t = - 0.005:Dt:0.005;
xa = exp(-1000 * abs(t));
% Discrete-time signal
Ts = 0.001;
n = -5:5;
x = exp(-1000*abs(n*Ts));
%Discrete-time Fourier Transform
K = 500;
k = 0:1:K;
w = pi*k/K;
X = x*exp(-j*n'*w);
X = real(X);
w = [-fliplr(w),w(2:K+1)];
X = [fliplr(X),X(2:K+1)];
subplot(2,1,1);
plot(t*1000,xa);
xlabel('t in msec');ylabel('x(n)');
title('Discrete signal');
hold on
stem(n*Ts*1000,x);
gtext('Ts = 1msec');
hold off
subplot(2,1,2);
plot(w/pi,X);
xlabel('Frequency in pi units');ylabel('X(w)');
title('Discrete - time Fourier Transform');
很明显,这个DTFT7已经变了,也就是发生了频谱混叠。
最后
以上就是微笑豌豆为你收集整理的【 MATLAB 】模拟信号采样及离散时间傅里叶变换(DTFT)案例分析的全部内容,希望文章能够帮你解决【 MATLAB 】模拟信号采样及离散时间傅里叶变换(DTFT)案例分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复