170 likes | 296 Views
鼾 音訊 號處理. 執導老師 : 侯春茹 老師 組員 : 金雍庭 胡庭恩 林承葦 賴彥亨. 目錄. 訊號的簡介 臨床 應用 量測 部位與方法 訊號 特徵 訊號處理流程 鼾聲量得訊號. 訊號的簡介. 鼾音的臨床應用. 為什麼會打鼾 ?. 打鼾的 監測. 量測部位與 方法. 睡眠時的打鼾行為外界所能觀察到的變化 有聲音、鼻部的氣體流動、以及喉嚨的振動 ,在鼾聲監測裝置的訊號擷取方式上,也是上述三方面著手。. 使用麥克風收音的 方式. 訊號的特徵. 鼾聲測量訊號. 軟顎 部位的鼾聲頻率大多分布在 150 Hz~300 Hz 之間 ,
E N D
鼾音訊號處理 執導老師:侯春茹 老師組員:金雍庭 胡庭恩 林承葦 賴彥亨
目錄 • 訊號的簡介 • 臨床應用 • 量測部位與方法 • 訊號特徵 • 訊號處理流程 • 鼾聲量得訊號
鼾音的臨床應用 • 為什麼會打鼾?
量測部位與方法 • 睡眠時的打鼾行為外界所能觀察到的變化有聲音、鼻部的氣體流動、以及喉嚨的振動,在鼾聲監測裝置的訊號擷取方式上,也是上述三方面著手。
鼾聲測量訊號 軟顎部位的鼾聲頻率大多分布在 150 Hz~300 Hz 之間, 舌根部位之頻率大多分布在 500 Hz~750 Hz 原始訊號
clc clear all close all [FILENAME,PATHNAME] = uigetfile ('*.wav'); if FILENAME fullname = [PATHNAME,FILENAME]; [SignalData,fs] = wavread(fullname); end%讀取CSV檔案 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'); 程式碼
L=[]; for i=1:length(x1):length(rxy)-length(x1) rxy1=rxy(i:i+495); L1=find(rxy1==max(rxy1))'; L=[L,L1+i]; end nemg=[]; for j=1:length(L) nemg1=x2(L(j):(L(j)+495))'; nemg=[nemg;nemg1]; end aver=mean(nemg); figure(18) subplot(2,1,1); plot(x1) title('原始訊號'); %axis([0 length(x1) -500 500]) subplot(2,1,2); plot(aver) title('樣本平均'); print('-f18', '-djpeg', '-r300', 'fig18'); 交互相關 N0=length(signal_1); u=fft(SignalData); NR=fs/2;%低通 [n,Wn]=buttord(1000/NR,1800/NR,1,60); [b0,a0]=butter(n,Wn,'low'); y=filter(b0,a0,signal_1); figure(17) plot(signalcut) print('-f17', '-djpeg', '-r300', 'fig17'); %時域濾波器(交互相關) x1=signalcut; x2=signal_1; rxy=xcorr(x2,x1); %cross-correlation rxy=rxy(N0:(2*N0-1))/max(rxy);