Построение сигнала нулевой фазы - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужно построить нулевой фазовый сигнал без использования фильтра, но я не могу понять, что я должен исправить в своем коде, чтобы построить его правильно.

Я ожидаю получить это: image

f1=20;
f2=100;
df=f2-f1; 
dt=0.002; 
T=4; 
handles.t=0:dt:T-dt; 
handles.s=sin(2.*pi.*handles.t.*(f1+(df/((T-dt)*2).*handles.t)));
handles.phase=angle(fft(handles.s));
handles.uphase =unwrap(handles.phase);
for k=1:1:length(handles.t)
 handles.zero(k)=abs(handles.s(k)).*cos(handles.uphase (k))+abs(handles.s(k)).*j.*sin(handles.uphase (k));
end 
handles.zero=real(ifft(handles.zero));
figure
plot(handles.t,handles.zero)

1 Ответ

0 голосов
/ 20 февраля 2019

Если у вас есть цифровой сигнал в качестве вектора, скажем, signal, то вы можете установить его фазу на ноль, просто взяв величину преобразования Фурье:

new_signal = ifft(abs(fft(signal)));

new_signal здесь следуетбыть реальным, если signal также является реальным.

...