?? 用fft實(shí)現(xiàn)譜分析實(shí)驗(yàn).txt
字號(hào):
b=input(' 請(qǐng) 選 擇 信 號(hào) : \n1:x1(n),2:x2(n),3:x3(n),4:x4(n),5:x5(n),6:x6(n),7:x7=x4+x5,8:x8=x4+jx5:\n');
%b=str2num(b);
i=0;
close all;
while(b)
if b==6
N=input('請(qǐng)選擇FFT變換區(qū)間長(zhǎng)度N: 16 or 32 or 64:\n');
%N=str2num(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=str2num(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==8
n=: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);
x4=(f+k)/2;
figure(i+2)
subplot(2,2,1);
stem (abs(x4),'.');
xlabel('k');
ylabel('|x4(k)|');
title('恢復(fù)后的x4(k)');
x5=(f-k)/2;
subplot(2,2,3);
stem(abs(x5),'.');
xlabel('k');
ylabel('|x5(k)|');
title('恢復(fù)后的x5(k)');
end
if b==8
k(1)=conj(f(1));
for m =2:N
k(m)=conj(f(N-m+2));
end
fe=(x+k)/2;
fo=(x-k)/2;
xr=ifft(fe,N);
b=4;
figure(i+1)
printf(xr, abs(fe),abs(N),abs(b));
xi=ifft(fo,N)/j:
b=5;
figure(i+2)
printf(xi, abs(f),abs(N),abs(b));
end
end
b=input(' 請(qǐng) 選 擇 信 號(hào) :: \n1:x1(n),2:x2(n),3:x3(n),4:x4(n),5:x5(n)6:x6(n),7:x7=x4+x5,8:x8=x4+jx5,0(退出):\n');
b=str2num(b);
end
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -