⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shiyan355555.m

📁 matlab离散信号时域分析
💻 M
字号:
%实验内容2  2N点序列  x[k]=cos(2*pi/N*7*k)+1/2*cos(2*pi/N*19*k) k=0……2N-1
%N=64 用一个64点的复数FFT程序,一次算出 X[m] ,并绘出|X[m]|

N=64;
k=0:2*N-1;
x=cos(2*pi/N*7*k)+1/2*cos(2*pi/N*19*k); 
F_64=fft(x);
subplot(2,2,1);



stem(k/128,abs(F_64));title('序列x(k)图形');
%%一次性用64点复数来算
%获得偶数坐标的对应序列
%---------------实验要求一
N=64;
x=zeros(1,128);
u=zeros(1,128);
y=zeros(1,64);
for k=0:2*N-1
    x(k+1)=cos(2*pi*7*k/N)+0.5*cos(2*pi*19*k/N);
end
for k=1:64
    y(k)=x(2*k)+x(2*k-1)*i;% 偶数位做虚部,即x(1),x(3)...x(127),因为x下标从1开始
end
t=fft2(y);
% u(m),u(m+64)分别是实部和虚部的dft,即是x(k)的奇数位和偶数位的fft
for m=2:64
    u(m)=0.5*(t(m)+t(66-m)');
    u(m+64)=-0.5*i*(t(m)-t(66-m)');
end
    u(1)=0.5*(t(1)+t(1)');
    u(65)=-0.5*i*(t(1)-t(1)');
% 利用书本上公式3-32,y(m),t(m)串接构成x(k)的fft
for m=1:64
    y(m)=u(m+64)+u(m)*exp(-i*m*2*pi/128);
    t(m)=u(m+64)-u(m)*exp(-i*m*2*pi/128);
end
for m=1:64
    u(m)=y(m);
    u(m+64)=t(m);
end
k=1:128;




subplot(2,2,2);



stem(k,abs(x));title('序列x(k)图形');


subplot(2,2,3);



stem(k/128,abs(u));title('序列x(k)图形');

v=ifft(u,128);
subplot(2,2,4);
stem(k,abs(v));title('x(k)的dft的反变换图形');


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -