3.2 离散信号的频域分析(20180402)
- 格式:ppt
- 大小:3.06 MB
- 文档页数:62
离散⾮周期信号频域分析离散信号频域分析、快速傅⾥叶变换与采样定理⼀、离散信号频域分析(⼀)周期离散⽅波信号频域分析与周期模拟信号⼀样,周期离散信号同样可以展开成傅⾥叶级数形式,并得到离散傅⾥叶级数(DFS)上式可以看成周期离散信号x(n)的离散傅⾥叶级数展开。
上式是DFS的反变换,记作IDFS并且称错误!未找到引⽤源。
与错误!未找到引⽤源。
构成⼀对离散傅⾥叶级数变换对。
(以上两式中错误!未找到引⽤源。
)在MTALAB中,DFS通过建⽴周期延拓函数语句实现:function Xk=DFS(n,x,N)if N>length(x)n=0:N-1;x=[x zeros(1,N-length(x))];endk=0:N-1;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=x*WNnk;end建⽴⼀个离散⾮周期⽅波信号错误!未找到引⽤源。
通过周期延拓后所得的周期序列利⽤DFS计算实现代码如下:clear all;close all;clc;n=0:3;x=ones(1,4);X=fft(x,1024);Xk1=DFS(n,x,4);Xk2=DFS(n,x,8);figure(1);plot((-1023:2048)/2048*8,[abs(X) abs(X) abs(X)],'--');hold on;stem(-4:7,[abs(Xk1) abs(Xk1) abs(Xk1)],'LineWidth',2);grid;figure(2);plot((-1023:2048)/2048*16,[abs(X) abs(X) abs(X)],'--');hold on;stem(-8:15,[abs(Xk2) abs(Xk2) abs(Xk2)],'LineWidth',2);grid;set(gcf,'color','w');运⾏后得到的是分别以4和8为周期延拓后的错误!未找到引⽤源。
实验三:离散时间信号的频域分析一.实验目的1.在学习了离散时间信号的时域分析的基础上,对这些信号在频域上进行分析,从而进一步研究它们的性质.2.熟悉离散时间序列的3种表示方法:离散时间傅立叶变换(DTFT),离散傅立叶变换(DFT)和Z变换.二.实验相关知识准备1.用到的MATLAB命令运算符和特殊字符:〈 > 。
* ^ .^语言构造与调试:error function pause基本函数:angle conj rem数据分析和傅立叶变换函数:fft ifft max min工具箱:freqz impz residuez zplane三.实验内容1.离散傅立叶变换在MATLAB中,使用fft可以很容易地计算有限长序列x[n]的离散傅立叶变换。
此函数有两种形式:y=fft(x)y=fft(x,n) 求出时域信号x的离散傅立叶变换n为规定的点数,n的默认值为所给x的长度。
当n取2的整数幂时变换的速度最快。
通常取大于又最靠近x的幂次。
(即一般在使用fft函数前用n=2^nextpow2(length(x))得到最合适的n)。
当x的长度小于n时,fft函数在x的尾部补0,以构成长为n点数据。
当x的长度大于n时,fft函数将序列x截断,取前n点。
一般情况下,fft求出的函数多为复数,可用abs及angle分别求其幅度和相位。
注意:栅栏效应,截断效应(频谱泄露和谱间干扰),混叠失真例3-1: fft函数最通常的应用是计算信号的频谱。
考虑一个由100hz和200hz正弦信号构成的信号,受零均值随机信号的干扰,数据采样频率为1000hz。
通过fft函数来分析其信号频率成分。
t=0:0.001:1;%采样周期为0。
001s,即采样频率为1000hzx=sin(2*pi*100*t)+sin(2*pi*200*t)+1。
5*rand(1,length(t));%产生受噪声污染的正弦波信号subplot(2,1,1);plot(x(1:50));%画出时域内的信号y=fft(x,512);%对x进行512点的fftf=1000*(0:256)/512;%设置频率轴(横轴)坐标,1000为采样频率subplot(2,1,2);plot(f,y(1:257));%画出频域内的信号实验内容3-2:频谱泄漏和谱间干扰假设现有含有三种频率成分的信号x(t)=cos(200πt)+sin(100πt)+cos(50πt)用DFT分析x(t)的频谱结构。
信息科学与工程学院《信号与系统》实验报告四专业班级电信 09-班姓名学号实验时间 2011 年月日指导教师陈华丽成绩实验名称离散信号的频域分析实验目的1. 掌握离散信号谱分析的方法:序列的傅里叶变换、离散傅里叶级数、离散傅里叶变换、快速傅里叶变换,进一步理解这些变换之间的关系;2. 掌握序列的傅里叶变换、离散傅里叶级数、离散傅里叶变换、快速傅里叶变换的Matlab实现;3. 熟悉FFT算法原理和FFT子程序的应用。
4. 学习用FFT对连续信号和离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
实验内容1.对连续信号)()sin()(0tutAetx taΩα-=(128.444=A,πα250=,πΩ250=)进行理想采样,可得采样序列50)()sin()()(0≤≤==-nnunTAenTxnx nTaΩα。
图1给出了)(txa的幅频特性曲线,由此图可以确定对)(txa采用的采样频率。
分别取采样频率为1KHz、300Hz和200Hz,画出所得采样序列)(nx的幅频特性)(ωj eX。
并观察是否存在频谱混叠。
图1 连续信号)()sin()(0tutAetx taΩα-=2. 设)52.0cos()48.0cos()(nnnxππ+=(1)取)(nx(100≤≤n)时,求)(nx的FFT变换)(kX,并绘出其幅度曲线。
(2)将(1)中的)(nx以补零方式加长到200≤≤n,求)(kX并绘出其幅度曲线。
(3)取)(nx(1000≤≤n),求)(kX并绘出其幅度曲线。
(4)观察上述三种情况下,)(nx的幅度曲线是否一致?为什么?3. (1)编制信号产生子程序,产生以下典型信号供谱分析用。
11,03()8,470,n nx n n nn+≤≤⎧⎪=-≤≤⎨⎪⎩其它2()cos4x n nπ=3()sin8x n nπ=4()cos8cos16cos20x t t t tπππ=++10.80.60.40.20100200300400500xa(jf)f /Hz(2)对信号1()x n ,2()x n ,3()x n 进行两次谱分析,FFT 的变换区间N 分别取8和16,观察两次的结果是否一致?为什么?(3)连续信号4()x n 的采样频率64s f Hz =,16,32,64N =。
离散时间信号和系统的频域分析离散时间信号与系统是研究数字信号与系统的频域分析,其中离散时间信号是对连续时间信号进行采样得到的,而离散时间系统是对连续时间系统进行离散化得到的。
频域分析是对信号与系统在频率域上的特性进行研究和分析。
对于离散时间信号,其离散化的过程是将连续时间信号在时间轴上进行均匀采样,得到指定的采样间隔,得到离散时间序列。
在频域上,其频谱是周期性的,并且频谱是以单位圆为单位周期的。
频域分析的目的是研究离散时间信号在频率域上的特性,包括频谱范围、频率分辨率、功率谱密度等。
离散时间信号的频域分析可以通过离散时间傅里叶变换(DTFT)来实现。
DTFT是信号在频域上的完全变换,将一个离散时间信号映射到一个连续的频率域函数。
DTFT是一个复数函数,表示信号在不同频率上的振幅和相位。
频谱的振幅可以表示信号在该频率上的能量大小,相位可以表示信号在该频率上的相对位置。
除了DTFT之外,还可以使用离散傅里叶变换(DFT)进行频域分析。
DFT是DTFT的一种计算方法,可以将离散时间信号转换为有限的频域信号。
DFT的计算是通过对离散时间信号进行有限长的时间窗口进行采样,并进行频域变换得到的。
DFT的结果是一个离散的频域信号,也称为频谱。
DFT通常使用快速傅里叶变换(FFT)算法来快速计算。
离散时间系统的频域分析主要是通过系统的频率响应函数来实现。
频率响应函数是系统在不同频率上对信号的响应情况的描述。
对于线性时不变系统,其频率响应函数是系统的传递函数的傅里叶变换。
频率响应函数拥有类似信号的频谱特性,可以描述系统对不同频率的信号的增益和相位。
频域分析在离散时间信号与系统中有着广泛的应用。
首先,频域分析可以帮助我们理解信号的频率构成和能量分布情况,有助于对信号进行合理的处理和分析。
其次,频域分析可以快速计算离散时间系统的响应,能够有效地评估系统的性能和稳定性。
此外,频域分析还可以进行滤波器设计、信号压缩、信号重构等应用。
实验名称:离散时间信号的频域分析一、实验目的1.对离散信号和系统在频域中进行分析,可以进一步研究它们的性质。
学会通过matlab,对离散时间序列的三种表示方法:离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和Z变换。
二、实验内容1、修改程序P3.1,计算如下有限长序列的离散时间傅里叶变换:g[n]=[1357911131517]并重做习题Q3.2。
讨论你的结果。
你能解释相位谱中的跳变吗?2、选取两个改变了长度的序列以及两个不同的时移值,重做习题Q3.73、编写一个MATLAB程序,用一个N点复数离散傅里叶变换计算两个长度为N的实数序列的N点离散傅里叶变换,并将结果同直接使用两个N点离散傅里叶变换得到的结果进行比较。
4、选取两个不同的时移量,重做习题Q3.335、选取两个不同长度的序列,重做习题Q.336、选取另外两组等长序列重做习题Q3.36三、主要算法与程序1、w=-4*pi:8*pi/511:4*pi;num=[1357911131517];den=[1];h=freqz(num,den,w);%Plot the DTFTsubplot(2,2,1)plot(w/pi,real(h));gridtitle('H(e^{j\omega})的实部')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,2)plot(w/pi,imag(h));gridtitle('H(e^{j\omega})的虚部')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,3)plot(w/pi,abs(h));gridtitle('|H(e^{j\omega})|幅度谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,4)plot(w/pi,angle(h));gridtitle('[H(e^{j\omega})]相位谱')xlabel('\omega/\pi');ylabel('以弧度为单位的相位');2、(1)序列为[9123456789],时移为30; %离散时间傅立叶变换的时移性质clf;w=-pi:2*pi/255:pi;wo=0.4*pi;D=30;num=[9123456789];h1=freqz(num,1,w);h2=freqz([zeros(1,D)num],1,w);subplot(2,2,1)plot(w/pi,abs(h1));gridtitle('原序列的幅度谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,2)plot(w/pi,abs(h2));gridtitle('时移D=30后序列的幅度谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,3)plot(w/pi,angle(h1));gridtitle('原序列的相位谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,4)plot(w/pi,angle(h2));gridtitle('时移D=30后序列的相位谱')xlabel('\omega/\pi');ylabel('振幅');(2)序列为[12345678910],时移为50;D=50;num=[12345678910];3、clf;g=[1124];h=[2321];x=g+i*h;N=length(x)-1;n=0:N;gk=fft(g);hk=fft(h);xk=fft(x);xk1=fft(conj(x));gk1=(xk+xk1)/2;hk1=(xk-xk1)/2i;subplot(4,2,1)stem(n,abs(gk));gridtitle('实部序列gk的离散傅里叶变换的幅度')xlabel('时间序号n');ylabel('振幅');subplot(4,2,2)stem(n,abs(hk));gridtitle('虚部序列gk的离散傅里叶变换的幅度')xlabel('时间序号n');ylabel('振幅');subplot(4,2,3)stem(n,abs(gk1));gridtitle('通过xk得到的gk1的离散傅里叶变换的幅度') xlabel('时间序号n');ylabel('振幅');subplot(4,2,4)stem(n,abs(hk1));gridtitle('通过xk得到的hk1的离散傅里叶变换的幅度') xlabel('时间序号n');ylabel('振幅');subplot(4,2,5)stem(n,angle(gk));gridtitle('实部序列gk的离散傅里叶变换的相位')xlabel('时间序号n');ylabel('以弧度为单位的相位'); subplot(4,2,6)stem(n,angle(hk));gridtitle('虚部序列hk的离散傅里叶变换的相位')xlabel('时间序号n');ylabel('以弧度为单位的相位'); subplot(4,2,7)stem(n,angle(gk1));gridtitle('通过xk得到的gk1的离散傅里叶变换的相位') xlabel('时间序号n');ylabel('以弧度为单位的相位'); subplot(4,2,8)stem(n,angle(hk1));gridtitle('通过xk得到的hk1的离散傅里叶变换的相位') xlabel('时间序号n');ylabel('以弧度为单位的相位');4、function y=circshift(x,M)if abs(M)>length(x)M=rem(M,length(x));endif M<0M=M+length(x);endy=[x(M+1:length(x))x(1:M)];%离散傅里叶变换的圆周时移性质,时移为10x=[0246810121416];N=length(x)-1;n=0:N;y=circshift(x,10);XF=fft(x);YF=fft(y);subplot(2,2,1);stem(n,abs(XF));gridtitle('原序列的离散傅里叶变换的幅度');xlabel('时间序号n');ylabel('振幅');subplot(2,2,2);stem(n,abs(YF));gridtitle('圆周移位10后的序列的离散傅里叶变换的幅度'); xlabel('时间序号n');ylabel('振幅');subplot(2,2,3);stem(n,angle(XF));gridtitle('原序列的离散傅里叶变换的相位');xlabel('时间序号n');ylabel('相位');subplot(2,2,4);stem(n,angle(YF));gridtitle('圆周移位10后的序列的离散傅里叶变换的相位'); xlabel('时间序号n');ylabel('相位');%离散傅里叶变换的圆周时移性质,时移为20y=circshift(x,20);5、序列为x=[0246810121416],时移为10;序列为x=[02468101214161820],时移为10;6、function y=circonv(x1,x2)L1=length(x1);L2=length(x2);if L1~=L2,error('长度不相等的序列'),endy=zeros(1,L1);x2tr=[x2(1)x2(L2:-1:2)];for k=1:L1sh=circshift(x2tr,1-k);h=x1.*sh;y(k)=sum(h);end%离散傅里叶变换的圆周卷积g1=[1234567];g2=[21-12-113];ycir=circonv(g1,g2);disp('圆周卷积的结果');disp(ycir)G1=fft(g1);G2=fft(g2);yc=real(ifft(G1.*G2));disp('离散傅里叶变换乘积的离散傅里叶逆变换的结果=');disp(yc)四、实验结果与分析图1图2.1图2.2图3图4.1图4.2图5.1序列长度9图5.2序列长度11Q6、圆周卷积的结果18183225393925离散傅里叶变换乘积的离散傅里叶逆变换的结果=18.000018.000032.000025.000039.000039.000025.0000、五、实验小结通过这次实验,我对离散信号和系统在频域中进行分析,进一步研究了它们的性质。