配色: 字号:
MATLAB与信号处理_3
2012-06-21 | 阅:  转:  |  分享 
  
实验三信号变换及其MATLAB实现一、实验目的1.练习利用matlab6.5中的命令或程序分析信号频谱。2.进一步练习
M-File的建立、保存、调用。3.加深对几种傅里叶变换的理解。二、实验原理与方法连续时间信号傅里叶变换(FT):
离散时间信号傅里叶变换(DTFT):离散傅里叶变换(DFT):快速傅里叶变换(FFT):三、实验内容及步骤数学函数:1
、mod;2、length;3、sin其他函数:fft相关函数复杂语句的理解-?自己写出完成复杂功能的语句要求
1.连续时间信号傅里叶变换分析:例:分析信号x(t)=u(t)-u(t-1)的频谱。r=0.005;t=-2:r:2;r
t=[t>0]-[t-1>0];k=-10:0.005:10;w=pik;Rjw=rtexp(-jt‘w)r;
%(给出这之前语句的解释)R=abs(Rjw);ANGR=angle(Rjw);subplot(3,1,1);plo
t(t,rt);text(2.2,0,''t'');ylabel(''r(t)=u(t)-u(t-1)'');title(''An
alogSignal'');subplot(3,1,2);plot(w/pi,R);text(10.5,0,''w'');yl
abel(''|Rt(jw)|'');title(''Continuous-timeFourierTransform-Magni
tudePart'');subplot(3,1,3);plot(w/pi,ANGR);text(10.5,-4,''w'')
;ylabel(''ANGRt(jw)'');title(''Continuous-timeFourierTransform
-AnglePart'');2.离散时间信号傅里叶变换分析:例:分析信号x(n)=u(n)-u(n-n0)的频谱。n0=4
或6或8。n0=4;%调整n0=6或8或其他值,分析并比较最后结果N=256;n=0:N-1;k=-2:0.001:
2;w=pik;%w=[-2pi,2pi]x=[ns(X);phaX=angle(X);subplot(2,2,1);plot(w/pi,magX);gridxlabe
l(''Frequencyinpiunits'');ylabel(''|X(ejw)|'');title(''Discrete-
timeFourierTransform---Magnitude'');subplot(2,2,3);plot(w/pi,p
haX/pi);gridon;xlabel(''Frequencyinpiunits'');ylabel(''radians
/pi'');title(''Discrete-timeFourierTransform---AnglePart'');3
.离散傅里叶变换分析:例:分析信号x(n)=u(n)-u(n-n0)的频谱。n0=4或6或8。n0=4;%调整n0=6或8
或其他值,分析并比较最后结果N=16;%调整N=16或32或其他值,分析并比较最后结果n=0:N-1;k=0:N-1;
w=2pi/Nk;x=[nangle(X);subplot(2,2,2);stem(k,magX,''b'');gridxlabel(''Frequen
cyinpiunits'');ylabel(''|X(k)|'');title(''DiscreteFourierTran
sform---Magnitude'');subplot(2,2,4);stem(k,phaX/pi,''r'');gridon
;xlabel(''Frequencyink=pi/Nunits'');ylabel(''radians/pi'');tit
le(''DiscreteFourierTransform---AnglePart'');function[Xk]=d
ft(xn,N)%ComputesDiscreteFourierTransform%----------------
-------------------%[Xk]=dft(xn,N)%Xk=DFTcoeff.arrayov
er0<=k<=N-1%xn=N-pointfinite-durationsequence%N=L
engthofDFT%n=[0:1:N-1];%rowvectorforn
k=[0:1:N-1];%rowvecorforkWN=exp(-j2pi
/N);%Wnfactornk=n''k;%createsaNbyN
matrixofnkvaluesWNnk=WN.^nk;%DFTmatrixXk=xn
WNnk;%rowvectorforDFTcoefficients%计算离散傅里叶变换函数
dft():%计算离散傅里叶级数函数dfs():function[Xk]=dfs(xn,N)%ComputesDi
screteFourierSeriesCoefficients%----------------------------
-----------------%[Xk]=dfs(xn,N)%Xk=DFScoeff.arrayover
0<=k<=N-1%xn=Oneperiodofperiodicsignalover0<=n<
=N-1%N=Fundamentalperiodofxn%n=[0:1:N-1];
%rowvectorfornk=[0:1:N-1];%rowvecor
forkWN=exp(-j2pi/N);%Wnfactornk=n''k;
%createsaNbyNmatrixofnkvaluesWNnk=WN.^nk;
%DFSmatrixXk=xnWNnk;%rowvectorforDFScoe
fficients%计算序列的循环移位函数cirshftt():functiony=cirshftt(x,m,N)%
CircularshiftofmsampleswrtsizeNinsequencex:(timedomai
n)%------------------------------------------------------------
-------%[y]=cirshftt(x,m,N)%y=outputsequencecontaining
thecircularshift%x=inputsequenceoflength<=N%m=samp
leshift%N=sizeofcircularbuffer%Method:y(n)=x((n-m)
modN)%Checkforlengthofxiflength(x)>Nerror(''N
mustbe>=thelengthofx'')endx=[xzeros(1,N-length(x))];n
=[0:1:N-1];n=mod(n-m,N);y=x(n+1);%计算序列的循环卷积函数circonvt():
functiony=circonvt(x1,x2,N)%N-pointcircularconvolutionbet
weenx1andx2:(time-domain)%---------------------------------
----------------------------%[y]=circonvt(x1,x2,N)%y=out
putsequencecontainingthecircularconvolution%x1=inputseq
uenceoflengthN1<=N%x2=inputsequenceoflengthN2<=N%
N=sizeofcircularbuffer%Method:y(n)=sum(x1(m)x2((n-
m)modN))%Checkforlengthofx1iflength(x1)>Nerr
or(''Nmustbe>=thelengthofx1'')end%Checkforlengthofx2
iflength(x2)>Nerror(''Nmustbe>=thelengthofx2'')
endx1=[x1zeros(1,N-length(x1))];x2=[x2zeros(1,N-length(x2))];
m=[0:1:N-1];x2=x2(mod(-m,N)+1);H=zeros(N,N);forn=1:1
:NH(n,:)=cirshftt(x2,n-1,N);endy=x1H'';4.快速傅里叶变换分析
信号频谱例:利用FFT分析信号x(t)=0.5sin(2πf1t)+2sin(2πf2t)的频谱。其中f1=15Hz,f2=4
0Hz。fs=100;%调整fs=40或60或160或其他值,分析并比较最后结果N=256;%调整N=32或1024
或其他值,分析并比较最后结果n=0:N;t=n/fs;x=0.5sin(2pi15t)+2sin(2pi40
t);%什么情况下能得到单一谱线%调整x=0.5sin(2pi15t)+2sin(2pi40t)+ran
dn(1,N);分析并比较最后结果y=fft(x,N);mag=abs(y);f=(0:length(y)-1)''fs/l
ength(y);%f=kfs/Nsubplot(221);plot(f,mag);xlabel(''Frequence(Hz
)'');ylabel(''Magnitude'');title(''N=256'');grid;subplot(223);plot(f
(1:N/2),mag(1:N/2));xlabel(''Frequence(Hz)'');ylabel(''Magnitude'');title(''N=256'');grid;5.分析信号x(n)=(-0.5)n,-10
献花(0)
+1
(本文系依米荷阳首藏)