資源簡介
MATLAB 程序編寫的全相位APFFT程序,對實現數據預處理有很好的參考和幫助作用

代碼片段和文件信息
clc;clear;
N=128;
n=-N+1:N-1;
%fs=4e9;%采樣頻率,根據采樣定理,大于2f
s=2*cos(10.0*2*n*pi/N+pi/18)+2*cos(20.1*2*n*pi/N+pi/6)+2*cos(30.2*2*n*pi/N+pi*5/18)+2*cos(40.3*2*n*pi/N+7*pi/18)+2*cos(50.4*2*n*pi/N+pi/2);%丟掉的1e9會在后面補充回來
%抽樣信號定義塊
y1=s(N:2*N-1);%N長的數據送入FFT處理
y2=s(1:2*N-1);%2N-1長的數據送入APFFT處理
win=hanning(N)‘%漢寧窗后面的一瞥為轉換為列向量
win1=win/sum(win);%漢寧窗歸一化
winn=conv(winwin);%漢寧窗的卷積
win2=winn/sum(winn);%漢寧窗卷積的歸一化
%窗的定義塊
?
y11_fft=fft(y1.*winN);
a_fft=abs(y11_fft);%FFT幅頻
p_fft=?angle(y11_fft)*180/pi?;%FFT相頻
%FFT的相頻和幅頻表達
%figure(5);
%stem(0:N-1abs(fft(y1N))‘.r‘);%看看FFT不加窗的情況
y22=y2.*win2;
y222=[0y22(1:N-1)]+y22(N:end);%長度為N,送入FFT處理,出來為APFFT
y222_fft=fft(y222N);
a_apfft=abs(y222_fft);%APFFT幅頻
p_apfft=mod(phase(y222_fft)*180/pi360);%APFFT相頻
%APFFT的相頻和幅頻表達
%y222t=y2(N:end)+[0y2(1:N-1)];
%figure(6);
%stem(0:N-1abs(fft(y222tN))‘.r‘);%看看APFFT不加窗的情況
%繪圖程序塊
t1=0:N-1;
t2=t1;%*fs/N;%橫軸的定義
figure(1);
%a_fft1=a_fft/sum(a_fft);%將幅度歸一化,使得不同N的幅頻有可比性
stem(t2a_fft‘.k‘);%FFT的幅頻曲線
grid?on;
title(‘FFT幅頻曲線‘);
ylabel(‘幅值‘);
xlabel(‘頻率(HZ)‘);
xlim([060]);
ylim([01.2]);
%axis([1.2e91.8e900.5]);
figure(2);
stem(t2p_fft‘.k‘);%FFT的相頻曲線
xlim([060]);
%ylim([-200200]);
grid?on;
title(‘FFT相頻曲線‘);
ylabel(‘度(°)‘);
xlabel(‘頻率(HZ)‘);
figure(3);
%a_apfft1=a_apfft/(sum(a_apfft)^2);
stem(t2a_apfft‘.k‘);%APFFT的幅頻曲線
grid?on;
title(‘apFFT幅頻曲線‘);
ylabel(‘幅值‘);
xlabel(‘頻率(HZ)‘);
xlim([060]);
ylim([01.2]);
figure(4);
stem(t2p_apfft‘.k‘);%APFFT的幅頻曲線
xlim([060]);
ylim([0100]);
grid?on;
title(‘apFFT相頻曲線‘);
ylabel(‘度(°)‘);
xlabel(‘頻率(HZ)‘);
%數字處理程序塊
[ab]=max(a_fft);
a_fft(b)=0;
[cd]=max(a_fft);
a_fft(d)=0;
e=max(a_fft);
display(‘FFT旁瓣主瓣比‘);
FFT_sidelobe=e/a%FFT的旁邊與主瓣比值
[hi]=max(a_apfft);
a_apfft(i)=0;
[jk]=max(a_apfft);
a_apfft(k)=0;
l=max(a_apfft);
display(‘apFFT旁瓣主瓣比‘);
APFFT_sielobe=l/h
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2154??2012-06-15?21:26??apFFT10.m
評論
共有 條評論