这篇博文中使用的模拟信号为上篇博文:【 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已经变了,也就是发生了频谱混叠。