信号与系统实验四

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

信号与系统实验四

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

基本题

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);

结果:

fx =4/(4+w^2)

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

g=sym('exp(-2*t)*Heaviside(t

)'); 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));

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*sig n(-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,这是会注意到,在较高的频率上近似不如在较低的频率上好。因为用了样本)

x近

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

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

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

目的

这个练习要借助于在频域和时域分析与操作声音信号来加深理解连续时间傅立叶变换CTFT 。

相关知识

在MATLAB 中声音信号是用含有连续时间声音信号样本的向量表示的,采样率定为8192Hz ,也即声音信号是每隔s t )1(=∆采样一次。更仔细一些,对于一个声音信号)(t y ,在t N t ∆<≤0区间上,以8192Hz 采样,代表该声音信号的N 个元素向量y 由下式给出:

N ,,n t n y t y ,21 ))1(()(Λ=∆-=

然后,函数sound 能用来在计算机的扬声器上放出该信号。

虽然这是一个连续时间声音信号)(t y 的采样表示,倘若)(t y 在采样区间以外是零,而且采样率Hz f s 8192=是足够快的,那么y 就能认为是)(t y 的一个准确表示。在开始这个练习之前,必须首先装入一个采样的声音信号,这可键入 >> load splat

>> y=y(1:8192);

为了确认已准确无误地装入了这个声音数据,并证实这个MATLAB 向量y 能正确地代表一个声音信号,可键入

>> N=8192;

>> fs=8192;

>> sound(y,fs)

函数fft 取出该已采样的表示y ,并在ω的样本点上计算近似的)(t y CTFT 。若键入

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

那么向量Y 就包含了区间s s f f πωπ<≤-上N 个等分频率点处)(ωj Y 的近似值。事

实上,Y 包含的仅是)(ωj cY 的近似值,这里c 是一个常数,但是不必担心这个近似,或这个加权系数,这仅是为本练习的需要而设定的。有关)(ωj Y 和Y 之间关系的更为全面的讨论,请参考练习4.1。

函数fftshift 将fft 的输出重新排序,以使得)(ωj Y 的样本在Y 中的排序是从最负频率到最正的频率。现在,与CTFT 有关的大多数性质都能在向量Y 上得到证实。

基本题

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;

Y=fftshift(fft(y));

sound(y,fs);

w=(-pi:2*pi/N:pi-pi/N)*fs;

相关文档
最新文档