ifft는 신호에서 fft를 수행하여 얻은 데이터에서 여러 사인파를 합산합니다. ifft을 사용하는 방법이 사인파 대신에 사각 파을 사용하고 있습니까?
원래 신호를 되 찾으려는 것이 아니라 일반적인 사인파 합계 프로세스 대신 fft에서 가져온 데이터의 구형파를 사용하여 다시 작성하려고합니다.ifft 및 사인파의 합 대신에 사각파의 합을 사용하여 신호를 다시 작성하십시오.
아래의 간단한 예제를 참조하십시오. 내가 사용할 신호는 약 60 초 정도의 인간의 오디오 신호이므로 어떤 방법 으로든 ifft 명령을 사용하거나 변경할 수 있는지 확인하려고합니다.
PS : 나는 matlab에 유사하다 옥타브 4.0을 사용하고
clear all,clf reset, clc,tic
Fs = 200; % Sampling frequency
t=linspace(0,1,Fs);
freq=2;
%1 create signal
ya = .5*sin(freq*pi*2*t+pi);
%2 create frequency domain
ya_fft = fft(ya);
%3 rebuild signal
mag = abs(ya_fft);
phase = unwrap(angle(ya_fft));
ya_newifft=ifft(mag.*exp(i*phase));
ifft_sig_combined_L1=ifft(mag.*exp(i*phase),Fs); %use Fs to get correct file length
% square wave
vertoffset=0.5;
A=1
T = 1/freq; % period of the signal
square = mod(t * A/T, A) > A/2;
square = square - vertoffset;
subplot(3,1,1);
plot(t,ya,'r')
title('orignal signal')
subplot(3,1,2);
plot(t,ifft_sig_combined_L1)
title('rebuilt signal')
subplot(3,1,3);
plot(t,square)
title('rebuilt signal with square wave')
참조 : https://dsp.stackexchange.com/questions/32453/how-can-i-decompose-a-signal-into-square-waves? –