资源描述
dtetxjXtjaa)(xa(t)的频谱的频谱 deeXeXIDTFTnxdeTkjXTkTdejXtxnxtjjjknjanTjanTta 212121221| )(取样取样x(t)x(n)序列)序列tkT12T23T34T4幅度量化幅度量化信号信号 nnjjenxeX)(X(k)是是X(ej)在在0,2区间上的区间上的N个等间隔采样点个等间隔采样点 102NnnkNkNjWnxeXkX一个序列一个序列x(n)的离散时间傅的离散时间傅里叶变换就是它的频谱函里叶变换就是它的频谱函数。数。实验内容及步骤(Matlab DFT) function y=mydft(x)% y=mydft(x)% x为给定时间序列为给定时间序列% y为为x的离散傅立叶变换的离散傅立叶变换N=length(x); % 输入序列的长度输入序列的长度n=0:N-1; k=n; % 确定时域位置序列确定时域位置序列n和频域位置序列和频域位置序列kWN=exp(-j*2*pi/N); % 计算计算DFT所需的旋转因子所需的旋转因子nk=n*k; WNnk=WN.nk; % 构成旋转因子矩阵构成旋转因子矩阵Xk=x*WNnk;y=Xk; % 按按DFT定义计算定义计算x的傅立叶变换的傅立叶变换 NjNNnnkNeWWnxkX210实验内容及步骤(Matlab FFT)function y=myditfft(x)% y=myditfft(x)% 本程序对输入序列本程序对输入序列 x 实现实现DIT-FFT基基2算法,点数取大于等于算法,点数取大于等于x长度的长度的2的幂的幂次次% x为给定时间序列为给定时间序列% y为为x的离散傅立叶变换的离散傅立叶变换m=nextpow2(x);N=2m; % 求求x的长度对应的的长度对应的2的最低幂次的最低幂次mif length(x)N % 若若x的长度不是的长度不是2的幂,补零到的幂,补零到2的整数幂的整数幂 x=x,zeros(1,N-length(x); end nxd=bin2dec(fliplr(dec2bin(1:N-1,m)+1; % 求求1:2m数列的倒序数列的倒序y=x(nxd); % 将将x倒序排列作为倒序排列作为y的初始值的初始值实验内容及步骤(Matlab FFT)for mm=1:m % 将将DFT作作m次基次基2分解分解,从左到右,对每次分解作从左到右,对每次分解作DFT运算运算Nmr=2mm;u=1; % 旋转因子旋转因子u初始化为初始化为WN0=1WN=exp(-i*2*pi/Nmr); % 本次分解的基本本次分解的基本DFT因子因子WN=exp(-i*2*pi/Nmr) for j=1:Nmr/2 % 本次跨越间隔内的各次蝶形运算本次跨越间隔内的各次蝶形运算 for k=j:Nmr:N % 本次蝶形运算的跨越间隔为本次蝶形运算的跨越间隔为Nmr=2mm kp=k+Nmr/2; % 确定蝶形运算的对应单元下标确定蝶形运算的对应单元下标 t=y(kp)*u; % 蝶形运算的乘积项蝶形运算的乘积项 y(kp)=y(k)-t; % 蝶形运算蝶形运算 y(k)=y(k)+t; % 蝶形运算蝶形运算 end u=u*WN; % 修改旋转因子修改旋转因子,多乘一个基本多乘一个基本DFT因子因子WN endend算法时间比较K=inputK=input(K=K=); %; %设定数据长度的设定数据长度的2 2的幂次的幂次K Kx=randn(1,2K); %x=randn(1,2K); %先生成一个先生成一个x x向量向量tic,X=fft(x),toc %tic,X=fft(x),toc %测试测试fftfft子程序所需运行时间子程序所需运行时间tic,X=myditfft(x),toc %tic,X=myditfft(x),toc %测试测试myditfft子程序所需运行时间子程序所需运行时间tic,X=mydft(x),toc %tic,X=mydft(x),toc %测试测试mydft子程序所需运行时间子程序所需运行时间例:已知序列x(n)=2sin(/3n)+3cos(0.25 n),0n 127,试绘制试绘制clear allN=128;n=0:N-1;xn=2*sin(pi/3)*n)+3*cos(0.25*pi*n);XK=fft(xn,N);magXK=abs(XK); phaXK=angle(XK);subplot(2,1,1);stem(n,xn);xlabel(n);ylabel(x(n);k=0:length(magXK)-1;subplot(2,1,2);stem(k,magXK);xlabel(k);ylabel(|X(k)|);实验内容及步骤(1 1)用)用matlab编程产生并画出信号产生并画出信号x1(n)、x2(n)、x3(n)、x4(n)、x5(n)。nnnnnnxnRnx其它,074,830, 1)()()(241nnnnnnx其它, 074, 330,4)(3nnx4cos)(4nnx8sin)(5(2 2)用)用matlabmatlab编制编制FFT函数对上述信号进行频谱分析,并画出上函数对上述信号进行频谱分析,并画出上述信号谱图。述信号谱图。 实验报告要求
展开阅读全文