Цитата(Andron_ @ Feb 23 2010, 22:15)

тью... "вон оно че, Михалыч"...
тогда, как я понимаю, 2 этапа.
1. выбрать длительность сигнала, на которую уложится целое число периодов сигнала.
2. выбрать новую частоту дискретизации таковой, чтобы на выбранное время приходилось 2^n отсчетов.
а, ну и третий - в матлабе применить resample на подсчитанную частоту дискретизации.
resample не канает(((
пример
Fs = 6400;
N = 128;
Ts = 1/Fs;
T = Ts*N;
f = 45;
t = 0:Ts:T-Ts;
A = 10;
df = Fs/N;
f1 = 0:df:Fs-(Fs/N);
Y = A*sin(2*pi*f*t)+ A*sin(2*pi*2*f*t)+ A*sin(2*pi*3*f*t);
X = fft(Y)/length(t);
Yr = resample(Y, 9,10);
subplot(2,1,1), stem (t,Y), grid
subplot(2,1,2), stem (t, Yr), grid
Дело в том, что когда меняю частоту "руками":
Fs = 5760;
N = 128;
Ts = 1/Fs;
T = Ts*N;
f = 45;
t = 0:Ts:T-Ts;
A = 10;
df = Fs/N;
f1 = 0:df:Fs-(Fs/N);
Y = A*sin(2*pi*f*t)+ A*sin(2*pi*2*f*t)+ A*sin(2*pi*3*f*t);
X = fft(Y)/length(t);
>> stem(f1, abs(X)), grid
получается красивый спектр, отражающий верную информацию об амплитудах сигнала.
Пробовал для передискреизации функцию resample, но она выдаёт меньшее число отсчётов и спектр искажён...
функцию resample, но она выдаёт меньшее число отсчётов и спектр искажён...
Сообщение отредактировал TigerSHARC - Feb 23 2010, 19:40