Привет, парень Я работаю над простыми сигналами, и я хочу рассчитать преобразование Фурье сигнала, получить величину и фазы, а затем восстановить исходный сигнал из что.Фурье-преобразование: получение mag + фазы, затем использование тех, для построения исходного сигнала
Я основываю свой код на this нить.
Код:
>> n=0:99;
>> N=length(n);
>> x = sin((2*pi/N).*n).*cos((pi/N).*n);
>> F = fft(x);
>> mag = sqrt(real(F).^2 + imag(F).^2);
>> phase = atan2(imag(F),real(F));
>> re = mag .* cos(phase);
>> im = mag .* sin(phase);
>> F_i = re + 1i*im;
>> x_i = ifft(F_i);
>> figure;stem(x);figure;stem(x_i);
Я полностью получить различные графики.
EDIT: Я на самом деле делаю это, чтобы проверить, что произойдет с сигналом, если произойдет смена фазы. Поэтому с этим мне понадобится фазовый угол для создания сигнала снова.
Я по-прежнему новичок как в Фурье + Матлабе, поэтому прошу прощения, если я делаю какую-то случайную глупую ошибку. Буду признателен, если вы, ребята, можете указать мне в правильном направлении. Спасибо.
Мнимой частью 'F_i' является в основном ошибка округления, если вы используете' F_i = re', цифра воспроизводится правильно. Я не знаю достаточно о преобразованиях Фурье, чтобы сказать вам, почему это настолько подвержено числовой нестабильности. – David
Это правда. Я на самом деле делаю это для эксперимента, где я меняю фазовый угол и реконструирую сигнал и вижу, что такое изменение. Есть ли другой способ, которым я могу это сделать? – kir