这篇博文中使用的模拟信号为上篇博文:【 MATLAB 】使用 MATLAB 实现模拟信号的近似及其连续傅里叶变换
中使用的模拟信号:
为了研究在频域数量上的采样效果,对该信号使用两种不同的采样频率采样。
a. 在 fs = 5000 对信号进行采样,求出并画出其离散时间傅里叶变换;
b. 在 fs = 1000 对信号采样,求出并画出其离散时间傅里叶变换。
题解:
上篇博文也分析了,信号的带宽为2kHz,奈奎斯特频率就为 4000 样本/s,它小于第一问给出的采样频率,所以频谱混叠几乎不存在。
我们通过MATLAB验证下:
clcclearclose all% Analog signalDt = 0.00005;t = - 0.005:Dt:0.005;xa = exp(-1000 * abs(t));% Discrete-time signalTs = 0.0002;n = -25:25;x = exp(-1000*abs(n*Ts));%Discrete-time Fourier TransformK = 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 onstem(n*Ts*1000,x);gtext('Ts = 0.2msec');hold offsubplot(2,1,2);plot(w/pi,X);xlabel('Frequency in pi units');ylabel('X(w)');title('Discrete - time Fourier Transform');
继续作答第二问,将采样间隔改为0.001s,10ms时间区间内能采样11个点。
clcclearclose all% Analog signalDt = 0.00005;t = - 0.005:Dt:0.005;xa = exp(-1000 * abs(t));% Discrete-time signalTs = 0.001;n = -5:5;x = exp(-1000*abs(n*Ts));%Discrete-time Fourier TransformK = 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 onstem(n*Ts*1000,x);gtext('Ts = 1msec');hold offsubplot(2,1,2);plot(w/pi,X);xlabel('Frequency in pi units');ylabel('X(w)');title('Discrete - time Fourier Transform');
很明显,这个DTFT7已经变了,也就是发生了频谱混叠。