1 / 25

鼾音訊號測量計畫

鼾音訊號測量計畫. 執導老師 : 侯春茹 老師 賴 彥 亨 個人部分作業. 鼾聲測量訊號. 軟顎 部位的鼾聲頻率大多分布在 150 Hz~300 Hz 之間 , 舌根 部位之頻率大多分布在 500 Hz~750 Hz. 原始訊號. 原始訊號取小段. 補零點訊號. 強度 頻譜 (magnitude spectrum). 相位頻譜 PHASE. %% N = length( SignalData ); t = (1:N)/ fs ; signal_detrend = detrend ( SignalData );

dougal
Download Presentation

鼾音訊號測量計畫

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 鼾音訊號測量計畫 執導老師:侯春茹 老師賴彥亨 個人部分作業

  2. 鼾聲測量訊號 軟顎部位的鼾聲頻率大多分布在 150 Hz~300 Hz 之間, 舌根部位之頻率大多分布在 500 Hz~750 Hz 原始訊號

  3. 原始訊號取小段

  4. 補零點訊號

  5. 強度頻譜(magnitude spectrum)

  6. 相位頻譜PHASE

  7. %% N = length(SignalData); t = (1:N)/fs; signal_detrend=detrend(SignalData); signal_1=signal_detrend(8735000:8815000) figure(1) plot(signal_1) print('-f1', '-djpeg', '-r300', 'fig1'); %% 原始訊號 L=131072; T=1/fs; ts=0:T:60; N=length(ts); u=fft(signal_1,L); u_mag=abs(u); u_ang=angle(u); fd=1/(L*T); % 頻率間隔 m=0:(L-1); % 頻率點數 fy=m.*fd; fy_2=fy(1:(length(fy)/2)) u_2=u(1:(length(u)/2)) k=fs*(0:length(u)-1)/length(u); u_mag=abs(u_2); u_ang=angle(u_2); figure(2) plot(fy_2,u_mag) title('強度頻譜') ylabel('Magnitude') xlabel('Frequency index u') print('-f2', '-djpeg', '-r300', 'fig2'); figure(3) plot(fy_2,angle(u_2)) title('相位頻譜') ylabel('Phase') xlabel('Frequency index u') print('-f3', '-djpeg', '-r300', 'fig3'); 程式碼

  8. FIR濾波之原始訊號

  9. FIR濾波 filter

  10. FIR濾波 filtfilt

  11. 切訊號

  12. 加窗

  13. 補零點 震幅強度頻譜

  14. 程式碼 • %% 原始訊號 • SignalData = csvread('hand.csv'); %讀取CSV檔案 • SignalData_detrend=detrend(SignalData); % 去基線飄移 • figure(1) • subplot(211); • plot(SignalData); • axis tight; • title('原始訊號'); • subplot(212); • plot(SignalData_detrend); • axis tight; • title('去基線飄移');

  15. subplot(312); plot(firM2_SignalData_detrend,'b-'); axis tight; title(' FIR filter M=10'); subplot(313); plot(firM3_SignalData_detrend,'b-'); axis tight; title(' FIR filter M=15'); print('-f2', '-djpeg', '-r300', 'fig2'); figure(3) subplot(311); plot(firM1_filt,'b-'); axis tight; title(' FIR filtfilt M=5'); subplot(312); plot(firM2_filt,'b-'); axis tight; title(' FIR filtfilt M=10'); subplot(313); plot(firM3_filt,'b-'); axis tight; title(' FIR filtfilt M=15'); 濾波 • M1=5; • b1=ones(M1,1)/5; • firM1_SignalData_detrend=filter(b1,1,SignalData_detrend); • firM1_filt=filtfilt(b1,1,SignalData_detrend); • M2=10; • b2=ones(M2,1)/10; • firM2_SignalData_detrend=filter(b2,1,SignalData_detrend); • firM2_filt=filtfilt(b2,1,SignalData_detrend); • M3=15; • b3=ones(M3,1)/15; • firM3_SignalData_detrend=filter(b3,1,SignalData_detrend); • firM3_filt=filtfilt(b3,1,SignalData_detrend); • figure(2) • subplot(311); • plot(firM1_SignalData_detrend,'b-'); • axis tight; • title(' FIR filter M=5');

  16. 取週期 subplot(313); plot(firM3_SignalData_detrend,'r-'); hold on plot(firM3_filt,'b--'); hold off legend('filter','filtfilt',1) axis tight; axis([0 125000 -50 50]); • figure(321) • subplot(311); • plot(firM1_SignalData_detrend,'r-'); • hold on • plot(firM1_filt,'b--'); • hold off • legend('filter','filtfilt',1) • axis tight; • axis([0 125000 -50 50]); • title(' FIR M=5'); • subplot(312); • plot(firM2_SignalData_detrend,'r-'); • hold on • plot(firM2_filt,'b--'); • hold off • legend('filter','filtfilt',1) • axis tight; • axis([0 125000 -50 50]); • title(' FIR M=10');

  17. subplot(313); plot(firM3_SignalData_detrend(120000:160000),'r-'); hold on plot(firM3_filt(120000:160000),'b--'); plot(SignalData_detrend(120000:160000),'k:'); hold off axis tight; legend('filter','filtfilt','SignalData',1) title('切訊號 M=15'); 切訊號 • figure(4) • subplot(311); • plot(firM1_SignalData_detrend(120000:160000),'r-'); • hold on • plot(firM1_filt(120000:160000),'b--'); • plot(SignalData_detrend(120000:160000),'k:'); • hold off • axis tight; • legend('filter','filtfilt','SignalData',1) • title('切訊號 M=5'); • subplot(312); • plot(firM2_SignalData_detrend(120000:160000),'r-'); • hold on • plot(firM2_filt(120000:160000),'b--'); • plot(SignalData_detrend(120000:160000),'k:'); • hold off • axis tight; • legend('filter','filtfilt','SignalData',1) • title('切訊號 M=10');

  18. figure(5); % m1 subplot(121); plot(addwindow1_filt); title('filtfilt Hamming window M=5'); axis tight; subplot(122); plot(addwindow1); title('filter Hamming window M=5 '); axis tight; print('-f5', '-djpeg', '-r300', 'fig5'); figure(6); % m2 subplot(121); plot(addwindow2_filt); title('filtfilt Hamming window M=10'); axis tight; subplot(122); plot(addwindow2); title('filter Hamming window M=10 '); axis tight; print('-f6', '-djpeg', '-r300', 'fig6'); figure(7); %m3 subplot(121); plot(addwindow3_filt); title('filtfilt乘上 Hamming window M=15'); axis tight; subplot(122); plot(addwindow3); title('filter 乘上 Hamming window M=15'); axis tight; 加窗Hamming firM1_cut_singal=firM1_SignalData_detrend(120000:160000); n1=length(firM1_cut_singal); addwindow1=(firM1_cut_singal).*hamming(n1); firM1_filt_cut_singal=firM1_filt(120000:160000); n1_filt=length(firM1_filt_cut_singal); addwindow1_filt=(firM1_filt_cut_singal).*hamming(n1_filt); % M1 乘上 Hamming window firM2_cut_singal=firM2_SignalData_detrend(120000:160000); n2=length(firM2_cut_singal); addwindow2=(firM2_cut_singal).*hamming(n2); firM2_filt_cut_singal=firM2_filt(120000:160000); n2_filt=length(firM2_filt_cut_singal); addwindow2_filt=(firM2_filt_cut_singal).*hamming(n2_filt); % M2 乘上 Hamming window firM3_cut_singal=firM3_SignalData_detrend(120000:160000); n3=length(firM3_cut_singal); addwindow3=(firM3_cut_singal).*hamming(n3); firM3_filt_cut_singal=firM3_filt(120000:160000); n3_filt=length(firM3_filt_cut_singal); addwindow3_filt=(firM3_filt_cut_singal).*hamming(n3_filt); % M3 乘上 Hamming window

  19. 補零點 強度震幅頻譜 L=131072; fs=11530; % 取樣頻率 t=1/fs; % 取樣週期 m=0:L-1; % 頻率點數 fd=1/(L*t); % 頻率間隔 fy=m.*fd; fy_half = fy(1:(length(fy)/2)); %取一半的FFT fft_addwindow1=fft(addwindow1,L); fft_addwindow1_half=fft_addwindow1(1:(length(fft_addwindow1)/2)); fft_addwindow1_filt=fft(addwindow1_filt,L); fft_addwindow1_filt_half=fft_addwindow1_filt(1:(length(fft_addwindow1_filt)/2)); fft_addwindow2=fft(addwindow2,L); fft_addwindow2_half=fft_addwindow2(1:(length(fft_addwindow2)/2)); fft_addwindow2_filt=fft(addwindow2_filt,L); fft_addwindow2_filt_half=fft_addwindow2_filt(1:(length(fft_addwindow2_filt)/2)); fft_addwindow3=fft(addwindow3,L); fft_addwindow3_half=fft_addwindow3(1:(length(fft_addwindow3)/2)); fft_addwindow3_filt=fft(addwindow3_filt,L); fft_addwindow3_filt_half=fft_addwindow3_filt(1:(length(fft_addwindow3_filt)/2));

  20. subplot(313) plot(fy_half,angle(fft_addwindow1_half),'r-') hold on plot(fy_half,angle(fft_addwindow1_filt_half),'b--'); hold off axis tight legend('filter','filtfilt',1) title('相位頻譜') print('-f8', '-djpeg', '-r300', 'fig8'); figure(9) % m2 subplot(311) plot(fy_half,fft_addwindow2_half,'r-'); hold on plot(fy_half,fft_addwindow2_filt_half,'b--'); hold off axis tight; legend('filter','filtfilt',1) title('FFT L=131072 M=10'); figure(8) % m1 subplot(311) plot(fy_half,fft_addwindow1_half,'r-'); hold on plot(fy_half,fft_addwindow1_filt_half,'b--'); hold off axis tight; legend('filter','filtfilt',1) title('FFT L=131072 M=5'); subplot(312) plot(fy_half,abs(fft_addwindow1_half),'r-') hold on plot(fy_half,abs(fft_addwindow1_filt_half),'b--'); hold off axis tight legend('filter','filtfilt',1) title('強度頻譜')

  21. subplot(312) plot(fy_half,abs(fft_addwindow3_half),'r-') hold on plot(fy_half,abs(fft_addwindow3_filt_half),'b--'); hold off axis tight legend('filter','filtfilt',1) title('強度頻譜') subplot(313) plot(fy_half,angle(fft_addwindow3_half),'r-') hold on plot(fy_half,angle(fft_addwindow3_filt_half),'b--'); hold off axis tight legend('filter','filtfilt',1) title('相位頻譜') subplot(312) plot(fy_half,abs(fft_addwindow2_half),'r-') hold on plot(fy_half,abs(fft_addwindow2_filt_half),'b--'); hold off axis tight legend('filter','filtfilt',1) title('強度頻譜') subplot(313) plot(fy_half,angle(fft_addwindow2_half),'r-') hold on plot(fy_half,angle(fft_addwindow2_filt_half),'b--'); hold off axis tight legend('filter','filtfilt',1) title('相位頻譜') print('-f9', '-djpeg', '-r300', 'fig9'); figure(10) % m3 subplot(311) plot(fy_half,fft_addwindow3_half,'r-'); hold on plot(fy_half,fft_addwindow3_filt_half,'b--'); hold off axis tight; legend('filter','filtfilt',1) title('FFT L=131072 M=15');

More Related