dream187 0 18 мая, 2012 Опубликовано 18 мая, 2012 · Жалоба Добрый день. Столкнулся с такой проблемой- пытаюсь получить спектр ЛЧМ сигнала, но вместо спектра на заданной несущей частоте и вместо ширины спектра равной заданной частоте девиации, получаю спектр схожей формы, но на других частотах. Ниже приведен код: ts=70*10^-6; f0=10*10^6; dfs=1*10^6; A0=1; fn=f0-dfs/2; fv=f0+dfs/2; wn=2*pi*fn; w0=2*pi*f0; fi0=0; b0=2*pi*dfs/ts; k=2; dt=1/(k*(2*fv)); Fd=1/dt; N=round(ts/dt); N2=2^nextpow2(N); dt=ts/N2; t=0:dt:dt*(N2-1); S=A0*cos(wn*t+0.5*b0*t.^2+fi0); FftS=abs(fft(S,N2)); F=0:Fd/N2:Fd/2-Fd/N2; plot(F,FftS(1:length(F))); Не могу понять в чем ошибка? Заранее спасибо за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 18 мая, 2012 Опубликовано 18 мая, 2012 · Жалоба Добрый день. Столкнулся с такой проблемой- пытаюсь получить спектр ЛЧМ сигнала, но вместо спектра на заданной несущей частоте и вместо ширины спектра равной заданной частоте девиации, получаю спектр схожей формы, но на других частотах. Ниже приведен код: ts=70*10^-6; f0=10*10^6; dfs=1*10^6; A0=1; fn=f0-dfs/2; fv=f0+dfs/2; wn=2*pi*fn; w0=2*pi*f0; fi0=0; b0=2*pi*dfs/ts; k=2; dt=1/(k*(2*fv)); Fd=1/dt; N=round(ts/dt); N2=2^nextpow2(N); dt=ts/N2; t=0:dt:dt*(N2-1); S=A0*cos(wn*t+0.5*b0*t.^2+fi0); FftS=abs(fft(S,N2)); F=0:Fd/N2:Fd/2-Fd/N2; plot(F,FftS(1:length(F))); Не могу понять в чем ошибка? Заранее спасибо за помощь. Выделил участи кода, на которые надо обратить внимание:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dream187 0 18 мая, 2012 Опубликовано 18 мая, 2012 · Жалоба Самурай, огромное Вам спасибо за подсказку)) Может кому-то еще пригодится верный вариант кода: ts=100*10^-6; f0=10*10^6; dfs=10*10^6; A0=1; fn=f0-dfs/2; fv=f0+dfs/2; wn=2*pi*fn; fi0=0; b0=2*pi*dfs/ts; k=2; dt=1/(k*(2*fv)); Fd=1/dt; N=round(ts/dt); N2=2^nextpow2(N); t=0:dt:ts-dt; S=A0*cos(wn*t+0.5*b0*t.^2+fi0); FftS=abs(fft(S,N2)); F=0:Fd/N2:Fd/2-Fd/N2; plot(F,FftS(1:length(F))); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Дмитрий69 0 18 марта, 2021 Опубликовано 18 марта, 2021 · Жалоба ts=100*10^-6; f0=10*10^6; dfs=10*10^6; A0=1; fn=f0-dfs/2; fv=f0+dfs/2; wn=2*pi*fn; fi0=0; b0=2*pi*dfs/ts; k=2; dt=1/(k*(2*fv)); Fd=1/dt; N=round(ts/dt); N2=2^nextpow2(N); t=0:dt:ts-dt; S=A0*cos(wn*t+0.5*b0*t.^2+fi0); FftS=abs(fft(S,N2)); F=0:Fd/N2:Fd/2-Fd/N2; plot(F,FftS(1:length(F))); Что означает эта строчка из этой программы? N2=2^nextpow2(N); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 18 марта, 2021 Опубликовано 18 марта, 2021 · Жалоба Возведение 2 в степень, которая определяется как P = nextpow2(A) returns the exponents for the smallest powers of two that satisfy 2p≥A Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться