📄 experiment2.m
字号:
b=input('请选择信号: 1:x1;2:x2;3:x3;4:x4;5:x5;6:x6;7:x7;8:x8;0:退出\n');
i=0;
close all;
while(b)
%%输入xb(n)
if b==6
N=input('请选择FFT变换区间长度N:16或者32或者64\n');
fs=64;
n=0:N-1;
x=cos(8*pi*n/fs)+cos(16*pi*n/fs)+cos(20*pi*n/fs);
else
N=input('请选择FFT变换区间长度N:8或者16\n');
if b==1
x=[1 1 1 1 0 0 0 0];
else if b==2
x=[1 2 3 4 4 3 2 1];
else if b==3
x=[4 3 2 1 1 2 3 4];
else if b==4
n=0:N-1;
x=cos(0.25*pi*n);
else if b==5
n=0:N-1;
x=sin(pi*n/8);
else if b==7
n=0:N-1;
x=cos(n*pi/4)+sin(n*pi/8);
else if b==8
n=0:N-1;
x=cos(n*pi/4)+j*sin(n*pi/8);
end
end
end
end
end
end
end
end
%%To Calculate FFT
f=fft(x,N);
i=i+1;
figure(i);
printf(x,abs(f),abs(N),abs(b));
if N==16
if b==7
k=conj(f);%conj是求共轭
X4=(f+k)/2;
figure(i+2)
subplot(2,2,1);
stem(abs(X4),'.');
xlabel('k');
ylabel('|X4(k)|');
title('恢复后的X4(k)');
X5=(f-k)/2;
subplot(2,2,3);
stem(abs(X5),'.');
xlabel('k');
ylabel('|X5(k)|');
title('恢复后的X5(k)');
end
if b==8
k(1)=conj(f(1));
for m=2:N
k(m)=conj(f(N-m+2));
end
fe=(f+k)/2; %求X8(k)的共轭对称分量
fo=(f-k)/2; %求X8(k)的共轭反对称分量
xr=ifft(fe,N);
b=4;
figure(i+1)
printf(xr,abs(fe),abs(N),abs(b));
xi=ifft(fo,N)/j;%xi=x5(n)
b=5;
figure(i+2)
printf(xi,abs(fo),abs(N),abs(b));
end
end
b=input('请选择信号: 1:x1;2:x2;3:x3;4:x4;5:x5;6:x6;7:x7;8:x8;0:退出\n');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -