zzm_3392 发表于 2008-1-4 17:36

实例分析信号的频谱和采样后的信号恢复

1、%求xa(t)=exp(-1000|t|)的连续时间傅立叶变换Xa(jw)
%分析如下:
%x(t)=exp(-a|t|)的连续时间傅立叶变换为X(jw)=2a/(a^2+w^2),X(j0)=2/a,X(ja)=1/a,X(j2a)=2/(5a)
%由于xa(t)为fh=2000Hz的带限信号,因此取T=5*10^(-5)<<1/(2*2000)=2.5*10^(-4) s
%程序如下:
clc;
clear;
Dt=0.00005;t=-0.005:Dt:0.005;%模拟信号
xa=exp(-1000*abs(t));
Wmax=2*pi*2000;K=500;k=0:1:K;W=k*Wmax/K;% 连续时间傅立叶变换
Xa=xa*exp(-j*t'*W)*Dt;
Xa=real(Xa);
W=[-fliplr(W),W(2:501)];
Xa=;
figure(1)
subplot(211),plot(t*1000,xa,'.');xlabel('t in msec');ylabel('x_a(t)');
gtext('模拟信号');
subplot(212),plot(W/(2*pi*1000),Xa*1000,'.');
xlabel('Frequence in KHz');ylabel('X_a(j \Omega)*1000');gtext('连续时间傅立叶变换');

zzm_3392 发表于 2008-1-4 17:39

2、%以xa(t)=exp(-1000|t|)为例说明采样频率对频域特性的影响,分别取采样频率fs=5000Hz和fs=1000Hz,
%绘出离散时间傅立叶变换
%程序如下:
clc;
clear;
Dt=0.00005;t=-0.005:Dt:0.005;%模拟信号
xa=exp(-1000*abs(t));
fs1=5000;Ts1=1.0/fs1;n1=-25:1:25;%n1的取值范围为[-0.005*fs1,0.005*fs1]
x1=exp(-1000*abs(n1*Ts1));
fs2=1000;Ts2=1.0/fs2;n2=-5:1:5;%n2的取值范围为[-0.005*fs2,0.005*fs2]
x2=exp(-1000*abs(n2*Ts2));
K=500;k=0:1:K;w=pi*k/K;% 离散时间傅立叶变换,频域w=分为K段,当k=K即w=pi时,对应模拟频率f=fs/2
X1=x1*exp(-j*n1'*w);X1=real(X1);
X2=x2*exp(-j*n2'*w);X2=real(X2);
w=[-fliplr(w),w(2:501)];
X1=;
X2=;
figure(1)
subplot(211),plot(t*1000,xa,'.');xlabel('t(ms)');ylabel('x_a_1(t)');%画模拟信号
title('离散信号Ts=0.2ms');hold on
stem(n1*Ts1*1000,x1,'r');hold off
subplot(212),plot(w/pi,X1,'.');xlabel('\omega/\pi');ylabel('X_1(j \omega)');
title('离散时间傅立叶变换');
figure(2)
subplot(211),plot(t*1000,xa,'.');xlabel('t(ms)');ylabel('x_a_2(t)');%画模拟信号
title('离散信号Ts=1ms');hold on
stem(n2*Ts2*1000,x2,'r');hold off
subplot(212),plot(w/pi,X2,'.');xlabel('\omega/\pi');ylabel('X_2(j \omega)');
title('离散时间傅立叶变换');

结果分析:当fs=5000Hz时,得到的频谱图2.jpg与连续时间傅立叶频谱图1.jpg完全一致,而fs=1000Hz时,得到的频谱图3.jpg与连续时间傅立叶频谱图1.jpg不同,是由于fs=1000Hz时产生了混叠现象.

zzm_3392 发表于 2008-1-4 17:40

3、%对不同采样频率产生的离散序列x1(n)和x2(n),采用sinc函数进行内插重构
%程序如下:
clc;
clear;
Ts1=0.0002;Fs1=1/Ts1;n1=-25:1:25;nTs1=n1*Ts1;%离散时间信号
x1=exp(-1000*abs(nTs1));
Ts2=0.001;Fs2=1/Ts2;n2=-5:1:5;nTs2=n2*Ts2;
x2=exp(-1000*abs(nTs2));
Dt=0.00005;t=-0.005:Dt:0.005;%模拟信号重构
xa1=x1*sinc(Fs1*(ones(length(nTs1),1)*t-nTs1'*ones(1,length(t))));
xa2=x2*sinc(Fs2*(ones(length(nTs2),1)*t-nTs2'*ones(1,length(t))));
subplot(211),plot(t*1000,xa1,'.');xlabel('t(ms)');ylabel('x_a_1(t)');
title('从x1(n)重构模拟信号x_a(t)');hold on
stem(n1*Ts1*1000,x1);hold off
subplot(212),plot(t*1000,xa2,'.');xlabel('t(ms)');ylabel('x_a_2(t)');
title('从x2(n)重构模拟信号x_a(t)');hold on
stem(n2*Ts2*1000,x2);hold off
line([-5,5],);

eight 发表于 2008-1-5 19:19

这些貌似信号处理方法板块都有,不过还是鼓励一下

zzm_3392 发表于 2008-1-6 10:03

最近刚学到这方面的东西,对初学者很有用,所以就发上来了,没有去看信号处理板块,谢谢版主!

panwuxia1983 发表于 2008-1-7 15:20

我是初学信号处理,谢谢分享!!

lionwq 发表于 2008-1-7 19:19

非常好,谢谢分享:victory:
页: [1]
查看完整版本: 实例分析信号的频谱和采样后的信号恢复