語音zero phase matlab處理

首先,求得zero phase之後的波形,函數名爲:a_simpleFFT.m

%a_simpleFFT.m 
function [Pu]=a_simpleFFT(filename)
    if nargin < 1
        filename = 'C:\Users\suhong\Desktop\語音信號盲分離\用到的語音文件\F16A1.WAV';
    end
    winsize = 512;
    shiftsize = 160;
    [wav,Fs,bits] = wavread(filename);
    window = hamming(winsize);
    winc = getframe(wav,winsize,shiftsize,window);
    sf = fft(winc);%傅里葉變換
    ef = ifft(abs(sf).^0.1);%傅里葉逆變換
    %sf1 = fft(ef);
%     figure;imagesc(log(abs(sf(winsize/2:end,:))));
%     title('fft之後的頻譜圖');
%     figure; plot(ef(winsize/2:end,:));
%     title('逆fft之後的波形圖');
     spec=ef(2:256,:);  %512 * 幀數
        %spec=log(abs(sf1(winsize/2:end,:)));
%     figure;imagesc(spec);
%     title('相位變爲0之後的頻譜圖');

%     figure;imagesc(spec-log(abs(sf(winsize/2:end,:))));
%     title('差值');
    
    
    spec=spec'; %幀數 * winsize/2+1
   %figure; imagesc(spec');
   
%     forward=3;
%     allPu=zeros(0,(winsize/2+1)*(2*forward+1));
%     for i= 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章