连续时间傅立叶变换

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信号与系统实验报告

实验四 连续时间傅立叶变换

§4.1连续时间傅立叶变换的数字近似 1.求t e t x 2)(-=CTFT 的解析表达式。可将)(t x 看作)()()(t g t g t x -+=,)()(2t u e t g t -=。 g=sym('exp(-2*t)*Heaviside(t)');

g2=subs(g,'-t','t');

x=g+g2;

fx=fourier(x);

2.创建一个向量,它包含了在区间t=[0:tau:T-tau] 上(其中01.0=τ和10=T ),信号)5()(-=t x t y 的样本。

clc;

t=0:0.01:10-0.01;

y=exp(-2*(t-5)).*(0.5+0.5*sign(t-5))+exp(2*(t-5)).*(0.5+0.5*sign(-t+5));

plot(t,y);

3.键入y=fftshift(tau*fft(y))计算样本)(k j Y ω。因为)(t x 对于5>t 基本上为零,就能近似用τT N =个样本分析中计算出信号)5()(-=t x t y 的CTFT 。

clc;

t=0:0.01:10-0.01;

y=exp(-2*(t-5)).*(0.5+0.5*sign(t-5))+exp(2*(t-5)).*(0.5+0.5*sign(-t+5));

y=fftshift(0.01.*fft(y));

y=abs(y);

plot(t,y);

axis([4,6,-0.1,1.2]);

4.构造一个频率样本向量w ,它按照

>> w=-(pi/tau)+(0:N-1)*(2*pi/(N*tau));

与存在向量Y 中的值相对应。

5.因为)(t y 是通过时移与)(t x 相联系的,所以CTFT )(ωj X 就以线性相移项ω5j e 与)(ωj Y 相联系。利用频率向量w 直接由Y 计算)(ωj X 的样本,并将结果存入x 中。 clc;

t=0:0.01:10-0.01;

tau=0.01;

N=10/0.01;

y=exp(-2*(t-5)).*(0.5+0.5*sign(t-5))+exp(2*(t-5)).*(0.5+0.5*sign( -t+5));

y=fftshift(0.01.*fft(y));

w=-(pi/tau)+(0:N-1)*(2*pi/(N*tau));

x=exp(j*5*w).*y;

6.利用abs和angle画出在w标定的频率范围内X的幅值和相位。对于相同的ω值,也画出在1中所导出的)

X解析式表达式的幅值和相位。CTFT的近似值

(ωj

与解析导得的相符吗?若想在一张对数坐标上画出幅值,可以用semilogy,这是会注意到,在较高的频率上近似不如在较低的频率上好。因为用了样本)

(τn

x近似)(t x,所以在时间段τ长度内,信号变化不大的那些信号的频率分量近似程度会更好一些。

clc;

tau=0.01;

T=10;

t=0:tau:T-tau;

N=T/tau;

y=exp(-2*(t-5)).*(0.5+0.5*sign(t-5))+exp(2*(t-5)).*(0.5+0.5*sign( -t+5));

y=fftshift(0.01.*fft(y));

w=-(pi/tau)+(0:N-1)*(2*pi/(N*tau));

x=exp(i*5*w).*y;

xp=abs(x);

xf=angle(x);

subplot(211)

plot(t,xp);

subplot(212)

plot(t,xf);

7.利用abs和angle画出Y的幅值和相位,它们与X的图比较后怎样?能估计到这一结果吗?

clc

syms s w;

g=sym('exp(-2*s)*Heaviside(s)');

g2=subs(g,'-s','s');

y=g+g2;

fw=fourier(y,s,w);

ff=atan(imag(fw)/real(fw));

fp=abs(fw);

tau=0.01;

T=10;

t=0:tau:T-tau;

N=T/tau;

y=exp(-2*(t-5)).*(0.5+0.5*sign(t-5))+exp(2*(t-5)).*(0.5+0.5*sign(-t+5));

y=fftshift(0.01.*fft(y));

w=-(pi/tau)+(0:N-1)*(2*pi/(N*tau));

x=exp(i*5*w).*y;

xp=abs(x);

xf=angle(x);

subplot(211)

hold on

plot(t,xp);

ezplot(fp,-10:10)

hold off

subplot(212)

hold on

plot(t,xf);

ezplot(ff,-10:10)

hold off

§4.2连续时间傅立叶变换性质

1.键入Y=fftshift(fft(y)),计算向量Y 的傅立叶变换。键入

>> w=[-pi:2*pi/N:pi-pi/N]*fs;

将对应的频率值存入向量w 中。利用w 和Y 在区间s s f f πωπ<≤-内画出该连续时间傅立叶变换的幅值。

函数ifft 是fft 的逆运算。对于偶数长度的向量,fftshift 就是它本身的逆。对于向量Y ,N=8192,这个逆傅立叶变换能用键入以下命令而求得

>> y=ifft(fftshift(Y));

>> y=real(y);

由于原时域信号已知是实的,所以这里用了函数real 。然而,在fft 和ifft 中的数值舍入误差都会在y 中引入一个很小的非零虚部分量。一般说来,逆CTFT 不必是一个实信号,而虚部可以包含有显著的能量。当已知所得信号一定是实信号时,并且已经证实所除掉的虚部分量是没有意义的,real 函数才能用于ifft 的输出上

load splat

y=y(1:8192);

N=8192;

fs=8192;

相关文档
最新文档