典型序列频谱分析.docx
- 文档编号:26096668
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:154.67KB
典型序列频谱分析.docx
《典型序列频谱分析.docx》由会员分享,可在线阅读,更多相关《典型序列频谱分析.docx(15页珍藏版)》请在冰豆网上搜索。
典型序列频谱分析
第1章设计任务与要求
1.1对于三种典型序列------单位采样序列、实指数序列、矩形序列
要求:
(1)画出以上序列的时域波形图;
(2)求出以上序列的傅里叶变换;(3)画出以上序列的幅度谱及相位谱,并对相关结果予以理论分析;(4)对以上序列分别进行时移,画出时移后序列的频谱图,验证傅里叶变换的时移性质;(5)对以上序列的频谱分别进行频移,求出频移后频谱所对应的序列,并画出序列的时域波形图,验证傅里叶变换的频移性质。
1.2自行设计一个周期序列
要求:
(1)画出周期序列的时域波形图;
(2)求周期序列的DFS,并画出幅度特性曲线;(3)求周期序列的FT,并画出幅频特性曲线;(4)比较DFS和FT的结果,从中可以得出什么结论。
第2章原理及过程
1设计原理
运用Matlab及相关软件,对三种典型序列进行频谱分析,得到并验证相应的结果。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
[1]
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连
接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
利用傅里叶变换的方法对振动的信号进行分解,并按频率顺序展开,使其成为频率的函数,进而在频率域中对信号进行研究和处理的一种过程,称为频谱分析。
将信号在时间域中的波形转变为频率域的频谱,进而可以对信号的信息作定量解释。
对信号进行频谱分析,是对其进行傅里叶变换,得到其振幅谱与相位谱。
分析软件主要为Matlab。
对于信号来说,分模拟信号与数字信号。
进行频谱分析时,对于模拟信号来说,首先对其进行抽样,使其离散化,然后利用离散傅里叶变换(DFT)或者快速傅里叶变换(FFT),然后对其幅度(ABS)和相位(ANGLE)的图像进行分析,而对于数字信号来说,则可直接进行离散傅里叶变换或快速傅里叶变换
第3章设计容
1.1单位采样序列
1.1.1时域波形
程序:
n=-5:
10;
y=[zeros(1,5),1,zeros(1,10)];
stem(n,y)
axis([-5,10,0,2]);
title('单位取样序列')
图1
1.2傅里叶变换
程序:
clear
clc
%%输入信号
n=-5:
10;%时域信号的时间围
x=[zeros(1,5),1,zeros(1,10)];%时域信号x
w=[0:
1e-2:
2];%想要观察的频率围
%%预定义
y=w;
a=w;
j=sqrt(-1);%先定义变量维度,提高运算速度
%%计算频点
fori=1:
length(w)
f=trapz(n,x.*exp(-j*w(i)*n));
y(i)=abs(f);
a(i)=angle(f);
end
%%输出
subplot(3,1,1),
plot(n,x)
subplot(3,1,2),
plot(w,y)
subplot(3,1,3),
plot(w,a)
图2
1.3幅度谱及相位谱
n=1:
50;%定义序列的长度是50
x=zeros(1,50);%注意:
MATLAB中数组下标从1开始
x
(1)=1;
closeall;
subplot(3,1,1);stem(x);title('单位冲击信号序列');
k=-25:
25;
X=x*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);%绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱');
angX=angle(X);%绘制x(n)的相位谱
subplot(3,1,3);stem(angX);title('单位冲击信号的相位谱');
图3
1.4频移
程序:
fs=256;N=256;%采样频率和数据点数
n=0:
N-1;t=n/fs;%时间序列
f=20;%定义信号中心频率(hz)
x=[zeros(1,5),1,zeros(1,10)];%信号
%程序区
y1=fft(x,N);%对信号进行快速Fourier变换
y2=fftshift(y1);
mag2=abs(y2);
f1=n*fs/N;%频率序列
f2=n*fs/N-fs/2;%shift后频率序列
subplot(4,1,1),plot(f2,mag2,'r');%绘出随频率变化的振幅
图4
1.5时移
程序N=50;
n=0:
N-1;M=20;
xn=[1zeros(1,N)];
nm=mod((n-M),N);
xm=xn(nm+1);
subplot(3,1,1),stem(xm);
title('|X(k)|');
k=-25:
25;
X=x*(exp(-j*pi/25)).^((nm)'*k);
magX=abs(X);%绘制x(m)的幅度谱
subplot(3,1,2);stem(magX);title('矩形序列的幅度谱');
angX=angle(X);%绘制x(m)的相位谱
subplot(3,1,3);stem(angX);title('矩形序列相位谱');
图5
2.1时域图形
程序:
n=-5:
10;
y=[zeros(1,5),ones(1,5),zeros(1,6)];
plot(n,y)
stem(n,y)
axis([-5,10,0,2]);
title('矩形序列');
图6
2.2傅里叶变换
程序:
clear
clc
%%输入信号
n=-5:
10;%时域信号的时间围
x=[zeros(1,5),1,zeros(1,10)];%时域信号x
w=[0:
1e-2:
2];%想要观察的频率围
%%预定义
y=w;
a=w;
j=sqrt(-1);%先定义变量维度,提高运算速度
%%计算频点
fori=1:
length(w)
f=trapz(n,x.*exp(-j*w(i)*n));
y(i)=abs(f);
a(i)=angle(f);
end
%%输出
subplot(3,1,1),
plot(n,x)
subplot(3,1,2),
plot(w,y)
subplot(3,1,3),
plot(w,a)
图7
2.3幅度谱与相位谱
程序:
n=1:
50;
x=sign(sign(10-n)+1);
closeall;
subplot(3,1,1);stem(x);title('矩形信号序列');
k=-25:
25;
X=x*(exp(-j*pi/25)).^(n'*k);
magX=abs(X);%绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title('矩形序列的幅度谱');
angX=angle(X);%绘制x(n)的相位谱
subplot(3,1,3);stem(angX);title('矩形序列相位谱');
图8
2.4频移
程序:
fs=256;N=256;%采样频率和数据点数
n=0:
N-1;t=n/fs;%时间序列
f=20;%定义信号中心频率(hz)
x=[zeros(1,5),ones(1,5),zeros(1,6)];%信号
%程序区
y1=fft(x,N);%对信号进行快速Fourier变换
y2=fftshift(y1);
mag2=abs(y2);
f1=n*fs/N;%频率序列
f2=n*fs/N-fs/2;%shift后频率序列
subplot(4,1,1),plot(f2,mag2,'r');%绘出随频率变化的振幅
图9
2.5时移
程序:
N=50;
n=0:
N-1;M=20;
xn=sign(sign(10-n)+1);
nm=mod((n-M),N);
xm=xn(nm+1);
subplot(3,1,1),stem(xm);
title('|X(k)|');
k=-25:
25;
X=x*(exp(-j*pi/25)).^((nm)'*k);
magX=abs(X);%绘制x(m)的幅度谱
subplot(3,1,2);stem(magX);title('矩形序列的幅度谱');
angX=angle(X);%绘制x(m)的相位谱
subplot(3,1,3);stem(angX);title('矩形序列相位谱');
图10
4.1幅度特性曲线
程序:
n=1:
50;%定义序列的长度是50
x=sin(pi*n);%注意:
MATLAB中数组下标从1开始
closeall;
subplot(3,1,1);stem(x);title('单位冲击信号序列');
k=-25:
25;
X=x*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);%绘制x(n)的幅度谱
subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱');
angX=angle(X);%绘制x(n)的相位谱
subplot(3,1,3);stem(angX);title('单位冲击信号的相位谱');
图15
4.4周期序列的DFS
程序:
n=0:
9;
k=[0:
1:
9];
x=sin(5*pi*n);
WN=exp(-j*2*pi/9);
nk=n'*k;
WNnk=WN.^nk;
Xk=x*WNnk;
xlabel('Xk')
4.5傅里叶变换
程序:
fs=100;%设定采样频率
N=128;
n=0:
N-1;
t=n/fs;%设定正弦信号频率
%生成正弦信号
x=sin(pi*t);
figure
(1);
subplot(231);
plot(t,x);%作正弦信号的时域波形
xlabel('t');
ylabel('y');
title('正弦信号y=2*pi*10t时域波形');
grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:
length(y)-1)'*fs/length(y);%进行对应的频率转换
figure
(1);
subplot(232);
plot(f,mag);%做频谱图
axis([0,100,0,80]);
xlabel('频率(Hz)');
ylabel('幅值');
title('正弦信号y=2*pi*10t幅频谱图N=128');
图16
第4章心得与体会
这次的课设设计对我来说时间是比较紧促的,但是门课程是一门动手能力要求很高的课程,需要很多实践操作才能真正的去掌握它,这次的课程设计为我提供了很好的机会。
通过这次的课程设计,我学到了很多,同时也让我了解了自己的不足之处,要掌握好一门课程,仅仅靠死记硬背是不行的,特别是对学工科的我们来说,实践操作尤为重要,我们应该重视它,它是检验我们我们学习知识是否牢固的重要途径。
参考文献
[1]高西全,丁玉美...数字信号处理..电子科技大学,2008,第3版
[2]泉,阙大顺...数字信号处理原理与实现..电子工业,2005
[3]之劲,顺兰...数字信号处理实验..大学,2007
[4]威...Matlab基础与编程入门..电子科技大学,2006
[5]怀探...数字信号处理教程--Matlab释义与实现..电子工业,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 典型 序列 频谱 分析