資源簡介
本程序實現對諧波的檢測,利用FFT和小波包變換,實現對諧波的分解與提取
代碼片段和文件信息
%本程序為實現論文“基于FFT和小波包變換的電力系統諧波檢測方法”
%%%?用小波包重構時,不能很好的分辨出50HZ、100HZ、200HZ的信號。重構時,信號出現在第5層1、2、4節點處。
clear?all;
N=4800;???%采樣點為480個
fs=4800;??%采樣頻率為4800Hz
n=0:N-1;??%序列
t=n/fs;??%時間序列
x=220*sin(2*pi*50*t)+80*sin(2*pi*100*t)+50*sin(2*pi*200*t);??%信號表達式
figure(1);
subplot(411);plot(tx);
title(‘原始信號‘);
xlabel(‘時間‘);ylabel(‘幅值‘);
grid?on;
%**************************************************對信號進行小波包分析
T=wpdec(x5‘db44‘);??%對信號進行小波包分解,得到分解樹
ca1=wprcoef(T[50]);??%重構信號
subplot(412);plot(tca1);
ylabel(‘50Hz‘);
ca2=wprcoef(T[51]);
subplot(413);plot(tca2);
ylabel(‘100Hz‘);
ca3=wprcoef(T[53]);
subplot(414);plot(tca3);
ylabel(‘200Hz‘);
%**********************************************************進行傅里葉頻譜分析
y1=fft(ca1N);??%對重構的50、100、200HZ的信號進行傅里葉頻譜分析。
y2=fft(ca2N);
y3=fft(ca3N);
f=n*fs/N;
mag1=abs(y1);??%取絕對值。傅里葉頻譜分析的結果顯示:重構的信號頻率與預期信號相同,但幅值發生了衰減。
mag2=abs(y2);
mag3=abs(y3);
figure(2);
subplot(311);plot(f(1:N/10)mag1(1:N/10)*2/N);
grid?on;
title(‘50HZ的傅里葉變換頻譜圖‘);
%xlim([0?400]);限制x軸的取值范圍?ylim([0?400])限制y軸的取值范圍,axis([xmin?xmax?ymin
%ymax])同時限制x、y的取值范圍。
subplot(312);plot(f(1:N/10)mag2(1:N/10)*2/N);
grid?on;
title(‘100HZ的傅里葉變換頻譜圖‘);
subplot(313);plot(f(1:N/10
- 上一篇:馬氏鏈的MATLAB程序
- 下一篇:基于DCT的JPEG圖像壓縮
評論
共有 條評論