Код
SetLength(DuolChanal, 2048);
F := N * 96000 / 1024; // N - от 0 до 1024
for I := 0 to 1023 do // Генератор двух сигналов с разной фазой
begin
DuolChanal[I * 2] := 2 * Sin(F * 2 * Pi * I / 96000);// Фаза 0
DuolChanal[I * 2 + 1] := 2 * Sin(F * 2 * Pi * I / 96000 + Pi / 2); // Фаза 90
end;
FastFourierTransform(DuolChanal, 1024, False); // Делаем БПФ
F := N * 96000 / 1024; // N - от 0 до 1024
for I := 0 to 1023 do // Генератор двух сигналов с разной фазой
begin
DuolChanal[I * 2] := 2 * Sin(F * 2 * Pi * I / 96000);// Фаза 0
DuolChanal[I * 2 + 1] := 2 * Sin(F * 2 * Pi * I / 96000 + Pi / 2); // Фаза 90
end;
FastFourierTransform(DuolChanal, 1024, False); // Делаем БПФ
Но вот если амплитуды не равны или фазы отличаются от 90 гр. то появляется зеркалка.
Как это исправить???