实验四 连续时间傅立叶变换.docx
- 文档编号:4334102
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:17
- 大小:180.14KB
实验四 连续时间傅立叶变换.docx
《实验四 连续时间傅立叶变换.docx》由会员分享,可在线阅读,更多相关《实验四 连续时间傅立叶变换.docx(17页珍藏版)》请在冰豆网上搜索。
实验四连续时间傅立叶变换
实验四连续时间傅立叶变换
§4.1连续时间傅立叶变换的数字近似
目的
将连续时间傅立叶变换进行数字近似,用函数fft(快速傅立叶算法)高效地计算这个近似值。
基本题
1.求
CTFT的解析表达式。
可以发现,将
看作
,
,是有帮助的。
解:
functionf=Heaviside(t)
%HEAVISIDEUnitStepfunction
%f=Heaviside(t)returnsavectorfthesamesizeas
%theinputvector,whereeachelementoffis1ifthe
%correspondingelementoftisgreaterthanzero.
f=(t>0);
tao=0.01;
T=10;
t=[0:
tao:
T-tao];
N=T/tao;
y=exp(-2*abs(t));
f=fft(y,N)
%x=fourier(y);
%ezplot(x)
2.创建一个向量,它包含了对于
和
,在区间t=[0:
tau:
T-tau]上,信号
的样本。
因为
对于
基本上为零,就能用
由上面分析中计算出信号
的CTFT。
向量y的长度为N。
解:
t=[0:
0.01:
9.99];
y=exp(-2*abs(t-5));
w=2*pi/10;
n=10/0.01;
w1=w*(-n/2:
(n/2-1))/n;
F=fft(y);
FC=fftshift(F)*0.01;
plot(w1,abs(FC));
3.键入y=fftshift(tau*fft(y))计算样本
。
解:
t=[0:
0.01:
9.99];
y=exp(-2*abs(t-5));
w=2*pi/10;
n=10/0.01;
w1=w*(-n/2:
(n/2-1))/n;
F=fft(y);
FC=fftshift(F)*0.01
4.构造一个频率样本向量w,它按照
>>w=-(pi/tau)+(0:
N-1)*(2*pi/(N*tau));
与存在向量Y中的值相对应。
解:
w=-(pi/tau)+(0:
N-1)*(2*pi/(N*tau));
5.因为
是通过时移与
相联系的,所以CTFT
就以线性相移项
与
相联系。
利用频率向量w直接由Y计算
的样本,并将结果存入x中。
解:
t=[0:
0.01:
9.99];
y=exp(-2*abs(t-5));
w=2*pi/10;
n=10/0.01;
w1=w*(-n/2:
(n/2-1))/n;
F=fft(y)*exp(-i*5*w);
X=fftshift(F)*0.01;
6.利用abs和angle画出在w标定的频率范围内X的幅值和相位。
对于相同的
值,也画出在1中所导出的
解析式表达式的幅值和相位。
CTFT的近似值与解析导得的相符吗?
若想在一张对数坐标上画出幅值,可以用semilogy,这是会注意到,在较高的频率上近似不如在较低的频率上好。
因为已经用了样本
近似
,所以在时间段
长度内,信号变化不大的那些信号的频率分量近似程度会更好一些。
解:
clc;
clearall;
tao=0.1;
T=10;
t=[0:
tao:
T-tao];
N=T/tao;
y=exp(-2*abs(t-5));
w=-(pi/tao)+(0:
N-1)*(2*pi/(N*tao));
yw=fftshift(tao*fft(y,N))
x=yw.*exp(i*5*w)
x1=abs(x);
x2=angle(x)
subplot(2,2,1)
%plot(w,x1)
axis([-55-11]);
title('x幅值');
subplot(2,2,2)
plot(w,x2)
axis([-55-33]);
title('x相位');
y1=abs(yw);
y2=angle(yw);
subplot(2,2,3)
plot(w,y1)
axis([-55-11]);
title('y幅值');
subplot(2,2,4)
plot(w,y2)
axis([-55-33]);
title('y相位');
§4.2连续时间傅立叶变换性质
目的
这个练习要借助于在频域和时域分析与操作声音信号来加深理解连续时间傅立叶变换CTFT。
基本题
1.键入Y=fftshift(fft(y)),计算向量Y的傅立叶变换。
键入
>>w=[-pi:
2*pi/N:
pi-pi/N]*fs;
将对应的频率值存入向量w中。
利用w和Y在区间
内画出该连续时间傅立叶变换的幅值。
函数ifft是fft的逆运算。
对于偶数长度的向量,fftshift就是它本身的逆。
对于向量Y,N=8192,这个逆傅立叶变换能用键入以下命令而求得
>>y=ifft(fftshift(Y));
>>y=real(y);
由于原时域信号已知是实的,所以这里用了函数real。
然而,在fft和ifft中的数值舍入误差都会在y中引入一个很小的非零虚部分量。
一般说来,逆CTFT不必是一个实信号,而虚部可以包含有显著的能量。
当已知所得信号一定是实信号时,并且已经证实所除掉的虚部分量是没有意义的,real函数才能用于ifft的输出上
解:
loadsplat
y=y(1:
8192);
N=8192;
fs=8192;
sound(y,fs)
Y=fftshift(fft(y));
w=[-pi:
2*pi/N:
pi-pi/N]*fs;
plot(w,abs(Y));
(2)
loadsplat
y=y(1:
8192);
N=8192;
fs=8192;
sound(y,fs)
Y=fftshift(fft(y));
y=ifft(fftshift(Y));
y=real(y)
2.置Y1=conj(Y)并将Y1的逆傅立叶变换存入Y1中,用real(y1)以确保y1是实的,用sound(y1,fs)将y1放出。
已知
的逆傅立叶变换是如何与
联系的,能解释刚才听到的是什么吗?
解:
loadsplat
y=y(1:
8192);
N=8192;
fs=8192;
sound(y,fs)
Y=fftshift(fft(y));
Y1=conj(Y);
y1=ifft(fftshift(Y1));
y=real(y1);
sound(y1,fs);
结果分析:
从听到的声音来看,y1和y2的声音反过来了,即y1开始时的声音是y2结束时的声音。
有傅立叶变换的奇偶虚实性:
Y(jw)的共厄是Y(-jw),
的逆傅立叶变换是y(-t),因此声音反过来了。
中等题
的CTFT可以用它的幅值和相位写成
式中
。
对于许多信号,单独用相位或幅值都能构造出一个有用的信号
的近似。
例如,考虑信号
和
,其CTFT为
3.只要
是实信号,用解析方法说明
和
一定是实的。
解:
因为
,当y(t)为实信号,则其傅立叶变换幅度谱和相位谱分别为偶、奇函数,幅度和相位的反傅立叶变换一定为实函数。
4.构造一个向量Y2等于Y的幅值,并将Y2的逆傅立叶变换存入向量y2中,用sound放出这个向量。
解:
代码如下:
loadsplat
y=y(1:
8192);
N=8192;
fs=8192;
sound(y,fs);
Y=fftshift(fft(y));
w=[-pi:
2*pi/N:
pi-pi/N]*fs;
Y2=abs(Y);
y2=ifft(fftshift(Y));
sound(y2,fs);
Y3=exp(angle(Y))
y3=ifft(fftshift(Y));
sound(y3,fs);
5.构造一个向量Y3,它有与Y相同的相位,但是幅值对每个频率都等于1。
并将Y3的逆傅立叶变换存入向量y3中,用sound放出这个向量。
解:
代码如下:
loadsplat
y=y(1:
8192);
N=8192;
fs=8192;
sound(y,fs);
Y=fftshift(fft(y));
w=[-pi:
2*pi/N:
pi-pi/N]*fs;
Y3=exp(angle(Y))
y3=ifft(fftshift(Y));
sound(y3,fs);
6.根据刚才听到的这两个信号,代表一个声音信号你认为傅立叶变换的那个部分是最关键的:
幅值或相位?
解:
从运行结果来看,两个声信号相位相同,副值不同,但听到的声音基本相同,代表一个声音信号傅立叶变换的相位更关键。
深入题
7.用向量y创建一个向量y4,它包含有本该以8192Hz从采样
所得到的样本。
解:
代码如下:
loadsplat
y=y(1:
8192);
N=8192;
fs=8192;
t=linspace(0,4*pi,N);
y=y(t);
y4=y(2*t);
sound(y,fs);
sound(y4,fs);
Y=fftshift(fft(y));
Y4=fftshift(fft(y4));
plot(Y,'r')
holdon;
plot(Y4)
8.用y4=sound(y4,fs)放出y4。
利用比较y4的傅立叶变换与y的傅立叶变换,能说明在高音上的变化吗?
信号压缩是如何影响它的傅立叶变换的?
设向量y5中包含在区间
内,在8192Hz对
采样所得的样本值。
解:
代码如下:
loadsplat
y=y(1:
8192);
N=8192;
fs=8192;
t=linspace(0,4*pi,N);
y5=y(t/2);
sound(y,fs);
sound(y5,fs);
Y=fftshift(fft(y));
plot(Y,'r')
holdon;
Y5=fftshift(fft(y5));
plot(Y5,'g')
结果分析:
y(t/2)的幅度是y(t)的两倍,而y(t)幅度又是y(2t)的两倍,傅立叶变换的尺度性质,F[f(at)]=F(w/a)/|a|,因此y(t/2)的幅度是y(t)两倍,y(t)幅度是y(2t)的两倍。
9.创建向量x,,它由下式给出
注意,x是一个长度为2*N的向量。
解:
10.利用函数filter完成在x上的线性内插。
这里要用到的线性内插器的单位冲激响应是h=[121]/2。
解:
代码如下:
N=8192;
y=y(1:
8192);
fs=8192;
t=linspace(0,4*pi,N);
y5=y(t/2);
forn=1:
2*N
ifmod(n,2)==0,x(n)=y5(n/2);
elsex(n)=0;
end
end
b=1;
h=[121]/2;
x1=filter(h,b,x);
11.用sound(y5,fs)放出y5。
用比较y5和y的傅立叶变换,能解释在音调上的变化吗?
解:
设y的傅立叶变换为F(w),y5的傅立叶变换为2F(2w),因而在音调上比y的傅立叶变换更高,变化更快
§4.3连续时间傅立叶变换的符号计算
目的
这个练习要对几个不同的信号求(4.2)连续时间傅立叶变换。
基本题
1.定义符号表达式x1和x2代表下面连续时间信号:
需要用函数Heaviside来表示单位阶跃函数
。
解:
代码如下:
x1=sym('0.5*exp(-2*t)*Heaviside(t)')
x2=sym('exp(-4*t)*Heaviside(t)')
2.对于1中所定义的
和
,用解析方法计算它们的CTFT在
的值,即
(不应该先求
来作这道题)CTFT在
的值是怎样与时域信号关联的?
解:
F1=int(0.5*exp(-2*t),0,inf)
F2=int(exp(-4*t),0,inf)
运行结果:
F1=1/4F2=1/4
结果分析:
由傅里叶正变换公式可知,当w=0时,频域在这点的值等于整个时域的积分,即f(t)与x轴面积等于F(0)
3.由1所定义的信号中,哪一个在时域衰减得更快?
根据这一点,你能预期在频域哪一个衰减得更快?
解:
由指数函数性质可知x2(t)相对x1(t)在时域上衰减更快,又因时域衰减性质与频域衰减性质相反,因此得x1(t)相对x2(t)在频域域上衰减更快
4.用函数fourier计算
和
得CTFT。
定义x1和x2是由fourier产生的符号表达式。
用ezplot产生
和
的幅值图。
这些图能对2和3中的答案进行确认吗?
解:
代码如下:
x1=sym('exp(-2*t)*Heaviside(t)/2');
x2=sym('exp(-4*t)*Heaviside(t)');
F1=fourier(x1)
F2=fourier(x2)
subplot(2,2,1)
ezplot(x1);
subplot(2,2,2)
ezplot(x2);
subplot(2,2,3)
ezplot(abs(F1));
subplot(2,2,4)
ezplot(abs(F2));
结果分析:
从上图可知,x2(t)相对x1(t)在时域上衰减更快,得x1(t)相对x2(t)在频域域上衰减更快
中等题
5.定义符号表达式y1代表下面连续时间信号:
它可以作为两个Heaviside函数之差。
解:
代码如下:
Symsty;
y=Heaviside(t-2)-Heaviside(t+2);
6.用解析方法求
的CTFT,
。
解:
代码如下:
symst;
symsw;
Y1=simple(int((Heaviside(t-2)-Heaviside(t+2))*exp(-j*w*t),t))
运行结果:
Y1=-2/w*sin(2*w)
7.定义符号表达式y2表示信号
。
你能像对y1那样用两个Heaviside函数之差来完成,或者恰当地对y1应用subs。
解:
y2=sym('Heaviside(t-4)-Heaviside(t)')
8.利用fourier求y1和y2的CTFT,并将它们存入Y1和Y2中。
倘若Y1不是你所期望得到的表达式,那么试试在所得表达式上用simple以便得出更为熟悉的形式。
解:
代码如下:
y1=sym('Heaviside(t-2)-Heaviside(t+2)')
Y1=simple(fourier(y1))
y2=sym('Heaviside(t-4)-Heaviside(t)')
Y2=simple(fourier(y2))
9.用ezplot产生
和
的幅值图。
比较这两张图情况如何?
由这两个信号在时域之间的关系能预测到这个结果吗?
解:
实验代码:
y1=sym('Heaviside(t-2)-Heaviside(t+2)')
Y1=fourier(y1)
y2=sym('Heaviside(t-4)-Heaviside(t)')
Y2=fourier(y2)
subplot(2,1,1);
ezplot(abs(Y1));
subplot(2,1,2);
ezplot(abs(Y2));
结果分析:
分析:
比较两张幅值图,可知两图一模一样,因为y2(t)是由y1(t)时移得到,这并不影响两者傅立叶变换后的幅度,而只是改变了相位。
10.下面几部分
的CTFT。
将
写成
和
两个信号之和。
将
选为因果信号,
选为反因果信号,即
。
用解析方法计算
的CTFT,
。
解:
symstw;
V=int(exp(-2*abs(t))*exp(-j*w*t),t,-inf,inf)
11.对在10中所定义的两个信号定义符号表达式v1和v2,然后用symadd或symop将它们合并成原信号
的符号表达式v。
解:
代码如下
v1=sym('exp(-2*t)*Heaviside(t)')
v2=sym('exp(2*t)*Heaviside(-t)')
v=v1+v2
运行结果:
v1=exp(-2*t)*Heaviside(t)
v2=exp(2*t)*Heaviside(-t)
v=exp(-2*t)*heaviside(t)+exp(2*t)*heaviside(-t)
结果分析:
可能和matlab版本有关,实验资料里的两个函数symadd、symop都不存在,但是可以直接将两个函数想加而进行连接
12.用fourier求v的CTFT的符号表达式V。
这个表达式等效于在10中用解析法求得的表达式吗?
解:
代码如下:
v1=sym('exp(-2*t)*Heaviside(t)')
v2=sym('exp(2*t)*Heaviside(-t)')
v=v1+v2
V=fourier(v)
运行结果:
V=4/(4+w^2)
结果分析:
这两个表达式虽然表达形式不同,但对10题中表达式化简通分后,与本题结果等效
深入题
13.定义f是信号
的符号表达式,用fourier定义F是f的CTFT的符号表达式。
注意,F中含有一个未被求值的积分。
这个未被求值的积分对所有
值都收敛吗?
解:
代码如下:
f=sym('exp(-a*t)*Heaviside(t)')
F=int(exp(-a*t)*Heaviside(t)*exp(-j*w*t),t,-inf,inf)
运行结果:
f=exp(-a*t)*Heaviside(t)
F=limit(-(exp(-a*t-i*w*t)-1)/(a+i*w),t=Inf)
结果分析:
这个未被求值的积分不是对所有a都收敛,
14.用subs设置F1中的
值等于5,然后在这个置换的结果应用simple。
所得结果是所期望的吗?
解:
代码如下:
f=sym('exp(-a*t)*Heaviside(t)')
F=int(exp(-a*t)*Heaviside(t)*exp(-j*w*t),t,-inf,inf);
F=subs(F,’5’,’a’);
F=subs(F)
运行结果:
F=1/(5+i*w)
实验总结:
通过这次实验,基本学会了将连续时间傅立叶变换进行数字近似,用函数fft(快速傅立叶算法)高效地计算这个近似值。
并且能够借助于在频域和时域分析与操作声音信号来加深理解连续时间傅立叶变换CTFT。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验四 连续时间傅立叶变换 实验 连续 时间 傅立叶 变换