实验一秋数字信号处理实验报告离散傅里叶变换的性质.docx
《实验一秋数字信号处理实验报告离散傅里叶变换的性质.docx》由会员分享,可在线阅读,更多相关《实验一秋数字信号处理实验报告离散傅里叶变换的性质.docx(29页珍藏版)》请在冰点文库上搜索。
![实验一秋数字信号处理实验报告离散傅里叶变换的性质.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/a5fbba41-67d3-4b8d-9cfb-57e5ecf4602d/a5fbba41-67d3-4b8d-9cfb-57e5ecf4602d1.gif)
实验一秋数字信号处理实验报告离散傅里叶变换的性质
数字信号处理
实验报告
实验名称:
离散傅里叶变换的性质
实验日期:
2011.11.23
姓名:
学号:
一、实验目的
验证离散傅里叶变换的性质,包括线性特性、时移特性、频移特性、对称性和循环卷积等性质。
二、实验原理
1.线性特性
2.时移特性
3.频移特性
4.对称性
设由x(n)开拓成的周期序列为
则
偶序列
奇序列
将
和
截取主周期,分别得
则
x(n)序列的实部和虚部的离散立叶变换
5.循环卷积
有限长序列线性卷积与循环卷积的关系
X1(n)和x2(n)的线性卷积:
将X1(n)和x2(n)开拓成以N为周期的周期序列
则它们的周期卷积为
X1(n)和x2(n)周期开拓后的周期卷积等于他们的线性卷积的的周期开拓。
三、实验内容和步骤
详细描述为完成实验内容所需的实验步骤,对程序中关键代码进行说明,该部分不是实验结果的简单堆砌,还应该包括对实验结果的分析和从实验中获得的基本认识。
任取长度为N=8的随机实序列x1[n],x2[n],例如x1[n]=[13536839],x2[n]=[24367902],和长度为N=8的随机复序列x3[n],x4[n],例如x3[n]=[1+2j3+4j5+3j3+4j6+j8+2j3+3j9+2j],x4[n]=[4+1j6+4j4+3j3+4j7+j8+3j3+4j1+2j],采用MATLAB编程验证傅里叶变换的如下性质
1.线性特性
a.给出序列x1[n]的傅里叶变换X1[k],并画出其幅度谱和相位谱
程序:
x1=[13536839];
fft_x1=fft(x1,8);
x_axis=[0:
1:
7];
stem(x_axs,x1,'.');
xlabel('n');title('时间序列');%%%%x1的时间序列%%%%
stem(x_axis,abs(fft_x1));gridon;
xlabel('频率k');ylabel('幅度');
title('幅度谱');%%%%x1幅度谱%%%%
stem(x_axis,angle(fft_x1));gridon;
xlabel('频率k');ylabel('相位');
title('相位谱');%%%%x1的相位谱%%%%
图形:
图一
b.给出序列x2[n]的傅里叶变换X2[k],并画出其幅度谱和相位谱
程序:
x2=[24367902];
fft_x2=fft(x2,8);
x_axis=[0:
1:
7];
stem(x_axs,x2,'.');
xlabel('n');title('时间序列');%%%%x2的时间序列%%%%
stem(x_axis,abs(fft_x2));gridon;
xlabel('频率k');ylabel('幅度');
title('幅度谱');%%%%x2幅度谱%%%%
stem(x_axis,angle(fft_x2));gridon;
xlabel('频率k');ylabel('相位');
title('相位谱');%%%%x2的相位谱%%%%
图形:
图二
c.给出序列Z=2*X1[k]+6*x2[k],并与序列2*x3[n]+6*x4[n]的傅里叶变换比较,
程序:
J=sqrt(-1);
x3=[1+2*J3+4*J5+3*J3+4*J6+1*J8+2*J3+3*J9+2*J];
x4=[4+1*J6+4*J4+3*J3+4*J7+1*J8+3*J3+4*J1+2*J];
x_sum=2*x3+6*x4;
fft_x_sum=fft(x_sum,8);%序列之和的FFT
fft_x3=fft(x3,8);
fft_x4=fft(x4,8);
stem(x_axis,abs(fft_x_sum));
title('序列之和的幅度谱');
stem(x_axis,angle(fft_x_sum));
title('序列之和的相位谱');
fft_sum=2*fft_x3+6*fft_x4;%序列FFT的和
stem(x_axis,abs(fft_sum),'k*');
title('序列DFT之和的幅度谱');
stem(x_axis,angle(fft_sum),'k*');
title('序列DFT之和的相位谱');
stem(x_axis,abs(fft_x_sum));holdon;
stem(x_axis,abs(fft_sum),'k.');
xlabel('频率k');ylabel('幅度');
title('幅度谱');
stem(x_axis,angle(fft_x_sum));holdon;
stem(x_axis,angle(fft_sum),'k.');
xlabel('频率k');ylabel('相位(弧度)');
title('相位谱');
图形:
序列之和的相位谱,幅度谱,以及序列DFT的幅度谱和相位谱。
图三
序列之和与序列对比图形曲线拟合
图四
说明:
*代表序列DFT的相位谱和幅度谱○表示序列之和的相位谱和幅度谱。
通过图四序列之和与序列DFT相位谱和幅度谱的对比可知序列Z=2*X1[k]+6*x2[k],与序列2*x3[n]+6*x4[n]的傅里叶变换相同,所以满足线性关系。
2.时移特性
a.给出序列x1[n]右移3位后的傅里叶变换的幅度谱和相位谱,并和原始序列的幅度谱和相位谱相比较
程序:
x1=[13536839];
x2=circshift(x1,[03]);%%%%右移三位%%%%
fft_x1=fft(x1,8);
fft_x2=fft(x2,8);
x_axis=[0:
1:
7];
figure(3);%%%原时间序列与循环移位时间序列见图五%%%
subplot(211);
stem(x_axis,x1,'.');
xlabel('n');title('原时间序列');
subplot(212);
stem(x_axis,x2,'.');
xlabel('n');title('移位后时间序列');
figure
(1);%%%循环移位后序列幅度谱与时间谱见图六%%%
subplot(211);
stem(x_axis,abs(fft_x2));gridon;
xlabel('频率k');ylabel('幅度');
title('X2幅度谱');
subplot(212);
stem(x_axis,angle(fft_x2));gridon;
xlabel('频率k');ylabel('相位');
title('X2相位谱');
figure
(2);%%%循环移位序列和原始序列的幅度谱和相位谱相比较
subplot(211);
stem(x_axis,abs(fft_x1),'k*');gridon;holdon;
stem(x_axis,abs(fft_x2));gridon;
xlabel('频率k');ylabel('幅度');
title('X1andX2幅度谱对比');
subplot(212);
stem(x_axis,angle(fft_x1),'k*');gridon;holdon;
stem(x_axis,angle(fft_x2));gridon;
xlabel('频率k');ylabel('相位');
title('X1andX2相位谱对比');
图五
图六
图七
说明:
*代表原序列○代表循环移位后序列
结论:
通过图七对比可知原序列和循环移位后序列幅度谱相同,但相位谱不同。
3.频移特性
程序:
x1=[13536839];
num=[2-3];%%%%%%右移两位,左移三位%%%%%%%%%%%%%
fork=1:
2
ford=1:
8
x2(d)=x1(d).*exp(j.*2.*pi.*num(k).*d./8);
end
x_axis=[0:
1:
7];
fft_x1=fft(x1,8);
fft_x2=fft(x2,8);
figure
subplot(221);
stem(x_axis,abs(fft_x1));gridon;
xlabel('频率khz');ylabel('幅度');
title('原序列幅度谱');
subplot(222);
stem(x_axis,angle(fft_x1));gridon;
xlabel('原序列频率khz');ylabel('相位');
title('原序列相位谱');
subplot(223);
stem(x_axis,abs(fft_x2));gridon;
xlabel('频率khz');ylabel('幅度');
title('移位后幅度谱');
subplot(224);
stem(x_axis,angle(fft_x2));gridon;
xlabel('频率khz');ylabel('相位');
title('移位后相位谱');
end
说明:
x1原序列x2移位后序列
图形:
图八.右移二位序列
图九.左移三位序列
4.对称性
利用x1[n]构造奇对称序列和偶对称序列,讨论如下问题
(a)画出奇对称序列的傅里叶变换的实部和虚部
程序:
x1=[13536839];
N=length(x1);
x2
(1)=x1
(1);
fori=2:
N
x2(i)=x1(N+2-i);
end
x1_e=(x1+x2)/2;%%%%构造奇偶序列
x1_o=(x1-x2)/2;
fft_x1_e=fft(x1_e);
fft_x1_o=fft(x1_o);
n_axis=[0:
1:
7];
%%%奇对称序列的傅里叶变换的实部和虚部%%%%
figure
(1);
subplot(2,1,1);
stem(n_axis,real(fft_x1_o));gridon;
title('奇对称序列实部');
subplot(2,1,2);
stem(n_axis,imag(fft_x1_o));gridon;
title('奇对称序列虚部');
图十
(b)画出该偶对称序列的傅里叶变换的实部和虚部
程序:
%%%%%%偶对称序列的傅里叶变换的实部和虚部%%%%%%%%%%%%%
figure
(2);
subplot(2,1,1);
stem(n_axis,real(fft_x1_e));gridon
title('偶对称序列实部');
subplot(2,1,2);
stem(n_axis,imag(fft_x1_e));gridon;
title('偶对称序列虚部');
图十一
结论:
有上图可知,一个偶对称序列的DFT为实数,奇对称序列的DFT为虚数,
同样对于一个共轭对称的复数序列的DFT为实数,共轭反对称的复数序列的DFT为虚数。
(2)当x(n)为复序列时,推导傅里叶变换公式,利用x3[n]构造奇对称序列和偶对称序列,讨论如下问题
(c)画出共轭对称序列的傅里叶变换的实部和虚部
(d)画出共轭反对称序列的傅里叶变换的实部和虚部
程序:
x1=[1+2j3+4j5+3j3+4j6+j8+2j3+3j9+2j];
N=length(x1);
x2
(1)=x1
(1);
fori=2:
N
x2(i)=x1(N+2-i);
end
xe=(x1+conj(x2))/2;
xo=(x1-conj(x2))/2;
n=0:
N-1;
Xo=fft(xo);
Ro=real(Xo);
Io=imag(Xo);
figure
(1),
subplot(2,2,1),stem(n,Ro,'r*');title('共轭反对称序列的频谱实部');
subplot(2,2,2),stem(n,Io,'r*');title('共轭反对称序列的频谱虚部');
Xe=fft(xe);
Re=real(Xe);
Ie=imag(Xe);
subplot(2,2,3),stem(n,Re,'r*');title('共轭对称序列的频谱实部');
subplot(2,2,4),stem(n,Ie,'r*');title('共轭对称序列的频谱虚部');
图十二
(e)总结奇对称和偶对称的实数序列和复数序列的傅里叶变换性质
偶对称序列的傅里叶变换频谱实部偶对称,虚部为零;幅度谱偶对称,相位谱也为偶对称。
共轭对称序列的频谱虚部为零,相位谱为偶对称;共轭反对称序列的实部为零。
奇对称序列的傅里叶变换频谱实部为零,虚部奇对称;幅度谱偶对称,相位谱奇对称。
5.循环卷积
1)计算序列x1[n]和x2[n]的循环卷积y[n],计算x1[n]和x2[n]的傅里叶变换X1[k]和
X2[k],Y[k]=X1[k]*X2[k],求Y[k]的反傅里叶变换y2[n],比较y[n]与y2[n].
y[n]=[170175178143161115154158]
y[n]=y2[n]
程序:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%快速卷积即为圆周卷积,与线性卷积相比计算速度大大加快
%快速卷积长度L>=N1+N2-1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x1=[13536839];
x2=[24367902];
M=length(x1);
N=length(x2);
x10=[x1,zeros(1,N-1)];%%%扩充至8+7=15点序列
x20=[x2,zeros(1,M-1)];
X10=fft(x10);
X20=fft(x20);
Y=X10.*X20;
y=ifft(Y);%%反傅里叶变换得快速卷积序列15点
y1=conv(x1,x2);%%直接卷积
%%%确定x轴长度
m=0:
length(x1)-1;
n=0:
length(x2)-1;
ny=0:
length(y)-1;
figure
(1),
subplot(2,2,1),stem(m,x1,'r*');title('序列1');
subplot(2,2,2),stem(n,x2,'r*');title('序列2');
subplot(2,2,3),stem(ny,y,'r*');title('快速卷积');
subplot(2,2,4),stem(ny,y1,'r*');title('直接卷积');
图十三
结论:
%快速卷积即为圆周卷积,与线性卷积相比计算速度大大加快
%快速卷积长度L>=N1+N2-1
2)循环卷积和线性卷积的关系
a.x5=[13118552]x6=[2468]求x5,x6线性卷积y1(n);令L=8,求x5,x6的L
点循环卷积y2(n);比较y1(n),y2(n)的不同。
b.L=7+4-1,重复a
c.L>7+4-1,重复a
程序:
clearall;
x5=[13118552];
x6=[2468];
y1=conv(x5,x6);
ny=0:
length(y1)-1;
figure
(1),
subplot(2,2,1),stem(ny,y1,'r*');title('线性卷积');
Narray=[81012];
fori=1:
3
N=Narray(i);
x=[x5,zeros(1,N-length(x5))];%将x的长度扩展至N
h=[x6,zeros(1,N-length(x6))];%将h的长度扩展至N
m=[0:
N-1];
hm=h(mod(-m,N)+1);%将h循环折叠
H=toeplitz(hm,[0,h(2:
N)]);%用toeplitz函数产生循环卷积矩阵
y=x*H;%用向量-矩阵乘法求卷积
ny2=0:
length(y)-1;
figure
(1),
subplot(2,2,i+1),stem(ny2,y,'r*');title('循环卷积');
end
图十四
结论
L点圆周卷积是线性卷积以L为周期的周期延拓序列的主值序列
若L>=N1+N2-1,则L点圆周卷积能代替线性卷积
6.补零
用MATLAB计算如下N点序列的M点DFT:
(1)取N=8,M=8
(2)取N=8,M=16
(3)取N=8,M=32
根据实验结果,分析延长序列的离散傅里叶变换的特点。
程序:
clearall;
N=8;
M1=8;
M2=16;
M3=24;
x1=ones(1,N);
x2=[x1,zeros(1,M1)];
x3=[x1,zeros(1,M2)];
x4=[x1,zeros(1,M3)];
X1=fft(x1);
X2=fft(x2);
X3=fft(x3);
X4=fft(x4);
RX1=real(X1);
IX1=imag(X1);
MX1=abs(X1);
phaseX1=atan2(IX1,RX1);%angle(X);
RX2=real(X2);
IX2=imag(X2);
MX2=abs(X2);
phaseX2=atan2(IX2,RX2);%angle(X);
RX3=real(X3);
IX3=imag(X3);
MX3=abs(X3);
phaseX3=atan2(IX3,RX3);%angle(X);
RX4=real(X4);
IX4=imag(X4);
MX4=abs(X4);
phaseX4=atan2(IX4,RX4);%angle(X);
m=0:
length(x1)-1;
n=0:
length(x2)-1;
k=0:
length(x3)-1;
l=0:
length(x4)-1;
figure
(1),
subplot(2,4,1),stem(m,MX1,'r*');title('原序列的幅度谱');
subplot(2,4,2),stem(n,MX2,'r*');title('补N个零后序列的幅度谱');
subplot(2,4,3),stem(k,MX3,'r*');title('补2N个零后序列的幅度谱');
subplot(2,4,4),stem(l,MX4,'r*');title('补4N个零后序列的幅度谱');
subplot(2,4,5),stem(m,phaseX1,'r*');title('原序列的相位谱');
subplot(2,4,6),stem(n,phaseX2,'r*');title('补N个零后序列的相位谱');
subplot(2,4,7),stem(k,phaseX3,'r*');title('补2N个零后序列的相位谱');
subplot(2,4,8),stem(l,phaseX4,'r*');title('补4N个零后序列的相位谱');
图十四
结论;
由图可知点数越多幅度谱和相位谱越密集说明,随着序列长度的增加分辨率越高。
7.采样时间对频率分辨的影响
构造两个正弦信号相加f1=100Hz,f2=105Hz,
x(t)=3*cos(2*pi*f1*t)+1*cos(2*pi*f2*t)
a.以采样频率fs=800Hz对x(t)采样得到x(n),采样的持续时间100ms,求x(n)的512点DFT
b.以采样频率fs=1600Hz对x(t)采样得到x(n),采样的持续时间100ms,求x(n)的512点DFT
c.延长采样时间为300ms,求x(n)的512点DFT
clc,clearall,closeall;
F1=100;%Hz;
F2=105;%Hz
Fs=800;%采样频率Hz
Ts=1/Fs;
A1=3;%信号1的幅度
A2=2;%信号2的幅度
L=512;%DFT长度
freq_axis=([0:
512-1]-256)*Fs/512;
T1=100e-3;%采样时间100ms
t_axis1=[0:
Ts:
T1-Ts];
N1=length(t_axis1);%采样时间内采到的样本总数
x1=A1*cos(2*pi*F1*t_axis1)+A2*cos(2*pi*F2*t_axis1);
figure
(1);
subplot(3,1,1);
plot(x1);title(['采样时间='num2str(T1)'采样频率='num2str(Fs)]);
T2=100e-3;
Fs2=1600;
Ts2=1/Fs2;
t_axis2=[0:
Ts2:
T2-Ts2];
N2=length(t_axis2);%采样时间内采到的样本总数
x2=A1*cos(2*pi*F1*t_axis2)+A2*cos(2*pi*F2*t_axis2);
subplot(3,1,2)
plot(x2);title(['采样时间='num2str(T2)'采样频率='num2str(Fs2)]);
T3=300e-3;
t_axis3=[0:
Ts:
T3-Ts];
N3=length(t_axis3);%采样时间内采到的样本总数
x3=A1*cos(2*pi*F1*t_axis3)+A2*cos(2*pi*F2*t_axis3);
subplot(3