信号与系统matlab综合实验第四章傅里叶变换.doc
文本预览下载声明
如图4.4所示锯齿波信号,分别取一个周期的抽样数据X1(t),0=t=1和五个周期的数据X(t),0=t5,计算其傅立叶变换X1(w)和X(w),比较有和不同并解释原因。
图4.4 练习题2图
编程如下:
%计算单位锯齿波和五个周期波形的傅立叶变换
%数值算法用矩阵实现,大大加快了运行速度;并且直接调用“sawtooth”生成5个周期的锯齿波
T1=1; %单个周期时域范围
N1=10000; %时域抽样点数
t1=linspace(0,T1-T1/N1,N1); %生成抽样时间点
f1=1-2*t1; %生成抽样函数值
OMG=32*pi; %频域范围
K1=100; %频域抽样点数
omg=linspace(-OMG/2,OMG/2-OMG/K1,K1); %生成抽样频率点
X1=T1/N1*exp(-j*kron(omg,t1.))*f1; %傅里叶正变换求解傅里叶系数
fs1=OMG/2/pi/K1*exp(j*kron(t1,omg.))*X1; %傅里叶逆变换还原时域函数
T2=5; %五个周期时域范围
N2=10000; %时域抽样点数
t2=linspace(0,T2-T2/N2,N2); %生成抽样时间点
fs2=0*t2;
f2=sawtooth(t2*2*pi,0); %生成五个周期的锯齿波
X2=T2/N2*exp(-j*kron(omg,t2.))*f2; %傅里叶正变换求解傅里叶系数
fs2=fs2+OMG/2/pi/K1*exp(j*kron(t2,omg.))*X2; %傅里叶逆变换还原时域函数
figure; %生成一个2*2矩阵子图
subplot(2,2,1);
plot(omg,abs(X1),r); %一个周期时的频谱图
xlabel(Frequency),ylabel(Amplitude)
title(单个锯齿周期幅频特性曲线);
subplot(2,2,2);
plot(t1,fs1,r); %还原的时域函数
xlabel(Time),ylabel(Amplitude)
title(Function after recovered);
subplot(2,2,3);
plot(omg,abs(X2),r); %五个周期时的频谱图
xlabel(Frequency),ylabel(Amplitude)
title(五个锯齿周期幅频特性曲线);
subplot(2,2,4);
plot(t2,fs2,r); %还原的时域函数
xlabel(Time),ylabel(Function after recovered)
title(Function after recovered);
阅读两函数后不难发现,其实就是改变了linspace的范围。
t=linspace(0,T-T/N,N);
t=linspace(0,5*(T-T/N),N);
相关曲线:
请编写函数F=fsana(t,f,,N),计算周期信号f的前N个指数形式的傅立叶级数系数,t表示f对应的抽样时间(均为一个周期);再编写函数f=fssyn(F,t),由傅立叶级数系数F合成抽样时间t对应的函数。设计信号验证这两个是否正确。
编程如下:
编写fsana函数:
function F=fsana(t,f,N) %函数功能:定义一个功能函数来计算周期信号f的前N个指数形式的傅立叶级数系数 , t表示f的抽样时间, f为一个周期内抽样函数值 , N为前几个指数形式的傅立叶级数系数.
omg1=2*pi/(max(t)-min(t));
k=[-N:N]; %系数是双边的
F=1/length(t)*exp(-
显示全部