資源簡介
基于matlab的腦電信號處理
程序設計,包括GUI界面設計

代碼片段和文件信息
S1=‘E:\醫學信號處理課程設計\normal1.txt‘;
Y1=load(S1);
Y=Y1‘;
x=Y(1:);y=Y(2:);
n=length(x);%求取樣點數
T=0.004;fs=1/T;
fk=([0:n-1]/n/T);%橫坐標變換
Y1=fft(y);Y1r=abs(Y1);A1r=angle(Y1);%進行fft變換并求出頻譜圖
figure?(1)%顯示時頻域
subplot?311;plot(xy);title(‘腦電信號時域圖‘);xlabel(‘時間/s‘);ylabel(‘幅值/uV‘);
subplot?312;plot(fk20*log10(Y1r));????title(‘腦電信號頻域圖‘);xlabel(‘頻率/Hz‘);ylabel(‘20*log10(H)/dB‘);axis([0?125?0?100]);?
subplot?313;?plot(fkA1r);?axis([0?125?-4?4]);title(‘腦電信號相位圖‘);xlabel(‘頻率/Hz‘);
%矩形窗
wp=0.232*pi;ws=0.248*pi;
deltaw=ws-wp;??????????????????
N=ceil(1.8*pi/deltaw)%定義濾波器的階數?
wc=30/(fs/2);
H1=fir1(Nwcstepseq(N+1));%使用fir1函數設計濾波器
[h1w]=freqz(H11512250);
?sf=filter(H11y);
?Fsf=fft(sf);
figure?(2)%顯示FIR濾波器
subplot?211;plot(w20*log10(abs(h1)));title(‘低通濾波器模型‘);xlabel(‘頻率/Hz‘);?ylabel(‘20*log10(H)/dB‘);axis([0?125?-100?10]);%參數分別是頻率與幅值
subplot?212;plot(wangle(h1));
figure(3)%低通濾波后的信號圖像
subplot(211);plot(xsf);title(‘低通濾波后的信號時域圖‘);xlabel(‘時間/s‘);ylabel(‘幅值/uV‘);
subplot(212);plot(fk(abs(Fsf)));axis([0?125?0?70000]);?title(‘低通濾波后的信號頻域圖‘);xlabel(‘頻率/Hz‘);?%ylabel(‘20*log10(H)/dB‘);
%巴特沃斯
wp0=[4?8];ws0=[2?10];Rp=1;??Rs=18;???%設置通帶波紋系數
wp1=wp0*pi*2/fs;???????????????%設置通帶頻率
ws1=ws0*pi*2/fs;????????????????%設置阻帶頻率
wp=2*fs*tan(wp1./2);
ws=2*fs*tan(ws1./2);
[NWn]=buttord(wpwsRpRs‘s‘)???????%求巴特沃斯濾波器階數,輸出參數N代表滿足設計要求的濾波器的最小階數,Wn是等效低通濾波器的截止頻率
[zpk]=buttap(N);
[bpap]=zp2tf(zpk);
Bp=wp(2)-wp(1);
Wp0=sqrt(wp(1)*wp(2));
[bsas]=lp2bp(bpapWp0Bp);
[bzaz]=bilinear(bsasfs);
[Hbwb]=freqz(bzaz125fs);%125個數據點
h=(filter(bzazy));%原信號時域濾波
H=fft(h);
figure?(4)%顯示IIR濾波器
subplot?211;plot(wb20*log10(abs(Hb)));title(‘帶通濾波器模型‘);xlabel(‘頻率/Hz‘);?ylabel(‘20*log10(H)/dB‘);
subplot?212;?plot(wbangle(Hb));?title(‘腦電信號相位圖‘);xlabel(‘頻率/Hz‘);%axis([0?125?-4?4]);
figure?(5)%帶通濾波前后的信號頻域
subplot?211;plot(xy);title(‘帶通濾波前時域‘);xlabel(‘時間/s‘);ylabel(‘幅值/uV‘);axis([0?60?-400?400]);
subplot?212;plot(xh);title(‘帶通濾波后時域‘);xlabel(‘時間/s‘);ylabel(‘幅值/uV‘);axis([0?60?-400?400]);
figure?(6)%帶通濾波前后的信號時域
subplot?211;plot(fkY1r);title(‘帶通濾波前頻域‘);xlabel(‘頻率/Hz‘);axis([0?125?0?70000]);
subplot?212;plot(fkabs(H));title(‘帶通濾波后頻域‘);xlabel(‘頻率/Hz‘);axis([0?125?0?40000]);
%陷波器
[mn]=findpeaks(abs(Fsf)‘minpeakdistance‘270);
for?i=2:4;
????a1=n(i)/61.44;
????rp=1;rs=60;Fs=250;
????wp=[a1-0.4?a1+0.4]*2/Fs;ws=[a1?a1+0.2]*2/Fs;
????[NWn]=ellipord(wpwsrprs);
????[ba]=ellip(NrprsWn‘stop‘);
????[Hf]=freqz(ba512Fs);
????Y=filter(basf);
????h2=fft(Y);
????sf=Y;
end
????figure?(7)
????subplot?211;plot(xY);title(‘陷波濾波后時域‘);xlabel(‘時間/s‘);ylabel(‘幅值/uV‘);axis([0?60?-400?400]);
????subplot?212;plot(fk(abs(h2)));title(‘陷波濾波后頻域‘);xlabel(‘頻率/Hz‘);axis([0?125?0?70000]);
%頻譜圖
????Hs=spectrum.yulear;??%周期圖法
????figure?(8);
????[Pxxf]=?pwelch(Y1r33[]15360Fs);%33為信號截取長度
????plot(fPxx);axis([012504000000]);xlabel(‘頻率/Hz‘);title(‘頻譜圖‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3271??2019-01-16?09:28??all_figure.m
?????文件????????370??2019-01-01?19:54??box.m
?????文件???????1655??2019-01-16?09:06??butterfilter.m
?????文件????????460??2019-01-14?10:44??eeg_fft.m
?????文件??????17479??2019-01-16?08:44??eeg_filter.m
?????文件????????914??2019-01-07?11:10??eeg_fir.m
?????文件????????198??2019-01-12?14:14??eeg_load.m
?????文件????????747??2019-01-14?10:33??eeg_power.m
?????文件????????133??2019-01-01?19:47??ideallp.m
?????文件?????????77??2019-01-12?13:21??stepseq.m
-----------?---------??----------?-----??----
????????????????25304????????????????????10
- 上一篇:謝菲爾德matlab遺傳工具箱
- 下一篇:近似熵算法
評論
共有 條評論